Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Gildiss
Aug 24, 2010

Grimey Drawer
Any good tools or techniques for planning out an application.
I find myself spinning my wheels trying to solve one problem and getting side tracked by another that reveals itself working on the first.
I'm working pretty much solo on this, no stories, no BAs, no masters.
Building an online interface to View/Edit/Create nested data.

Adbot
ADBOT LOVES YOU

Pollyanna
Mar 5, 2005

Milk's on them.


Officially starting my new remote job today. It's a 3-hour time difference and it's the first day, so it's a strange feeling to not really know what you're supposed to be doing until around noon...

CPColin
Sep 9, 2003

Big ol' smile.
Task #1: Watch Price Is Right

lifg
Dec 4, 2000
<this tag left blank>
Muldoon

Pollyanna posted:

Officially starting my new remote job today. It's a 3-hour time difference and it's the first day, so it's a strange feeling to not really know what you're supposed to be doing until around noon...

How was your last day at the old place? Have a fun exit interview?

Munkeymon
Aug 14, 2003

Motherfucker's got an
armor-piercing crowbar! Rigoddamndicu𝜆ous.



Task #1 for me is usually to spend several hours configuring my workstation and downloading+installing software. Got to do that twice this job because the first laptop died after ~a week or so. Revision A hardware :\

LLSix
Jan 20, 2010

The real power behind countless overlords

Pollyanna posted:

Officially starting my new remote job today. It's a 3-hour time difference and it's the first day, so it's a strange feeling to not really know what you're supposed to be doing until around noon...

Nice. Good luck. Post something to the office IM so they know you're up and working. Good opportunity to poke around the code base/online repositories to see what permissions you're missing/read up on and/or practice with some technique or language you like.


Gildiss posted:

Any good tools or techniques for planning out an application.
I find myself spinning my wheels trying to solve one problem and getting side tracked by another that reveals itself working on the first.
I'm working pretty much solo on this, no stories, no BAs, no masters.
Building an online interface to View/Edit/Create nested data.

I find doing the same sort of ticket creation I'd do for a large project helps me plan out solo tasks too. The biggest thing though is that it gives me a way to make a note to go back and fix something later instead of getting sidetracked into working on things that aren't actually a problem right now.

Basically, break each chunk down into 1 day or less tasks and write down those tasks in some way that you can mark them off as you complete them or add more as you discover them.

CPColin
Sep 9, 2003

Big ol' smile.

LLSix posted:

Nice. Good luck. Post something to the office IM so they know you're up and working. Good opportunity to poke around the code base/online repositories to see what permissions you're missing/read up on and/or practice with some technique or language you like.

Also, commit something that breaks the build on your first day, so your coworkers know you're hardcore.

The Fool
Oct 16, 2003


LLSix posted:

Basically, break each chunk down into 1 day or less tasks and write down those tasks in some way that you can mark them off as you complete them or add more as you discover them.

I do this with Trello.

Small projects get a card, larger ones might be split into multiple cards, add task lists to each card for the specific things that need to be done. Arrange the cards in columns by priority. I use Today, Tomorrow, This Week, Next Week, and Someday

Munkeymon
Aug 14, 2003

Motherfucker's got an
armor-piercing crowbar! Rigoddamndicu𝜆ous.



CPColin posted:

Also, commit something that breaks the build on your first day, so your coworkers know you're hardcore.

That's not hardcore most places I've worked :\

Force push an empty repo to head :unsmigghh:

Lumpy
Apr 26, 2002

La! La! La! Laaaa!



College Slice

Munkeymon posted:

That's not hardcore most places I've worked :\

Force push an empty repo to head :unsmigghh:

Bonus points if the commit message is an ASCII art cowboy.

CPColin
Sep 9, 2003

Big ol' smile.
Drop a table in Production on your second day. After everybody is done scrambling around to restore the table from a backup, say, "Oh, I didn't know I was working on Production, because who the hell gives an employee write access to Production after two days?"

Munkeymon
Aug 14, 2003

Motherfucker's got an
armor-piercing crowbar! Rigoddamndicu𝜆ous.



