

The 10x developer is not a myth - brikis98
http://brikis98.blogspot.com/2013/09/the-10x-developer-is-not-myth.html

======
plorkyeran
My problem with the notion of the 10x developer is that I've never seen a
reasonable study into what a 1x developer is. An order of magnitude gap in
productivity between the best and the worst is a massive understatement. I've
worked with programmers with net-negative or zero productivity, and being ten
times more productive than that is trivial. Thus, the real question is whether
or not the people who are a tenth as productive as the very best developers
happen to be average, and to answer that we'd first need a much better idea of
what the "average" developer is.

------
LordHumungous
There's a bit of a difference between science, where you are trying to find
insight on unanswered questions, and engineering, where the problem space is
usually well understood. In the former a single brilliant individual can have
a huge impact, whereas in engineering it is usually teams that do so. My
problem with the "rockstar developer" idea is not so much that it is
incorrect, it is that it places the emphasis on the individual over the team,
which is the real unit of productivity.

------
TillE
"Star" athletes are an interesting example. Are they 10x better than the
average professional athlete? Well no, probably not. Pick whichever objective
statistical measure you like, and you'll probably find that the top five
players in the world are maybe 2-3x better than the average pro.

Similarly, it's trivial to find thousands of guitarists on YouTube with
enormous technical ability, who will never become famous.

I'd suggest that the top 10-20% of developers are actually quite good, and
being obsessed with the top 0.01% isn't very useful.

~~~
brikis98
First of all, some star athletes are statistically _far more_ than 10x better
than the average. For example, the average NHL player scores less than 50
goals in his career [1] whereas Gretzky scored 894 [2] and Mario Lemieux
scored 690 [3]. And that doesn't even count their assists, leadership,
defense, name recognition (bringing in fans), etc. And I'm not even comparing
these guys to other pro hockey players, such as the minor leagues and leagues
outside of the US.

However, not all sports have "points" that scale the same way, so the 10x
number is not as easy to apply. For example, Usain Bolt is not literally 10
times faster than the average professional sprinter; his best 100m is 9.58
[4], where as any moderately fit male can easily hit sub 20 seconds, and I
believe any professional sprinter will go under 11 seconds. Nevertheless, I'd
guess that in the 100m sprint, a difference of 1 or 2 seconds represents an
order of magnitude (or two) difference in ability, even if it's only 10-20% of
the time. What kind of odds would you give him in a race against an "average
professional"? 10:1? 100:1? 1000:1? Usain is roughly as far above other pro
sprinters as Gretzky and Lemieux were against other pro hockey players.

I'd also mention that "fame" is a bit of an x-factor. The world is not a
perfect meritocracy and there is so much luck and so many external factors
that go into being famous that it's not necessarily true that only famous
scientists/musicians/writers are the only ones who are 10x. Of course, the
famous folks are the only ones I can reasonably use as examples, and fame
likely correlates with talent, though that talent may just be at being famous
:)

