Hacker News new | ask | show | jobs
by WgaqPdNr7PGLGVW 544 days ago
> I just don't seem to struggle, as others claim to, in measuring productivity.

Because you are measuring at a very broad and basic level.

Steve is more productive than Susan.

Great. How much more productive? Can you turn it into a number?

Can you still do it consistently when Steve and Susan are in different teams in different parts of the organisation trying to achieve different goals?

I've done DB upgrades that took 10 minutes and I've done DB upgrades that took 3-4 months. What changed was not my productivity but the nature of the problem. Yet from the outside they were both just DB upgrades.

If Susan had done the DB upgrade in 12 weeks could we confidently claim that Steve could have done it in 11 weeks? Steve hasn't even done a DB upgrade since he joined the company. Perhaps Steve could have done it in 10 minutes?

3 comments

I don't think anyone can get numbers, but partial ordering is much easier.

If Steve and Susan are in different part of organization, the answer is "cannot compare". If they are doing different job, the answer is the same.

But every once in a while there is a scenarios when you can compare people easily.

There has a weekly rotation to be an support person for other team. During his week, John always answers questions quickly and to the team's satisfaction. Meanwhile James struggles to answer them and cannot troubleshoot product his team is writing. This has been going on for multiple months and hundreds of questions for each, so it's not "bad week" unlucky or fluke. We now know who is better at answering questions about product.

John and James are doing DB migrations, they did many dozens of them. The migrations are assigned randomly. But John is usually finishing his migrations with no problems, while James often caused outages or missing data. A few times James took over two months to migrate, so the task was taken from him and given to John. John had to discard everything James did and migrate everything from scratch. Now there is a migration for a very important client and CEO is fed up with random assignment.. who is he going to choose?

What your scenario doesn't address is that while John finished his migrations on time, James has designed the flagship order processing pipeline something that John could never pull off.

Or maybe while John is technically adept, he's also a huge jerk and belittles people at standup, while James is the quintessential communicator with jr devs, etc.

Real life is messy. I've seen more people get replaced due to attitude or teamfit issues than specifically due to technical incompetence.

Your first scenario: possible, but quite unlikely. If James cannot even perform migrations without causing outages or dropping data, the chances are that "flagship order processing pipeline" he made is similarly bad, and even if it works, it's likely has outages and missing data. I've never seen a developer who can only do hard tasks but is genuinely bad at simple tasks (They may refuse to do those, but if they start on them they'll do them well.)

Your second scenario is unfortunately very likely, people are jerks, and if they are also high performers (or high bullshitters) then can get away with it.

Either way I fully agree one one should be firing/promoting people based on a single metric, even if that metric is very relevant to the job description. That doesn't mean that "there is no such thing", or that if you really need to get that DB migration done, you want to choose a "quintessential communicator with jr devs".

> I don't think anyone can get numbers, but partial ordering is much easier.

Agreed.

> If Steve and Susan are in different part of organization, the answer is "cannot compare". If they are doing different job, the answer is the same.

These are the situations where we would get the most value from the metrics though.

The team level already has an Engineering Manager or Tech Lead who can directly deal with team level problems.

I would argue that here you are talking less about productivity and more about basic competence?
> Great. How much more productive? Can you turn it into a number?

This is moving goalposts. OP's argument was "There's No Such Thing as Software Productivity", not "You Can't Convert Software Productivity into a Floating Point Number With 3 Decimals of Accuracy."

There’s no real dependable/reproducible single linear measure of software productivity”.

Would that be a fairer assertion?

By that measure there also isn't a real dependable/reproducible scalar that measures athleticism. Nonetheless some people are clearly more athletic than others. Also within a single sport we can easily see that some players are better than others. Here too you could object that people who play offense should not be compared to players in defense. Or that it's not individual players that matters but the team as a whole. And yet, we can still figure out easily who the star players are.
> This is moving goalposts.

Then I shall move the goalposts. Can you address my shifted goalpost?

I personally did not interpret the author as literally meaning there is no such thing as software productivity but I agree the way he wrote it was confusing and could be interpreted that way.

Even in his toy example he clearly stated Peter did a better job than Frank.

"What changed was not my productivity but the nature of the problem"

I think that's the source of the problem: it's impossible to measure the "work" required to solve most software problems. If you tell me to carry a stone up a hill, I can put that in a formula and know exactly how much work I'll have to do. But if you give me a ticket to do a DB upgrade, I can, at best, make an educated guess.

So by the time I close the ticket, how much work have I done, and how do I know whether the time I've spent it proportional to the work I've done?