Lumpy posted:

Bonus points if the commit message is an ASCII art cowboy.

A link to https://www.youtube.com/watch?v=MYtjpIwamos is also acceptable.

CPColin posted:

Drop a table in Production on your second day. After everybody is done scrambling around to restore the table from a backup, say, "Oh, I didn't know I was working on Production, because who the hell gives an employee write access to Production after two days?"

Yeah now we're talkin'

Pollyanna
Mar 5, 2005

Milk's on them.


lifg posted:

How was your last day at the old place? Have a fun exit interview?

It was more or less covering the same stuff as a one-on-one had covered a week prior: changes in management, business practices, and executive sensibilities had left developer happiness and confidence in the shitter and ongoing layoffs/quits/people getting let go had eroded any feeling of stability and job security in the organization. Just that this time, the "what do we do now?" question had been answered - I decided to leave.

Munkeymon posted:

Task #1 for me is usually to spend several hours configuring my workstation and downloading+installing software. Got to do that twice this job because the first laptop died after ~a week or so. Revision A hardware :\

Yup, same - add "getting used to Thunderbolt 3" to the list, too. I've never used the newer MBPs before and I bought all my stuff completely forgetting that new MBPs don't have USB2 ports :saddowns:

LLSix posted:

Nice. Good luck. Post something to the office IM so they know you're up and working. Good opportunity to poke around the code base/online repositories to see what permissions you're missing/read up on and/or practice with some technique or language you like.

That's basically been my morning, that and filling out W-4s and direct deposit forms and poo poo. Can't wait to get access to the repos and dig into the code itself!

I've already got a first task, which is to review the onboarding steps and see how we can improve it...I can already identify a few areas to fix.

CPColin
Sep 9, 2003

Big ol' smile.

Pollyanna posted:

I've already got a first task, which is to review the onboarding steps and see how we can improve it...I can already identify a few areas to fix.

Holy hell, I wish that were every new employee's first task everywhere!

Munkeymon
Aug 14, 2003

Motherfucker's got an
armor-piercing crowbar! Rigoddamndicu𝜆ous.



Pollyanna posted:

Yup, same - add "getting used to Thunderbolt 3" to the list, too. I've never used the newer MBPs before and I bought all my stuff completely forgetting that new MBPs don't have USB2 ports :saddowns:

Surely as a Mac user you just expect to have to buy twenty adapters or all new hardware every time you unbox a new machine at this point, right?

lifg
Dec 4, 2000
<this tag left blank>
Muldoon

Gildiss posted:

Any good tools or techniques for planning out an application.
I find myself spinning my wheels trying to solve one problem and getting side tracked by another that reveals itself working on the first.
I'm working pretty much solo on this, no stories, no BAs, no masters.
Building an online interface to View/Edit/Create nested data.

Since I’m in web dev land, I normally sketch (literally) out the the screens I want. Then build something to make those work. If I’m doing pure backend work, I’ll write the API I want first.

Vulture Culture
Jul 14, 2003

I was never enjoying it. I only eat it for the nutrients.

Munkeymon posted:

Surely as a Mac user you just expect to have to buy twenty adapters or all new hardware every time you unbox a new machine at this point, right?
I have a Das Keyboard with two USB 3.0 ports, so I've gotten away with one adapter for all my peripherals so far, but the thing that drives me batshit about the new MBPs is that they moved the headphone jack from the left side towards the front over to the right side towards the rear. It makes it impossible to do a video chat with Ye Olde White Earbuds, what I usually travel with, unless you're basically sitting on top of the computer.

Pollyanna
Mar 5, 2005

Milk's on them.


CPColin posted:

Holy hell, I wish that were every new employee's first task everywhere!

Well, technically, it's a couple bugs - but critiquing onboarding is what I've actually ended up doing. That counts as being self-driven, right? :v:

