When the original study (dating back to 1968) coined the term 10x. This Medium post is not about that original study (although it postulates the shaky foundation of the term)
10x developers / Rockstar developers: A term often used in job advert for programmers (2 years experience) earning around the same as a retail manager in their locale, accompanied by a vague job specification and limited benefit.
The origin of the term
The origin of the 10x developer comes from the table above. That is, in 1968 a study of 12 programmers compared the poorest and worst programmers in terms of debug hours and efficiency (in terms of CPU time, coding hours, program size and run time) for two leetcode — like problems.
The main technical issues with the study
The studies don’t control for individual capabilities, salaries, ages, time in the industy…. They conflate the results from programmers using high and low level languages.
Comparing with the norm
If we take productivity at a macro level, that of GDP per hour worked the most productive country (Norway) to the least (Bangladesh) do have a 10:1 ratio.
Of course this also does not control for the individual, and this time does not take into account the work performed. We would also need to control for the conditions the workers work in, rather than labelling them as inefficient. As we shall see, this is a damaging idea.
Why the study is dangerous
The brain the rewires itself
We all have brains that are plastic, that can learn new abilities. Those who are worst performers can work at it and, over time become the best. When Marissa had half a brain removed, the other hemisphere took over. When people have strokes in later life the brain compensates, it is even possible to regain movement in paralysed parts of their body due to flexibility in the brain.
Why is it that developers often claim that you cannot become a 10x programmer, and it is due to some innate ability and you even have it or you don’t.
The idea that you cannot be trained in programming, that it is an innate ability prevents new entrants to the field. It promotes elitism and is without a shred of foundation, and is often used to punish workers perceived to be inferior.
The metric is damaging
The study uses an individual metric for a team activity. I’ve previously written that development and testing is collaborative. Without a structure and a team working with you, what are you doing that is so productive? Even if you work alone on a lonely island making your own software you are deciding to accept suitable work or contracts (leveraging the experience of people writing specifications) or creating your own software and using the unmeasured (in terms of the study here) skills choosing the project and developing your own requirements.
The idea of this limited metric is damaging. It excludes team contribution.
Solving problems is not the same as debugging them
You can’t extrapolate one element of programming and transfer it onto other fascets. The study is one about small problems, what about architecture and frameworks? What about documentation? Worst, the task shown in 1968 was a debugging task. Oh dear.
If these aren’t measured, how are any of the claims we have seen true?
Defenders of the 10x principle defend it with their experience
Experiential evidence should not be thrown away without some thought.
However, in this case that time your firm took a developer straight out of University and deleted your backend database isn’t really a study. You identified someone who needed support to be successful, and instead of training your firm gave him the ssh key and a desk.
Your experience can be valid, but is at best partial evidence.
The arrogance factor: The 10x principle is about the best outperforming the worst, and is some form of universal constant and cannot be changed
Peopleware puts this forwards. The problem is that the best employees use it to make the worst look bad rather than helping them. Deny a merge with nonsensical feedback because you don’t have time to help? You don’t need to produce documentation because the code is self documenting for an API call? The idea that the best programmers should be left to do that, and not work with the others in the team to deliver a quality product is…perfectly fine for companies that won’t be around long. If you are working for a larger company a manager should be working to manage out these employees as quickly as possible.
If you have an employee substantially better than the others and will not help others, they may be better outside your organisation. In fact it might be OK to have them as a short-term consultant but not as a member of your team.
What can we take from this? That there are lots of people who don’t like to work together in the world? In a way, yes. When choosing a job you should choose your manager over all the other variables at play.
Are you supported in learning new technologies?
At interview time are you memory tested rather than behaviourally tested?
Does your interviewer pass the A**hole test?
Is there a training budget?
If you believe that there are 10x programmers and some people are just better than others, to be honest you don’t need a manager. You just need to be a 10x programmer, and since you cannot learn to do this if you’re not one already you might be better to quit.
I don’t recommend this line of thinking, especially as some who say they are 10x programmers have a distorted view of their own work and productivity. But good luck to you.
If not, continue on the path of learning and development. Teamwork skills are important and you need to make sure that they are part of your overall offer as an employee. If not, we are living in a world where there will be vanishing small numbers of software developers in the future.