Live data from Hacker News

The Worst Programmer I Know (2023)

dannorth.net

101–110 of 385 posts

Re: The Worst Programmer I Know (2023)

#101

Earlier quoted context omitted.

> the problem is trivially fixed by management by attaching tim’s name to any tickets he may have helped out on. I don't think this comes even close to solving the problem. This in fact makes the problem worse, because a) you admit the metric is shit and does not reflect work, b) you opt to keep the bullshit metric but instead try to manipulate it to bump the score under some scenario. That's not desirable outcome by…

I don’t think anyone is saying it’s a good solution. It’s one amongst many bad ones that are used because that’s what we have. For example, I’ve been running a remote team for 8ish years now and I keep begging people to have conversations in public channels. One of the reasons is to see who’s spending a lot of time lending a hand. Guess what, devs refuse to do that. So what am I supposed to do? I have a person who I…

No offense, but it sounds like you have jumped to a conclusion (which you can't even prove) and are trying to change the process so that you could nail the poor guy.

What is your purpose? Making the team perform great, I hope. Will you achieve that by picking on someone? Hell no. Others will protect him, because they know they will be next in line. Do you think the "underperformer" (if he really is that, even) is doing that because he is lazy? It is more difficult to ask for help all the time than just to do something.

How about you try to find a way to help him achieve the level that others are at? THAT is what should be your goal. Instead of spying on them, award team members who help others, so that they won't feel the need to hide. And make weak members feel safe. Currently it sounds like the environment is pretty toxic with regards to admitting to any problems.

If, after all the genuine effort, you still fail and need to let go of the guy, because he is really bringing productivity of the team down and you can't motivate him to change, then you should know that this is still primarily your own failure. Which is ok, everyone is allowed to fail from time to time. But it is a signal that you should try harder.

(speaking as someone who had to let someone go because I wasn't good enough to make them better... on two separate occasions... so I'm not judging)

Re: The Worst Programmer I Know (2023)

#102
I love a good pairing ladder. While there is no absolute good measure of productivity, a suite of thoughts observation can provide at least tripwires.

One major problem with tools that ask crafters to do data entry to show their value is that best people are most likely to refuse. You really need to focus on tooling to help capture what’s going on without toil.

For example, if your folks are remote and they use software to aid in pairing (eg Tuple), script the system to log the tuple sessions and perhaps even capture the pairing in the commits made together.

This can be used as an input to bring visible to be best leaders in your org.

Re: The Worst Programmer I Know (2023)

#103
post #92

Earlier quoted context omitted.

> Um, IMO someone who hired a team of 5 new grads sounds like an MBA bean counter and not someone that's willing to invest in people. It sounds like they brought in an experienced programmer (you) only because the preexisting pathological team was (predictably) failing. Nah, this was a pet project of my skip level, and I joined after he asked my boss for solutions to the delay. The manager who owned the project had a…

> they were assigned because it would have been malpractice otherwise. I don't know understand this means. > This was very much a team built out of the resources available, rather than intentionally selecting only new grads. Yet your other comment says, "this particular company paid way below market rate with the promise of interesting work. It without a doubt incentivizes hiring new grads where you roll the dice and…

> I don't know understand this means.

It means, this team was very much a team built out of the resources available, because the existing experts in the company who could have been mentoring new grads were already working full time doing something with a direct contractual obligation to the company. I would have been negligent to pull them from an existing inprogress contract to mentor newbies, and the contracts had a hard limit on number of hours, (not years of experience), so placing a new grad on one of these contracts, replacing an experienced engineer would have degraded the success of the contract.

> Yet your other comment says, "this particular company paid way below market rate with the promise of interesting work. It without a doubt incentivizes hiring new grads where you roll the dice and hope the good ones will stay because they enjoy the job. It's very hard for them to attract experts at the salary that they're offering." https://news.ycombinator.com/item?id=43453700

Right, they're not conflicting statements. The company would hire a pool of engineers that can do engineering, then a different part of the company would sign contracts to complete work, than a middle part would place the engineers in the company onto contracts.

> I'm having a hard time understanding why this project needed to exist at all.

Well, because it was a really cool project that the company did end up marketing and selling to it's various clients. It was also a perfect project to put a bunch of new grads who otherwise wouldn't have been doing any work at all given the projects had contracts that stated they couldn't accept more engineers.

> I disagree, and it only created unnecessary argument in this case. You ended up having to retract and clarify anyway:

I didn't retract anything? Are arguments bad? I actually enjoy being able to arguing interesting points and topics. If you're willing to be wrong, you can learn things. As an example I didn't think my previous examples were so controversial. Nor did I remember that contract based engineering work isn't a common thing the most people already have intuition for.

> [just like 5 to zero is bad...] But the team was 5 to zero.

The team you called pathological? Yeah, it was bad. Missing deadlines is bad. I don't understand where you're confused.

> [just like 1 to 1 is bad...] Why?

I already answered. Because of politics a project that small would have died with a team with just a single new grad. It also would have been boring as fuck. So if I left, I'm sure the new grad would have also left. Which means the company who hired us both, would then have to hire two new people. This was years ago, but I assume some of those original new grads are still there. In part because that team was actually fun to work with. They were good people, and the team was just fun to be around. A team of just 2 is boring... I know because I've also been on that team with me doing all of the work, and it was soul crushing, and contributed to why I left.

Re: The Worst Programmer I Know (2023)

#104
post #29

Earlier quoted context omitted.

They even have a fancy title, "measurement dysfunction", and a smug "if you know you know" nickname, Goodhart's Law

and Campbells Law, and the CObra effect. I had not come across "measurement dysfunction" before. Useful phrase.

A related phenomenon is McNamara Fallacy

Re: The Worst Programmer I Know (2023)

#106

The idea of measuring individual developer productivity is kind of absurd to me. I'm not saying that what we do is magic, there are just so many variables. Measuring story points or lines of code is kind of the opposite of productivity. This encourages developers to do as much meaningless work as possible. I'd want a developer to make a task simpler or use an existing tool which means less time writing code. The valu…

I don’t think it’s that we _can’t_ accurately measure developer value/productivity, it’s that doing so isn’t feasible with any methodology we currently have. As you said, we’re not doing magic, therefore our value is measurable. Measuring just requires an impractical degree of time and energy.

Re: The Worst Programmer I Know (2023)

#107

The idea of measuring individual developer productivity is kind of absurd to me. I'm not saying that what we do is magic, there are just so many variables. Measuring story points or lines of code is kind of the opposite of productivity. This encourages developers to do as much meaningless work as possible. I'd want a developer to make a task simpler or use an existing tool which means less time writing code. The valu…

Dev productivity is like quantum mechanics. The second you try to measure it, the wave function collapses, and you've fundamentally altered the thing you were trying to measure.

That said, at every place I've worked you could get a starting point idea of who the top devs were by looking at overall code commits. This Tim sensei situation may be more common than I think, but I've never run into it.

Re: The Worst Programmer I Know (2023)

#108

The idea of measuring individual developer productivity is kind of absurd to me. I'm not saying that what we do is magic, there are just so many variables. Measuring story points or lines of code is kind of the opposite of productivity. This encourages developers to do as much meaningless work as possible. I'd want a developer to make a task simpler or use an existing tool which means less time writing code. The valu…

I had a director that was obsessed with github enterprise stats. He forbid people from squashing commits and told people to commit every day, even if you're in the middle of something. This was so that he could see who was writing the most code.

One of our interns was close to the end of his term and this director wanted to hire him. He thought the intern was amazing based on the amount of code he wrote. The problem was that this intern was bad, so we had him write unit tests. However, he was also bad at writing unit tests. He would run the code and then write tests that enforced the current results, instead of considering that the current behaviour might be incorrect. Thankfully we didn't hire him after myself and others explained why the intern had so many commits and lines of code written.

Re: The Worst Programmer I Know (2023)

#109

The idea of measuring individual developer productivity is kind of absurd to me. I'm not saying that what we do is magic, there are just so many variables. Measuring story points or lines of code is kind of the opposite of productivity. This encourages developers to do as much meaningless work as possible. I'd want a developer to make a task simpler or use an existing tool which means less time writing code. The valu…

Dev productivity is like quantum mechanics. The second you try to measure it, the wave function collapses, and you've fundamentally altered the thing you were trying to measure. That said, at every place I've worked you could get a starting point idea of who the top devs were by looking at overall code commits. This Tim sensei situation may be more common than I think, but I've never run into it.

Thanks to Goodhart's law, it's true for any measure that becomes a target.

Re: The Worst Programmer I Know (2023)

#110
Hm. In the agile world, non-coders don't typically sign up for stories. So maybe this person shouldn't have been expected to land stories, or possibly there wasn't room in the budget for someone to be just a peer coder. I personally like the story paradigm as a way of working out (and then sticking to) priorities, and I love it when managers and principals work on stories like everyone else. Also, in the remote work context, everyone has to work harder on figuring out the right thing to work on, and stories are a decent way to achieve that.
Post reply on HN