necrobobsledder
Mar 21, 2005
Lay down your soul to the gods rock 'n roll
Nap Ghost
I broke something in production my first Friday at my current job and I’m the lead ops engineer. I broke things by deploying our software with Cloudformation (that I didn’t write) and because a variable was different between prod and non-prod it proceeded to scale down almost all our instances. Almost everything is super stateful (the guys I inherited that all from didn’t want to put anything in CFN because everything is so brittle). No data was lost and monitoring showed zero blip in our services, but I’ve been writing tools to stop me (or someone like me) from doing that again.

I’ve never seen a place go from stateless everything to state everywhere by design.

CPColin posted:

Holy hell, I wish that were every new employee's first task everywhere!
I had that for the last team I ran. It’s essential for any rapidly growing team starting from not much and it keeps you aware of things that break. It’s like a form of continuous integration for your internal processes.

geeves
Sep 16, 2004

Has anyone done unit testing as a team to get it off the ground?

It's really the only way I can think of to get it going amongst our developers. It's mostly something that's been ignored (from the CTO -> Pleb). I'm trying to change that. It's hard to deny a pull request from your boss because of a lack of unit test.

So now we're into React, and so far, we've already taken as a team to design components together and potentially using this in sprint grooming / planning in the future. I want to expand it to testing as well.

I've tried the "lead by example" in my role but it never sticks, even up the chain. Mostly I think we're so focused on getting things to work that we don't get things to work correctly. For my company, it's definitely a code now, regret later environment and I want to change that.

Has anyone gone through this process and has it worked?

Bongo Bill
Jan 17, 2012

Best way to ensure you're writing unit tests is to write them first. Test-driven development, 's called. There's literature on the topic that you can use to get started. Then to ensure people care about it, in addition to CI, you may want to take the comparatively extreme step of setting up a pre-commit hook that runs the test suite.

Skandranon
Sep 6, 2008
fucking stupid, dont listen to me

Bongo Bill posted:

Best way to ensure you're writing unit tests is to write them first. Test-driven development, 's called. There's literature on the topic that you can use to get started. Then to ensure people care about it, in addition to CI, you may want to take the comparatively extreme step of setting up a pre-commit hook that runs the test suite.

If his boss hasn't bought into the idea, setting up a pre-commit hook requiring tests is going to end very poorly for him the next time his boss commits code. This isn't a technical problem, he needs to convince his team/boss of the value of unit tests, not try to force it on them with clever tech. There may not be an easy way to do this, people don't often make great changes until something bad happens. Best way may just to continue putting tests on his stuff, and hopefully a (minor) catastrophe illustrates the value of them.

Bongo Bill
Jan 17, 2012

Skandranon posted:

If his boss hasn't bought into the idea, setting up a pre-commit hook requiring tests is going to end very poorly for him the next time his boss commits code. This isn't a technical problem, he needs to convince his team/boss of the value of unit tests, not try to force it on them with clever tech. There may not be an easy way to do this, people don't often make great changes until something bad happens. Best way may just to continue putting tests on his stuff, and hopefully a (minor) catastrophe illustrates the value of them.

I guess I was thinking of it more from a perspective of getting people who are already convinced to develop the desired good habit.

fantastic in plastic
Jun 15, 2007

The Socialist Workers Party's newspaper proved to be a tough sell to downtown businessmen.
I think the only way to accomplish that is to get promoted to a leadership role and impose it on the team you're leading. Trying to change an entire organization's habits is quixotic if you're toward the bottom of the hierarchy.

Vulture Culture
Jul 14, 2003

I was never enjoying it. I only eat it for the nutrients.

fantastic in plastic posted:

I think the only way to accomplish that is to get promoted to a leadership role and impose it on the team you're leading. Trying to change an entire organization's habits is quixotic if you're toward the bottom of the hierarchy.
Option 2: you model the behavior you want to see.

Greatbacon
Apr 9, 2012

by Pragmatica
Yeah, the first step to changing the behavior is to get buy-in from folks. If everyone is already on board, you just need to figure out how to get everyone to bake it into their workflow. If not, you'll probably want to start gather metrics. Like, how long does it take for code in a new feature to break, how big are the breaks, how many bugs crop up, if you have to go in and change or fix things take a measure of how long that takes. Keep track of how the current process is doing (or not doing as the case is.)

