Live data from Hacker News

The Worst Programmer I Know (2023)

dannorth.net

21–30 of 385 posts

Re: The Worst Programmer I Know (2023)

#21

These sort of stories seem to be dime a dozen and weirdly celebrated around HN and the software engineering community. We’re told of the hero, who goes against their managers and executives and doesn’t deliver any stories as agreed in sprints. We’re told of the engineer who isn’t hired by Google because he can’t invert a binary tree. Everyone else piles on and decree that, yes indeed, you cannot measure developer eff…

People of a revolutionary (or "innovative") temperament are those who are going to say, "this system doesnt work, these processes are broken, the wrong outcomes arise" and ignore them. In doing so they just "do the right thing" in their judgement, and in so doing, develop the next iteration on the processes that others will follow.

If these innovators are operating in a niche where innovation is required, they are solving different problems than most others and have different self-defined standards ("narcissism"), and so on.

Probably many people who visit HN have this temperament, and a significant number are in niches which need to evolve this way (eg., this applies to all startups). HN is a small sample of engineers: most don't go to websites to conceptualise their own activity, reflect, etc. These are indications of people with a desire to innovate, or to solve novel problems in their profession.

If you are in a highly stable environment, with effective processes, etc. then people of this temperament can be trouble if left entirely to their own devices: good managmenet would place them in projects/areas where there is some unknown unknowns to figure out.

In many cases however, people without this temperament (say, "it works, dont break it, conservatives") find this behaviour unsettling, arrogant, disruptive, isolating -- because it is. There isn't any thing to "communicate" when you havent figured out what the solution is -- you can air your thought process every day, but that will just unsettle more people when they see how much it changes (in response to more thkning, information, etc.). And the values by which this change takes place are not conservative, they're radical and imposed by a person who sees a route out of a predicament and so on. It's quite arrogant to place yourself in that position, or think it's yours by some invisible duty that no one else has.

In any case, if you operate in this niche, esp. eg., if you're in a start up environment -- then you arent going to care a jot about this "real world". They are acting against the real world, to improve it.

Re: The Worst Programmer I Know (2023)

#22

Used to be bitten by stuff like this until I figured out something Tim and this author apparently didn’t - the problem is trivially fixed by management by attaching tim’s name to any tickets he may have helped out on. he can ask his teammates to do this and they gladly will, or, nice teammates will usually throw a “figured this out with the help of @Tim” in the ticket. goes a long way to keep “tim” on your team again…

> 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 any metric.

In the end you're building up a system where everyone participating in it knows it's a fraude but just keep gaming it because they become too heavily invested in it.

Re: The Worst Programmer I Know (2023)

#23
Was Tim hired as a teacher or trainer? What I find strange is that it sounds like Tim was not doing any individual work.

As a very experienced programmer, I'm sure that I could increase the productivity of other programmers by pairing with them all day. However, is that actually the best and most productive use of my time? In my estimation, I think that overall team productivity would be maximized if I spent approximately 20% of my time pairing with others and 80% on individual contributions. (That's a rough estimate; it could be 25/75 or 30/70.) The article said that Tim was "patient", but perhaps he was too patient, wasting a lot of his time that could be spent accomplishing other things.

Re: The Worst Programmer I Know (2023)

#24

I've had some thoughts on programming practice somewhat related to Tim's role, and some on language design this morning. I write code for others to read a lot, to explicitly teach them how to do something. This code has always been overly verbose, "decompressed" and teaches people the thought process behind a solution above being a "neat" solution. I was dragged a little reluctantly into this style, by being forced t…

Interesting, cool insight

> any unusual coding practice (eg., conditional imports, using classes as namespaces rather than object templates, etc.)

Why ever do that kind of stuff though ;__;

Re: The Worst Programmer I Know (2023)

#25
post #19

It never occurred to me that a rebuttal to "not using lines of code or bugs solved because it can be gamed" is just to point out productivity is literally always gamed

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

Re: The Worst Programmer I Know (2023)

#27
post #23

Was Tim hired as a teacher or trainer? What I find strange is that it sounds like Tim was not doing any individual work. As a very experienced programmer, I'm sure that I could increase the productivity of other programmers by pairing with them all day. However, is that actually the best and most productive use of my time? In my estimation, I think that overall team productivity would be maximized if I spent approxim…

> Was Tim hired as a teacher or trainer?

Do you think that's any relevant? Software development engineers in general are hired to work on projects as part of small teams, and their goal is to deliver projects. It's not story points, it's not burn down charts, it's not PRs, it's not LoCs touched. It's how many projects are delivered, and keep everything and everyone problem free. This means that if you are struggling, your team will struggle as well until you unblock yourself. If you can unblock yourself by having a team member sit besides you and walk through a problem, that team member will be helping the team.

Re: The Worst Programmer I Know (2023)

#28
post #5

Sounds like Tim was the manager. What exactly was the paid for manager doing?

There are different types of managers. I'd use the term technical lead for tim. Someone needs to maneage product delivery. Someone needs to manage the backlog. Someone needs to manage the training of everyone. Someone needs to ensure people are getting setup for their next job. Someone needs to ensure everyone is paid right. Someone needs to handle it when two people don't get along. The above is a small subset of th…

Not to be a total fucking asshole... but:

> Someone needs to manage product delivery:

You mean the 2-week delivery cycle into an automated CI/CD? Good lord I hope they don't have a useless scrum master too.

> Someone needs to manage the backlog:

I'm curious what input the manager has into this besides reading through a list of engineer curated items.

> Someone needs to manage the training of everyone:

Tim seems to be handling that.

> Someone needs to ensure people are getting setup for their next job:

Tim seems to be handling that.

> Someone needs to ensure everyone is paid right:

HR has but one fuckin job as far as I can tell.

> Someone needs to handle it when two people don't get along:

Hey Tim can you id the asshole? How comfortable are you hiring/firing?

Obviously IME non-technical management has done nothing but played politics and prevented firing of shitheads who were wrongly hired.

Re: The Worst Programmer I Know (2023)

#29
post #19

It never occurred to me that a rebuttal to "not using lines of code or bugs solved because it can be gamed" is just to point out productivity is literally always gamed

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.

Re: The Worst Programmer I Know (2023)

#30
post #23

Was Tim hired as a teacher or trainer? What I find strange is that it sounds like Tim was not doing any individual work. As a very experienced programmer, I'm sure that I could increase the productivity of other programmers by pairing with them all day. However, is that actually the best and most productive use of my time? In my estimation, I think that overall team productivity would be maximized if I spent approxim…

> Was Tim hired as a teacher or trainer? Do you think that's any relevant? Software development engineers in general are hired to work on projects as part of small teams, and their goal is to deliver projects. It's not story points, it's not burn down charts, it's not PRs, it's not LoCs touched. It's how many projects are delivered, and keep everything and everyone problem free. This means that if you are struggling,…

Yes, obviously it’s relevant you have a fundamental misunderstanding about what software engineers do. We don’t “build systems” we diffuse risk for the managers. If someone is “helping build something” they can spend their own money doing that. This is business, the less work you do the more money you make.
Post reply on HN