> How is it that productivity as a concept is "not complicated" but also extremely difficult to measure?
I should have been more specific really: it's difficult to measure for (most) programming. Productivity is work/time, and time is obviously easy to measure, but for programming the amount of work involved in a task is really really difficult to know because tasks vary so much.
If you're just building widgets in a factory and they're all exactly the same then productivity is trivial to measure because the work to produce each thing is the same.
But that's not the only reason it's near impossible to set up productivity experiments. Ideally you want two identical people to do the exact same task with only one variable differing (e.g. do they have an IDE or Notepad). But you can't do that. People vary hugely in skill, and you can't have the same person do the same task twice in a row because they'll obviously be quicker the second time.
> Which developer was the most productive?
Very difficult to know because - as I already said - measuring productivity is extremely difficult. Does that mean that productivity is somehow vague or difficult to define? No, absolutely not.
Also... I said it's extremely difficult. That doesn't mean you can't do it at all. Surely you have worked with people who are bad at their job and don't get anything done? Or maybe you're lucky enough to have worked with one or two 10x developers? (It's not a myth; you just might not have met any.)
This seems like it's getting a bit repetitive at this point. I argue that a concept that is difficult to measure necessarily has a vague, useless, or exceedingly complex definition. I'm not seeing a good argument to the contrary.
Yes, I get that the idea of programmer productivity seems simple. It's just how much "stuff" they do! But, once you start trying to work out the details of what "stuff" is and how to evaluate programmer productivity, it all suddenly turns into a big hairy pear-shaped mess. To me, this makes the concept of programmer productivity pretty darn useless.
And yes, I've worked with or observed a pretty wide variety of developers. As is the case with any other industry, there are some geniuses and other people that are just fantastic -- but also, they tend to be people who have found the right role for their personality and interests. I've also seen a lot of fair-to-middling people who had unsung talents but were stuck keeping the lights on somewhere. I don't think any of this is helpful for understanding the meaning of productivity.
Managers have been trying to figure out how to evaluate developer productivity for at least 25 years -- that would've been about the time I read my first trade rag. All they've managed to do is generate a lot of human misery. You'd think 25 years would be long enough for people to come around to the idea that maybe this developer productivity thing they're chasing is an illusion. But ... naaah.
I should have been more specific really: it's difficult to measure for (most) programming. Productivity is work/time, and time is obviously easy to measure, but for programming the amount of work involved in a task is really really difficult to know because tasks vary so much.
If you're just building widgets in a factory and they're all exactly the same then productivity is trivial to measure because the work to produce each thing is the same.
But that's not the only reason it's near impossible to set up productivity experiments. Ideally you want two identical people to do the exact same task with only one variable differing (e.g. do they have an IDE or Notepad). But you can't do that. People vary hugely in skill, and you can't have the same person do the same task twice in a row because they'll obviously be quicker the second time.
> Which developer was the most productive?
Very difficult to know because - as I already said - measuring productivity is extremely difficult. Does that mean that productivity is somehow vague or difficult to define? No, absolutely not.
Also... I said it's extremely difficult. That doesn't mean you can't do it at all. Surely you have worked with people who are bad at their job and don't get anything done? Or maybe you're lucky enough to have worked with one or two 10x developers? (It's not a myth; you just might not have met any.)