For as long as I’ve been in software, there’s been talk of the 10x developer. These are the people you want to solve your problems; they’ll do it in 1/10th of the time, with 1/10th of the number of lines of code. They sound awesome.
But were did the term come from? Do they exist? And even if they do, would you want to be one anyway?
Tom DeMarco and Tim Lister have, since 1977, conducted the “Coding War Games”. This is a public productivity survey in which teams of software implementors from different organizations compete to complete a series of benchmarks in minimal time with minimal defects. They’ve had over 600 developers participate.
What did they learn?
- Choice of programming language had little impact — whether it was COBOL/Fortran or a high-level language like Pascal the spread of results is about the same. The only exception was assembly language.
- There was no correlation between experience and performance except that those with less than six months of experience with a language did not do as well as the others.
- The developers of zero-defect solutions paid no performance penalty for doing more precise work (in fact, they took slightly less time!).
They did find that there were huge differences between the organizations. The best organization worked 11.1 times faster than the worst. In addition, those that worked fastest developed code that passed the acceptance test. Case closed?
Well, not quite. The study then goes on to correlate the workplace environment (which is different across organization) to performance. It turns out that quiet, private, dedicated working space group performed significantly better.
Lesson learnt — get your working environment right first before you start to worry about whether you can find 10x developers or not!
Schulmeyer observes that some developers are “net negative producing programmers” (NNPP), that is they produce so many defects that removing them from the team increases productivity. This is almost the opposite of the 10x developer — it’s possible to have someone on the team that makes it worse.
If negative producers exist (- Nx developers?) then it’s clearly possible to have a 10x developer (mathematics aside).
It’s not the greatest argument for the 10x programmer though, is it? If I asked a school child to join a team, would they be a net-negative producer? Probably, if I let them sit in a corner and bash in some code (and if some how they can push to production!). If you’re the sort of company that lets people sit in the corner, doesn’t give feedback and lets them push to production then I think you probably deserve to have NNPP