[1]
[http://www.quanthockey.com/Distributions/CareerGoals.php](http://www.quanthockey.com/Distributions/CareerGoals.php)
[2]
[http://www.nhl.com/ice/player.htm?id=8447400](http://www.nhl.com/ice/player.htm?id=8447400)
[3]
[http://www.nhl.com/ice/player.htm?id=8448782](http://www.nhl.com/ice/player.htm?id=8448782)
[4]
[http://en.wikipedia.org/wiki/Men's_100_metres_world_record_p...](http://en.wikipedia.org/wiki/Men's_100_metres_world_record_progression)

~~~
frostmatthew
> the average NHL player scores less than 50 goals in his career [1] whereas
> Gretzky scored 894 [2] and Mario Lemieux scored 690 [3]

But what are the numbers per season? If Gretzky had a career ending injury at
the end of his first season he still would have been better than a mediocre
player, even though an average player could play for years and rack up more in
a career than the best could in a single season. My point is did players like
Gretzky and Lemieux score ten times as many goals per season than the average
player?

I'll assume I'm an average engineer (since statistically speaking this is the
most likely case), it blows my mind to think there's a large number of people
out there who in just a few hours could knock out everything I spent all of
last week on. (I'm not saying 10x devs don't exist, I just think they are very
few and far between, the NHL afterall has only had one Gretzky in its entire
history)

~~~
brikis98
Actually, in the case of Gretzky and Lemieux, I believe they did average ~10x
more points (and other contributions) per season than the average player.
Also, don't forget that the NHL is just the best of the best; there are many
hockey players that are "pros" but never make it to the NHL. When you factor
them in, players like Gretzky may be several orders of magnitude better than
average.

>> it blows my mind to think there's a large number of people out there who in
just a few hours could knock out everything I spent all of last week on.

First of all, as I wrote in the post, 10x programmers are rare. There isn't a
"large number" of them.

Second, it's not about producing more lines of code per minute or per week.
It's about producing the maximum value (for lack of a better word) in a time
period by making good decisions.

I'm not a 10x programmer and the results on my own work week are pretty
obvious: when I look at it closely, I realize that I spend a lot of time
dealing previous mistakes. I lose days because I made a solution that's too
tightly coupled and it's hard to adapt the code to a new situation; I didn't
add enough tests and waste lots of time fixing regressions; I didn't add
enough documentation and can't remember why I made certain decisions; I've
created designs that don't scale and need to be replaced entirely; and so on.
Since it's harder to read code than to write it[1] and since the cost of
fixing defects increases dramatically later in the software process[2], these
bad decisions eat up an enormous amount of time.

However, as I learn more, I've noticed that I spend a much higher proportion
of my time solving the "real" business problem instead of dealing with
previous mistakes. In other words, I'm becoming dramatically more productive
than I used to be, not because I'm typing faster, but because I'm
avoiding/reducing entire branches of work that used to eat up my time.

These sorts of effects multiply: for the 10x programmer, the gain in
productivity can be huge and they will be able to get an order of magnitude
more done than the average coder.

* [1] [http://www.joelonsoftware.com/articles/fog0000000069.html](http://www.joelonsoftware.com/articles/fog0000000069.html) * [2] [http://en.wikipedia.org/wiki/Software_testing#Economics](http://en.wikipedia.org/wiki/Software_testing#Economics)

~~~
wavefunction
That's great and all but Gretzky was a center and so comparing his scoring
against "average NHL players" is ludicrous.

This is not to claim that Gretzky is not "The Greatest" but: 1.5x Mark
Messier(center) 1.5x Gordie Howe(right wing) 1.5x Ron Francis (center) ...

When we consider p/g Gretzky has a 1.98 (great!) but the 250th on the list has
.7 p/g, which is a 2.8x ratio.

10x is imo simply a silly label that doesn't actually apply IRL but is great
at ego-stroking.

~~~
brikis98
250th on the list of all time NHLers? That's still a __tiny __percentage of
all players that have every played (~1500 /year, obviously with some overlap
from year to year). And that's only counting those in the NHL; there are many
hockey "pros" who could only dream of making the NHL. Factor them in and the
Gretzky performance is even more remarkable.

And you're only looking at points scored. How does a star's leadership affect
their team? How did their mere presence affect the other team's entire
strategy? How many seats does a star fill in the stadium every time they
played? How many jerseys and other merchandise did they sell? Hockey, like
software, is a business and I'd be that someone like Gretzky brings in an
order of magnitude more money than an "average" hockey pro.

Denying the possibility that there could be someone 10x better than you is the
real ego stroking. I _know_ there are developers an order of magnitude better
than me. I find that inspiring, as it gives me something to work for every
day.

~~~
wavefunction
Just saying, if 250th of all-time are about half/a third the p/g of Gretzky, I
find the 10x label lacking. Comparing him via pts scored to goalies and
defense is questionable at best.

~~~
brikis98
Re-read my reply above. You're comparing a fraction of Gretzky's contribution
to a fraction of all the professional hockey players, even if you only look at
forwards. Even then, he ends up 2-3x better than this already elite group.

------
eitland
As I have pointed out before I have seen on first hand the difference between
someone who is great and someone who is filling out the blanks. This is from a
few years ago:

The "10x" consultant would delete hundreds of lines of code and keep the
functionality. He would rewrite things and make them simpler. And in between
he was helping the rest of us, explain architecture and generally make sure we
were able to follow.

On the other hand I have seen other consultants, who were definitely smart[1],
who would still do things like:

Use tiles (a templating framework for java/struts) to implement authorization.
(Cleaning up this fell on me. : )

Add style tags to the body of the page (once the designer found and fixed this
it solved all the perceived performance problems we had.)

[1]: If you had seen that code you would have agreed. It was some kind of
weird artwork :-/ It worked perfect but every little change took full
concentration, a significant amount of time and added to templates spanning
hundreds of loc.

------
dcre
I'll save everyone the trouble.

"Yeah it is!" "No it isn't!" "Yeah it is!" "No it isn't!"

I do like your other article about converting imperative list processing code
into functional style, though.
[http://brikis98.blogspot.com/2013/05/10-recipes-for-
turning-...](http://brikis98.blogspot.com/2013/05/10-recipes-for-turning-
imperative-java.html)

------
angersock
One of the skills, I think, of being a 10x developer is picking the right tool
for the job--picking a language and level of abstraction that will as cleanly
and simply solve the task at hand.

It takes a good amount of experience and knowledge to know when to, for
example, prefer assembly to C to C++ to Bash to Ruby to Prolog--not only that
experience and knowledge, but the wisdom to see how that choice affects the
other people on your team or future people maintaining the code and
environment.

(This is an area in which I wish I was further developed.)

