Simon Harriyott

10x Developers

Originally, a 10x developer was simply someone whose self-reported times to complete an assignment were 10x faster than the slowest, as described in Joel Spolsky's blog post. This was a set of solo projects, which were well-defined in scope, and the requirements didn't change.

I remember doing assignments at sixth-form college. There were some people who just didn't get it with the programming. I'd explain it, and they'd kind of understand but it wasn't really for them. I've deliberately made myself sound arrogant there. They were much better at other aspects of the course, and they'd help me with the business analysis module, or the systems specification coursework. I wasn't that interested in designing a network.

The people who “got” programming became programmers. The people who didn't, didn't. Like the programmers, they chose careers they were excited about and were good at.

There's no data to back it up, but I reckon none of the 1x developers from the Yale class became programmers. If so, then a 10x developer is someone who is 10x faster than someone who isn't a developer. Not really a useful comparison. Maybe the fastest were 2x or 3x faster than the students who decided to stick with it.

But, but, but! Joel's article doesn't say that one or two students were always the fastest, just that the fastest _times_ were significantly faster than the slowest. It does not say that Sammy was always the fastest: they might have been fast in two or three, but average in others.

These self-reported times are for static, solo projects. There is no data for agile, group projects. In my 20+ year programming career, I have never seen a static, solo project. Plenty of solo, zero static. Maybe a single agile ticket would count as one, but projects change regularly.

Speed is only one metric. Imagine coder top trumps. There would be other attributes: years of experience, bugs fixed, languages proficient in, salary, etc. If you were actually playing top trumps, it would be exciting to get the fastest on your turn, as that card would win against every other card. Hooray! But if it was your opponent's turn, and they chose helpfulness, you'd lose your best card to an average developer.

If you have a software team, you want team developers; you don't want a solo star.

10x developers don't exist, and if they did, they wouldn't be useful.

Rockstar developers exist. They sound exciting, and impress fans who see their best work on the internet. They don't impress people who have to work with them, and clear up TVs from outside their hotel room windows, get them to meetings, manage their egos, and get them to apologise to the bass player.

Developers now exist in teams. They have to be team players. It is no longer desirable to be a heads-down-talk-to-nobody developer.

15 July 2019