This again. Here's something I churn out every time a 10x thread starts again. It has some references in it:
A 2nd edition of Peopleware summarises it; the 10x programmer is not a myth, but it's comparing the best to the worst; NOT best to median. It's also not about programming specifically; it's simply a common distribution in many metrics of performance.
The rule of thumb Peopleware states is that you can rely on the best outperforming the worst by a factor of 10, and you can rely on the best outperforming the median by a factor of 2.5. This of course indicates that a median developer, middle of the pack, is a 4x developer. Obviously, this is a statistical rule, and if you've got a tiny sample size or some kind of singular outlier or other such; well, we're all adults and we understand how statistics and distributions work.
Peopleware uses Boehn (1981), Sackman (1968), Augustine (1979) and Lawrence (1981) as its sources. [ "Peopleware", DeMarco and Lister, 1987, p45 ]
If a 1X programmer is taken to be the worst or lowest quartile and not the median or competent programmer then this 10X is pointless and misleading.
This 1x programmer has no productivity whatsoever, has a negative contribution to any project they are on, damage designs and confuse meanings and doesn't even use the results of the time they consume from other programmers to improve because having copied the answer, their boss thinks they are improving and is off their back.
A top quartile programmer would be a more meaningful statement when considering HR decisions particularly since productivity is usually going to drop fast when changing workplace, domain, preferred languages, development styles, and coworkers.
You aren't getting 10x what you would expect given that you are optimistic in whoever you hire.. You are getting about 2.5x iff they are "10X".
In my view, being 10x highly depends on selecting the right problems. People usually can only breathe so much air or type so many words per minute. It's hard to get up to 10x if that's what you are measured by. But if you are challenged with a hard problem where most others will fail completely or barely succeed after several tries, you can really shine. It's very important that you can successfully select such hard problems and not get bogged down with the daily grind of average difficulty problems.
The downside is that if you solve hard problems without breaking any sweat, most people won't notice at all. In order to not only perform 10x but also get rewarded 10x you need additional skills of playing politics and marketing yourself.
This article is strange, they provide lots of counter evidence that in fact there are 10x programmers. They don't really provide any evidence for their thesis at all except to say the concept makes others feel bad, and that they are too rare to base hiring decisions around.
Betteridge's law of headlines works here too as they later go on to say that being a jerk and a 10x programmer are unrelated concepts.
The push for this team effect where everyone is equal is equally as foolish. 10 programmers producing 1x work will not produce the same work as the 10x programmer because the communication between those 10 will always be slower than one mind.
The problem occurs when the 10x meets the 3x developer. The 3x developer is use to being 3 times better on average so they think they are a 10x developer.
Take a 10x soldier/marine pair them up with 1x soldiers. The 10x soldier will always seem like a jerk to the rest because they know how to survive and will be pulling the team in that direction without discussion.
Put the 10x developer in charge and they will make the most of the 1x team members. Tell everyone they are equal the 10x developer will wonder why no one is pulling their own weight.
The problem is with the flatness of startups or with the easily replacable cog at large org. Everyone thinks that every developer is the same.
10x programmers exist, but often it doesn’t matter. The only way one programmer is 10x better than the median of a team of solidly educated peers is in the very few extraordinarally difficult problems that require something like real genius. If there’s someone on a team doing 10x more average code than his or her peers it’s by avoiding other work that isn’t being tracked as carefully. Also, people who write less new code than others are often contributing above average on things like writing bug reports and doing thorough code reviews. FWIW I’m basing this mostly on real data from a multi year project.
I dumped the database of the bug-tracking and code review systems we used, and analyzed those, by developer, matching them up to the same kind of deep analysis of subversion commits i used to look at coding productivity. This was a 5 year project with something like 60 devs. So yeah, I can know that.
BTW, if you think I can know that, you also seem to think that it's ok to say someone is 10X better than someone else at something that can't be measured.
Honestly I've never really concerned myself with the existence of 10x programmers or not, if they do exist I'm not one of them nor likely to ever be, As long as I'm more capable than I was this time last year I'm happy with that, it's kept programming challenging/interesting for 30 years.
My favourite recent feedback from a user was that "The system thinks the way I do and it reminds me when I've forgotten something".
The last couple of years I've branched out to putting much more focus on UX and trying to get ahead of what users are trying to get done and so it's nice to see positive feedback on that - It's funny but those little gentle touches that improve a users workflow mean more to them than all the underlying (or not) elegance of the code, it's a bit too easy to stare at a tree closely and miss the forest.
In a field as vast as ours you might be 10x at one one thing and 0.5x on something else entirely.
I believe in 10x programmers, because I have known many programmers over the years, and I can think of many pairs where one was clearly 10x as productive as the other. And I think the reason there are 10x programmers is that our profession tolerates a lot of embarrassingly incompetent people. If someone were 10x as productive as an average developer, that would be truly extraordinary. But I don't see 10x programmers as all that extraordinary, because there are so many people who get paid to program but suck at it so bad, that being 10x as productive as they are is not all that impressive.
While I agree, suddenly, there is a lot more 10x developers around me, and that doesn't feel right. I'll stick with my definition for my purposes, and thank you for telling me!
That doesn't make any sense since the worst programmers are negatively productive -- they cause more problems for the rest of the team than anything they produce could ever outweigh.
Hiring awesome devs is hard, my experience is that you are better off keeping the terrible devs out.
Some people will not add, they'll subtract, those should be kicked out quickly.
I'm not talking about experience level, an intern can help if properly guided, but if the dev is not engaged or has poor work ethic that can actually make others less productive.
Gaslighting. Only well-connected networkers are worth 10x, or more. Engineers should just build the product, and stop being jerks asking to sit at the big guys table.
Hmmm a 10x programmer is not mostly programming at all. It's the guy who mitigates the technical risk of a project properly, chooses the most appropriate tools to complete the job and assembles a team to get it done.
A project that handles these tasks poorly can easily cost ten times as much as the same task executed well.
It feels to me like if there are "10x programmers", they'd get dragged down by process and environmental mediocrity. In other words, they'd be subject to Amdahl's law: the programmer may be 10x, but the tech environment will still only be 1x. Assuming a 50/50 contribution, that caps the 10x programmer at 2x, where they will feel keenly how much they're underperforming their potential.
Breaking free of that environment probably looks like being a jerk. E.g. using languages and patterns nobody else knows, ignoring work they have no comparative advantage in (documentation, massaging people and bug reports), not writing as many unit tests, skipping peer review, writing harder to follow code, etc.
(By the way, would be very interested in places with a minimum of process)
28 comments
[ 3.7 ms ] story [ 99.1 ms ] threadA 2nd edition of Peopleware summarises it; the 10x programmer is not a myth, but it's comparing the best to the worst; NOT best to median. It's also not about programming specifically; it's simply a common distribution in many metrics of performance.
The rule of thumb Peopleware states is that you can rely on the best outperforming the worst by a factor of 10, and you can rely on the best outperforming the median by a factor of 2.5. This of course indicates that a median developer, middle of the pack, is a 4x developer. Obviously, this is a statistical rule, and if you've got a tiny sample size or some kind of singular outlier or other such; well, we're all adults and we understand how statistics and distributions work.
Peopleware uses Boehn (1981), Sackman (1968), Augustine (1979) and Lawrence (1981) as its sources. [ "Peopleware", DeMarco and Lister, 1987, p45 ]
If a 1X programmer is taken to be the worst or lowest quartile and not the median or competent programmer then this 10X is pointless and misleading.
This 1x programmer has no productivity whatsoever, has a negative contribution to any project they are on, damage designs and confuse meanings and doesn't even use the results of the time they consume from other programmers to improve because having copied the answer, their boss thinks they are improving and is off their back.
A top quartile programmer would be a more meaningful statement when considering HR decisions particularly since productivity is usually going to drop fast when changing workplace, domain, preferred languages, development styles, and coworkers.
You aren't getting 10x what you would expect given that you are optimistic in whoever you hire.. You are getting about 2.5x iff they are "10X".
The downside is that if you solve hard problems without breaking any sweat, most people won't notice at all. In order to not only perform 10x but also get rewarded 10x you need additional skills of playing politics and marketing yourself.
Betteridge's law of headlines works here too as they later go on to say that being a jerk and a 10x programmer are unrelated concepts.
Yeah. It looks like the author laid out her views in the first sentence.
"Myth" implies that they're non-existent, and "the shine is wearing off" implies that she doesn't much care for them whether or not they exist....or maybe there is something to the "myth" that some people contribute extraordinary achievements in a their field.
The push for this team effect where everyone is equal is equally as foolish. 10 programmers producing 1x work will not produce the same work as the 10x programmer because the communication between those 10 will always be slower than one mind.
The problem occurs when the 10x meets the 3x developer. The 3x developer is use to being 3 times better on average so they think they are a 10x developer.
Take a 10x soldier/marine pair them up with 1x soldiers. The 10x soldier will always seem like a jerk to the rest because they know how to survive and will be pulling the team in that direction without discussion.
Put the 10x developer in charge and they will make the most of the 1x team members. Tell everyone they are equal the 10x developer will wonder why no one is pulling their own weight.
The problem is with the flatness of startups or with the easily replacable cog at large org. Everyone thinks that every developer is the same.
You can't possibly know that for a fact.
Oh, and "someone on a team doing 10x more average code than his or her peers" is not what 10x programmer refers to.
That's the nature of this beast.
BTW, if you think I can know that, you also seem to think that it's ok to say someone is 10X better than someone else at something that can't be measured.
Did your project ever run into obstacles where >50% of the previous work had to be thrown out?
My favourite recent feedback from a user was that "The system thinks the way I do and it reminds me when I've forgotten something".
The last couple of years I've branched out to putting much more focus on UX and trying to get ahead of what users are trying to get done and so it's nice to see positive feedback on that - It's funny but those little gentle touches that improve a users workflow mean more to them than all the underlying (or not) elegance of the code, it's a bit too easy to stare at a tree closely and miss the forest.
In a field as vast as ours you might be 10x at one one thing and 0.5x on something else entirely.
The worst.
It's a pity that's the first result, because it's flat wrong. This article actually talks about the origin of the claim:
https://www.ybrikman.com/writing/2013/09/29/the-10x-develope...
I believe in 10x programmers, because I have known many programmers over the years, and I can think of many pairs where one was clearly 10x as productive as the other. And I think the reason there are 10x programmers is that our profession tolerates a lot of embarrassingly incompetent people. If someone were 10x as productive as an average developer, that would be truly extraordinary. But I don't see 10x programmers as all that extraordinary, because there are so many people who get paid to program but suck at it so bad, that being 10x as productive as they are is not all that impressive.
Some people will not add, they'll subtract, those should be kicked out quickly.
I'm not talking about experience level, an intern can help if properly guided, but if the dev is not engaged or has poor work ethic that can actually make others less productive.
Still a jerk though. I try not to be, but sometimes.
A project that handles these tasks poorly can easily cost ten times as much as the same task executed well.
Breaking free of that environment probably looks like being a jerk. E.g. using languages and patterns nobody else knows, ignoring work they have no comparative advantage in (documentation, massaging people and bug reports), not writing as many unit tests, skipping peer review, writing harder to follow code, etc.
(By the way, would be very interested in places with a minimum of process)