I think it's easier to try stuff like this on new feature development rather than maintenance/bug fixes so maybe propose a shakeup for your next new feature.

Try and get the CI executor built into the PR pipeline (you can't merge code until the tests run successfully/break) so it provides a visual reminder to people to write tests when they check in code. Even better if you have a template for your PR text body that you can add a checkbox too (have you written tests for this?) You need to get people to think of writing tests as part of "code complete". Not something you do afterwards.

Then, once you've wrapped the feature and have hopefully been able to convince everyone to write those unit tests. Measure how the feature does in production. Do you have less issues, does the code seem more stable? If things work out in favor of it, you might even be able to convince your boss to let the team take a day or two and write up more unit tests for old code that isn't covered. At least the happy path stuff.

edit: When you're trying to add new tools/processes to a team, make sure you don't get bogged down in cost/benefit analysis. You mostly want to pick a solution that is easy and will make sure people write those tests. Then once you've been doing it for a while, take stock of what's working and what isn't and decide if your choices were good or if you need to update/move on to something else.

Messyass
Dec 23, 2003

geeves posted:

I'm trying to change that. It's hard to deny a pull request from your boss because of a lack of unit test.

It shouldn't be. But tbh I've never worked in a culture where it's possible for someone to be a fellow developer and simultaneously be my "boss".

If you develop software together as a team there should be a level of trust where you can discuss anything in a pull request, no matter who created it. If that isn't the case, you have bigger problems than a lack of unit tests.

Keetron
Sep 26, 2008

Check out my enormous testicles in my TFLC log!

Messyass posted:

If you develop software together as a team there should be a level of trust where you can discuss anything in a pull request, no matter who created it. If that isn't the case, you have bigger problems than a lack of unit tests.

Hallelujah.

Pollyanna
Mar 5, 2005

Milk's on them.


New job has a codebase that only works locally if you use Webstorm. I miss Atom. :negative:

Pixelboy
Sep 13, 2005

Now, I know what you're thinking...

fantastic in plastic posted:

I think the only way to accomplish that is to get promoted to a leadership role and impose it on the team you're leading. Trying to change an entire organization's habits is quixotic if you're toward the bottom of the hierarchy.

Public shame is a powerful tool

geeves
Sep 16, 2004

Bongo Bill posted:

Best way to ensure you're writing unit tests is to write them first. Test-driven development, 's called. There's literature on the topic that you can use to get started. Then to ensure people care about it, in addition to CI, you may want to take the comparatively extreme step of setting up a pre-commit hook that runs the test suite.

I don't like how draconian TDD and some of its supporters can be. I think a mix of TDD and regular unit testing work well for a lot of how we work.

Today and yesterday we had two meetings to design a component with everyone in the room. The first one was discussing everything that was needed. The second was writing tests from the notes on the first one with everyone involved.

Congratjorbations! In 45 minutes we had a simple Button Component with required properties designed and tested and passing. And yes, most of this was done in TDD way designing the first tests before coding the component.

fantastic in plastic posted:

I think the only way to accomplish that is to get promoted to a leadership role and impose it on the team you're leading. Trying to change an entire organization's habits is quixotic if you're toward the bottom of the hierarchy.

You may be right. A while back I was promoted to my company's Principal Engineer (I don't manage anyone) and I've largely been able to define that role as it was created for me. It's taken some time for me to be comfortable in flexing those muscles, but I think I'm finally starting to get there - or at least being able to figure out how to work the role within the company. While I still have management (who also codes) above me, a lot of the direction is increasingly defined by me then endorsed by management. But I think my coup de grace today was getting our VP to join our meeting and have them say, "Yes, this is what we should be doing."

We used to have an employee who was full-blown TDD, gerrit, etc. and I really liked working with him. But he would just wag his finger and hope that everyone fell in line (nobody did - including me). While I haven't been taking up his mantra 100%, I've taken the parts of it that I thought I could get wins from and tried to get buy-in in a gradual way.

My Rhythmic Crotch
Jan 13, 2011

Pollyanna posted:

New job has a codebase that only works locally if you use Webstorm. I miss Atom. :negative:
Unacceptable. Have you thought of looking for a new job?

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed

