DaedTech

Stories about Software

By

10x Developer, Reconsidered

Unless my memory and a quick search of my blog are both mistaken, I’ve never tackled the controversial concept of a “10x developer.” For those who aren’t aware, this is the idea that some programmers are order(s) of magnitude more productive than others, with the exact figure varying. I believe that studies of varying statistical rigor have been suggestive of this possibility for decades and that Steve McConnell wrote about it in the iconic book, “Code Complete.” But wherever, exactly, it came from, the sound byte that dominates our industry is the “10x Developer” — the outlier developer archetype so productive as to be called a “rock star.” This seems to drive an endless debate cycle in the community as to whether or not it’s a myth that some of us are 10 or more times as awesome as others. You can read some salient points and a whole ton of interesting links from this jumping off stack exchange question.

I’ve never really written about this because it’s hard for me to have a non-nuanced opinion. I mean, I’d be willing to hypothesize that if you scoured the globe, you could find a couple of people for whom this is measurably true. Perhaps Alice and Bob each wrote a phone app in 3 weeks, and Alice grossed $10,000 while Bob only grossed $1,000. Alice is a 10x developer, where x is Bob. Of course, I wrote zero apps while they were each doing that, so Alice is a {undefined} developer as a function of Erik. Actually, no, come to think of it during those weeks I went on an audio book binge and I actually spent $200, so Alice is a -50x developer. Pretty impressive, since her awesome can counteract my bad 50 times over. Alice could support my audio book habit for several years!

Hopefully that weird little exercise has implicitly driven home my point about my hesitation to have an opinion on this, but in case it hasn’t, I’ll state it explicitly. Defining what it means for a developer to be ‘productive’ is an extremely difficult problem all by itself, to say nothing of controlling other variables and attempting to measure differences in productivity. Having read Code Complete myself and, back in grad school, some white papers on this subject, what I recall is that there’s nothing, per se, to indicate that they didn’t find instances where some set of folks were somehow more effective by an order of magnitude. But what’s questionable is how broadly applicable that might be in the general case or as a property of the human beings doing the work rather than the environments and circumstances of those folks. To clarify, if you fed me a six pack and asked me to write some Cobol, I’d probably be orders of magnitude less productive than if you gave me a cup of coffee and asked me to write an MVC application. So, does that mean that I’m both a 10x developer and a 0.1x developer?

DrunkDev

Mehdi Khalili once introduced me, through his blog, to the term “Net Negative Producing Programmer,” to describe a person who is actually a drag on the team rather than any kind of help, however middling. That speaks to most of us, I think, anecdotally and intuitively. There are people who are simply so checked out or so toxic that they contribute little if anything while slowing others down. Similarly, there are people who are essentially ballast when it comes to producing software: newbies to the team lacking domain knowledge, initiate programmers, overhead personnel, etc. And that adds in some very real, practical cases that seem to throw the universality of a ratio into question — if a valid scenario is causing me frequently to divide by zero, I might need a different framework to be descriptive than a simple ratio.

I think that our tenuous grasp on even a semblance of an ability to measure this in practical circumstances makes it a footnote piece of trivia at best. “Did you know, that in certain circumstances, developers with one set of circumstances can be 10 or 20 times as efficient as developers with another set of circumstances!” Hardly Earth shattering. Anyone who has ever been sentenced to Rational Clear Case could tell you that. But as soon as it was turned into a meme and used to create self-selected classes of developers (cue recruiter pitches “we’re looking for 10x rockstars that can rock out on our ping pong tables, B players need not apply, brah!”), I think the damage to discourse began to outweigh the usefulness of the information.

But I also think we can take it back. Beyond avoiding beer, Cobol and Clear Case, I’m not entirely sure how I can alter my circumstances to the marching orders “be 10 times more awesome than you are right now!” What I do know is how I can, in a period of time, create 10 times as much value in the world of programming. It’s really pretty simple. I can, during that time, pair up with 10 less experienced developers and show them how to find solutions in minutes for things that would have taken them hours or days. I can make myself available to answer their questions. I can intervene at the point where they’d have thrown up their arms in frustration and despair and spent the rest of the day reading buzz feed and cracked. I can clear obstacles from their paths and help them get things done. I can get them excited about programming and enjoying their jobs.

If I were a high performing developer, but I did none of that, and just used those less experienced or less engaged developers as a prop to make the claim that I’m in some kind of elite club of “10x” people, the opportunity cost of my attitude would more than offset my skill from an industry perspective. If, instead, I help them up their game and overcome hurdles, then perhaps that 10x designation might actually mean something.