Live data from Hacker News

Doing too much work on one's own before looping in others

thezbook.com

221–230 of 395 posts

Re: Doing too much work on one's own before looping in others

#221
A few things;

1. Merging often and early might be viable, but it might also expose your colleagues and the codebase to your exploratory process, which might or might not be desired/possible. If you're making semi-permanent changes like API modifications or database table updates, going this route will mean a lot of extra work.

2. Too many chefs. If you open up for too many questions at the start, you will get a gazillion conflicting opinions thrown at you. You'll need to limit the audience somehow, or bring forward a clear idea or opinion. This leads to developers working a bit on the side. I don't mind this, I think it's good to give autonomy to working groups and let them make mistakes, as long as there is coaching or feedback in place in the long run.

3. If you go the route of designing a bit on the side first, to save time compared to 1), you might suddenly find yourself in the situation that the major parts feel quite done. Adding polish is now just a minor addition to what you're already accomplished, so you might do that before putting up the PR. This means that a complete solution showing up as a PR doesn't necessarily mean that it was over-engineered or overly polished on the side.

4. Not "syncing" too often saves time; less context switching, distracting information, and time to reflect on decisions and design.

Re: Doing too much work on one's own before looping in others

#222

Earlier quoted context omitted.

I strongly disagree with this. This is an approach to development that encourages an extremely limited and short term view on development that leads to low quality software and unhappy developers. It's also only remotely possible with a certain type of software.

If this approach results in you taking limited and short term views of development, or low quality software with unhappy developers, you're doing it wrong. Breaking down work into small, day-or-two chunks is a team effort that the developers are doing together, alongside the customer (representative, usually).

let's have a meeting about how to break down our investigation of the unexplained segfaults in nginx that occasionally happen in our cdn into chunks that deliver value daily!

Re: Doing too much work on one's own before looping in others

#223

Earlier quoted context omitted.

If this approach results in you taking limited and short term views of development, or low quality software with unhappy developers, you're doing it wrong. Breaking down work into small, day-or-two chunks is a team effort that the developers are doing together, alongside the customer (representative, usually).

let's have a meeting about how to break down our investigation of the unexplained segfaults in nginx that occasionally happen in our cdn into chunks that deliver value daily!

And then let's have daily progress meetings to report on the status of each chunk of the investigation! Please update Jira at least once a day!

This is a great example of the perverse incentives built into the "everything should be done in one day chunks that you report on daily". The team is incentivized to ignore highly important but challenging / hidden work, and instead only focus on things that are highly visible to management.

Re: Doing too much work on one's own before looping in others

#224

Earlier quoted context omitted.

I believe it has one of the lowest job satisfaction of any white collar jobs. I've wondered that is folks didnt have the massive student loans to pay off early on if they would stick with it.

Never mind when law students graduate and go to work for the government, for a salary less than a year's tuition...

Don't they get student loan forgiveness? Or just all the other kinds of benefits.

Re: Doing too much work on one's own before looping in others

#225

Earlier quoted context omitted.

> If your work is bullshot, I bill tighter than my lawyer Lawyers must hate their work.

> Lawyers must hate their work. A friend of mine is a criminal defence lawyer. I get the impression he really enjoys his work – he gets to meet a lot of people he never normally would (bikie gang members, terrorists, murderers, drug dealers, drug addicts, etc) – and he feels safe in doing so (he tells me that defendants trying to harm their own lawyers is quite rare, rare enough that he isn't worried about it). Once,…

I think criminal defense is a great service to humanity. It's hard to estimate how many are wrongfully accused, but surely there are many. Further, things like the plea bargain system or parole regularly lead innocent people to proclaim their guilt. It's very messed up and must be a terrible trauma for some. Lastly, I think even guilty people deserve humane treatment and perhaps forgiveness.

Re: Doing too much work on one's own before looping in others

#226
post #204

Earlier quoted context omitted.

For larger pieces of work, some times it takes me more than a day to just figure out what's where and where I can even get started. I guess I can still give updates daily, but it'll just be "still investigating". Hell, I've fixed 1 liner bugs that have taken me a week to figure out.

You shouldn't be figuring any of those things out on your own, is the whole point of both the article and my comment.

Possibly in an ideal environment. But expecting the same someone to work with me for an entire week to either debug or design usually hasn't been realistic. Keep talking with different people, or the same person on and off has a huge context cost.

What I've found to be a good middle ground is take some time to think things through myself first, at least in rough strokes. Then have someone else come in and review the work. There is a balance of doing too much vs too little yourself of course, but I don't think there is a hard and fast rule (e.g. 1 day worth) for it.

Re: Doing too much work on one's own before looping in others

#227
It's usually a mistake to build a large scale solution without consulting with others in your organization or team. Other engineers often have good feedback that will make your solution better and you are likely missing some core premise or context.

It's also a mistake to seek too much approval from others before proceeding. In any group of X people, Y% won't agree with you, and of those, Z% will be uncivil. By uncivil, I mean harsh criticism or otherwise toxic behavior that is not constructive.

If the organization is healthy that Z% is small and troublemakers will be handled by management if they do act up. If not that Z% will basically become like bridge trolls and you will be opposed by a confederacy of dunces every time you try to do something of consequence.

I've experienced both of these scenarios, and striking the right balance is an art and a science that boils down to reading the politics of the place and getting buy in from some key people so that your project at least has a fair shot. Sometimes the place has gone toxic and it simply can't be helped.

If you're in a situation where there is a high percentage of Z, you should ask yourself if the work you are doing is worth playing the politics necessary in order to get the job done. If yes, get smart, read books like the The Prince and Art of War and figure out how to play the game. If not, get outta there as expeditiously as possible, and put your time and effort to something more worthwhile. If you want to be kind, let management know in a professional way exactly why you are leaving so that they can have an opportunity to try to make life better for your colleagues.

Re: Doing too much work on one's own before looping in others

#228

Earlier quoted context omitted.

Never mind when law students graduate and go to work for the government, for a salary less than a year's tuition...

Don't they get student loan forgiveness? Or just all the other kinds of benefits.

I can't speak to the general case, but I know that my brother didn't. As an ADA (living in an expensive US city) his salary is less than a first-year public school teacher with a bachelor's degree.

Re: Doing too much work on one's own before looping in others

#229
It's about career growth. Most programmers (hope to) peak there.

You know those folks who peaked in high school? You look at them and feel sorry because that was as good as it got for them but tinged with a hefty dose of jealousy because you never had it that good then.

This is like that but in software terms. An individual contributor mostly works up to the point where they take on more than they can handle alone and are sometimes heroic. And some people, some really good ones, peak there.

The crazy debugging live on production servers in the middle of the night that saved millions of dollars or the championship-winning touchdown. Same same. We love to tell those stories.

Re: Doing too much work on one's own before looping in others

#230

We see this with engineers of all ages, but especially with new grads. All have just spent 16 to 22 years working under a model where: you get an assignment, you come up with a solution, you are marked on your result, and then you move on… Our education has trained us that involving others is something done at the end. A lot of our new hires need help shifting their approach (and getting over insecurities) to conside…

My experience has been "Get stuck, avoid the senior engineer because they have no bloody clue what's going on and talking to them actively makes things worse for months afterwards".
Post reply on HN