Every few months there is a debate about the existence of a mythical "10x developer" who is able to produce 10 times more code than an "average" software developer. Recently, there has been a lot of attention on a tweet that is promoting the 10x developer. To me, this tweet reads like satire and I think many others see it as a farce as well. But for those who don't understand why this trope is bad for companies and individuals alike, I would like to share my view:
Lines of Code Is a Bad Measure of Productivity
The 10x developer is known for churning out a lot of code at an incredible rate. Using the number of lines of code written as a measure of productivity is akin to measuring the number of pieces in a car's engine. It doesn't matter how many pieces are used – what matters is that the car is safe to drive, it looks good, it goes fast, and it sells well. Similarly, in software, the amount of code written does not necessarily relate to an organization's goal. Whether the goal is to improve a community or to sell more licences, the value the organization provides is what should be measured, not lines of code.
Source Code Is a Liability Not an Asset
Not only is the number of lines of code written a horrible measure of productivity, it is also – in the case of end-user software – a liability to the company. Let me repeat that: software is a liability, not an asset. Software needs to be maintained, servers go down, vulnerabilities need to be patched, new features need to be added, and trends and user expectations change over time and need to be met. A software system or product is never finished. If no improvements or updates are made to the software, over time it will stop functioning.
In some cases, the software itself can be considered an asset but this is rare. For example, RethinkDB, which is an innovative database, is an asset. Still, the software must be constantly improved; it is never complete.
Communication Is More Important Than Code Output
The 10x developer has "irregular hours", "hates meetings", and is generally known to work alone. Don't disturb them or they might stop pumping out code!
The hardest part of building software is reading and working with code that isn't your own – or even code that you wrote more than 6 months ago. Everyone has a slightly different mental model of a software system and so logic and approach is different from person to person. Since teams are made up of multiple people, these people must communicate to work effectively. Collaboration is crucial in software teams so that all members can be productive.
Rewarding solitary and non-communicative behaviour is a net loss.
Celebrating a 10x Developer Is Exclusionary
Most importantly, putting the 10x developer on a pedestal is especially damaging to people from underrepresented groups. To self-identify as a 10x developer who deserves to be praised and left alone to work, you have privilege granted by being a member of the dominant culture. By celebrating the 10x developer, you are upholding an ideal of a white cis-male developer propagated by Silicon Valley. Rewarding this behaviour promotes a monoculture and discourages the growth of a diverse and talented team.
Celebrating the notion of a 10x developer is bad for individuals and bad for a work environments – and I'm sure there are countless other reasons to reject the idea. Thankfully the software community now seems to reject the notion of a 10x developer. I hope that the majority of people can see the negative outcome of promoting this idea - especially those in the position to hire others for work.