Ari-Pekka makes various plausible-sounding declarations, but he doesn't even try to make a case.
I know that I've had many colleagues that were next to useless - even, possibly, exhibiting negative utility. Let's just give that kind a zero. Then there are novices - smart people with little experience. They can get stuff done, but they need watching. Suppose we give those a 1. And suppose we give an "average" dev, fairly smart, with a lot of experience, a 2. Such a person doesn't need watching, and gets stuff done.
I'd say a zero needs to find more suitable work.
A 1 is worth investing in.
A 2 is most good professional devs.
So what's this x10 fellow? Well, I rate myself as a 2. I'm a journeyman, and I'll never be a master. But the people I've met that I'd rate as "masters" were no more than twice as productive as I was.
I can't imagine a dev that was 10x as productive as a journeyman. I've certainly never met one. Software development is a process of discovering and remedying bugs - from the requirements, through the design, to the implementation. These things take roughly the same amount of time, whether you are a journeyman or a "master". And once you have identified the problem, the solution is usually fairly obvious.
If this notion of a 10x dev is a real thing, then I suspect it arises in people who regard technology as some kind of woo. If you're recruiting a magician, then he'd better be better than any other magician, because you don't know magic.
The best developers don't add utility just by their own direct productivity, they add utility by increasing the productivity of the team (pointing people in directions that avoid dead ends, helping quickly bust impediments, etc., contributing in design discussions in a way which reduces the amount of unnecessary code that ever gets written, etc.) This is a much bigger effect (IME) than the delta in personal direct coding output.
> Software development is a process of discovering and remedying bugs - from the requirements, through the design, to the implementation
The fastest developers are those who barely put in bugs in the first place not those who are good at finding the bugs they themselves put in.
Example: Two developers writes half of a project. Developer A's code has 10 bugs, developer B's code has 1 bug. They both work together to fix the bugs, developer A fixed 4 of A's bugs while B fixed 6 of A's bug and his own bug. In total A fixed 4 and B fixed 7. In this case it looks like B was almost twice as effective, but if B didn't have to fix A's bugs he would have been way faster, especially since fixing others bugs is way harder than fixing your own.
But I'm aware that many of those I've rated zero are actually something negative, as in "Please stop writing code" (I was trying to be generous). I'm thinking of people with personality defects, who are also novice coders, who also think they're God's gift, and therefore won't take advice.
So the score is a continuum, and there are negative (and zero) values. If that conflicts with the "x10" concept, then I'm not unhappy.
I'm also conscious of the notion that some super-clever people can unexpectedly wreck an organisation or team, instead of sparking it off. It's not insane to think of a -x4 dev. Very smart, but anyone picking up his work has a mountain to climb.
I know that I've had many colleagues that were next to useless - even, possibly, exhibiting negative utility. Let's just give that kind a zero. Then there are novices - smart people with little experience. They can get stuff done, but they need watching. Suppose we give those a 1. And suppose we give an "average" dev, fairly smart, with a lot of experience, a 2. Such a person doesn't need watching, and gets stuff done.
I'd say a zero needs to find more suitable work.
A 1 is worth investing in.
A 2 is most good professional devs.
So what's this x10 fellow? Well, I rate myself as a 2. I'm a journeyman, and I'll never be a master. But the people I've met that I'd rate as "masters" were no more than twice as productive as I was.
I can't imagine a dev that was 10x as productive as a journeyman. I've certainly never met one. Software development is a process of discovering and remedying bugs - from the requirements, through the design, to the implementation. These things take roughly the same amount of time, whether you are a journeyman or a "master". And once you have identified the problem, the solution is usually fairly obvious.
If this notion of a 10x dev is a real thing, then I suspect it arises in people who regard technology as some kind of woo. If you're recruiting a magician, then he'd better be better than any other magician, because you don't know magic.