geeves posted:

I don't like how draconian TDD and some of its supporters can be. I think a mix of TDD and regular unit testing work well for a lot of how we work.

Today and yesterday we had two meetings to design a component with everyone in the room. The first one was discussing everything that was needed. The second was writing tests from the notes on the first one with everyone involved.

Congratjorbations! In 45 minutes we had a simple Button Component with required properties designed and tested and passing. And yes, most of this was done in TDD way designing the first tests before coding the component.

I think TDD is rarely the best way to write software, but getting people in the habit of writing tests for everything is one of the things that it's really good for.

Keetron
Sep 26, 2008

Check out my enormous testicles in my TFLC log!

Pollyanna posted:

New job has a codebase that only works locally if you use Webstorm. I miss Atom. :negative:

Run it in a vm?
Also: how is it limited to run locally only using webstorm?

Keetron fucked around with this message at 11:29 on Nov 22, 2017

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.

Pollyanna posted:

New job has a codebase that only works locally if you use Webstorm. I miss Atom. :negative:
Well, you almost it through your first week. Good luck resuming the job hunt!

toiletbrush
May 17, 2010

Plorkyeran posted:

I think TDD is rarely the best way to write software, but getting people in the habit of writing tests for everything is one of the things that it's really good for.
Yeah, it's not a good way to write (most) software, but hardcore TDD can be a good skill to practice until you understand the benefits, and have the experience to be pragmatic about where tests of whatever type actually add value.

Just had a client meeting about a new requirement that originally came through as numerous impenetrable semi-coherent Word and Excel documents that described a hacky, unworkable technical solution (that was broken on many levels) to a business case that wasn't defined. We pushed back and asked 'what is the actual business use case' and it took their BA literally 1 minute to tell us everything we need to know. Seriously would have been a short paragraph in an email, and now we can also build a correct solution that's dead simple.

Technical solutions as requirements are bad!

Pollyanna
Mar 5, 2005

Milk's on them.


My Rhythmic Crotch posted:

Unacceptable. Have you thought of looking for a new job?

Sagacity posted:

Well, you almost it through your first week. Good luck resuming the job hunt!

Naw gently caress that, I’m gonna figure this out and adapt it to my own workflow.

Keetron posted:

Run it in a vm?
Also: how is it limited to run locally only using webstorm?

There’s some configuration written with Webstorm in mind, since we need to spin up and interconnect various servers to get local dev working. I’m just not sure how to replicate that outside of Webstorm, like if I’d need to use Docker or something (unlikely since all our stuff is in one repo). I don’t understand the problem domain and technical needs well enough to call shots on it, but I can at least tell when something is cumbersome as gently caress!

Keetron
Sep 26, 2008

Check out my enormous testicles in my TFLC log!

Cant you just start it using webstorm and edit files in your ide of choice?
You can also give jetbrain a chance, some of their stuff is really on point with making your life easier.

Pollyanna
Mar 5, 2005

Milk's on them.


I’m just used to Atom I guess :shrug: yeah, I can do that. Still wondering why we should use Webstorm to get it running, tho...will dig into it.

Adbot
ADBOT LOVES YOU

Munkeymon
Aug 14, 2003

Motherfucker's got an
armor-piercing crowbar! Rigoddamndicu𝜆ous.



Pollyanna posted:

Naw gently caress that, I’m gonna figure this out and adapt it to my own workflow.


There’s some configuration written with Webstorm in mind, since we need to spin up and interconnect various servers to get local dev working. I’m just not sure how to replicate that outside of Webstorm, like if I’d need to use Docker or something (unlikely since all our stuff is in one repo). I don’t understand the problem domain and technical needs well enough to call shots on it, but I can at least tell when something is cumbersome as gently caress!

So they're just using the built-in environment setup GUI to start stuff in the right order? That might be output as a script somewhere.

Or just find the shortcut configuration that makes it work like Atom - editors are mostly fungible that way.

E: https://www.jetbrains.com/help/webstorm/run-debug-configurations.html is what I was talking about

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply