Comments:"There are no x10 developers, but there are certainly 1/10 ones « techfounder"
URL:http://www.techfounder.net/2013/04/04/there-are-no-x10-developers-but-there-are-certainly-110-ones/
I keep seeing the term "x10 developer" pop up recently. I think this sets the baseline at the wrong place - the so-called "x10 developers" are the bar, and there are some developers, who for various reasons, don't reach it.
"x10 developers" are, in fact, proficient developers, who are experienced with their stack and problem domain. Once you get to this point, you can still find room to optimize - some people are inherently more focused, and you can always gain more experience, but the difference between developers who are proficient at what they do will never be a x10 multiplier - it will be closer to a variation of 30-40% in productivity. In some extreme cases (super experienced, focused, and naturally gifted), you might even reach x2 times productivity over a baseline proficient developer (I've seen it in action).
On the other hand, you have developers who are simply not proficient. They either have no aptitude for programming at all, or are so inexperienced that progress is very slow as they are learning everything as they go. Those are the "1/10 developers" and they make proficient developers (i.e, professionals) seem like x10 developers.
1/10 developers in the wild
Several months ago, I was involved in a venture where I was brought in to replace the previous CTO. They were just in the middle of a transition from a homebrewed framework into a popular open-source one, which I was intimately familiar with. Left behind was a developer who was highly recommended by the CEO (through word of mouth from the previous CTO). He was studying for a Ph.D in computer science at the time.
That developer was spearheading the framework transition for the past 6 weeks. As I went over what he had accomplished for those 6 weeks, it dawned on me that he hadn't done much at all. It looked to me like the results of 2 hours of work, tops. Though I already had my doubts, I gave him the benefit of the doubt - maybe it was his lack of experience with this framework (or any MVC framework for that matter, or maybe OOP or whatever).
I started assigning small tasks and providing guidance to see if he can up his productivity to reasonable levels. He was getting stuck frequently, and I had to literally spell out solutions for him and walk him through it. After a week or so of this, it became apparent that I was spending (way) more time assisting him than he was saving us with the code he was writing. The code he was writing was decent, working code - he was just writing it very, very slowly.
We finally let him go after 2 weeks, during which the amount of actual code he wrote would've taken me 1 hour, tops. He seemed like a smart person and he did understand the basic principles of programming, but just getting any significant work done was not something he could do, for whatever reason. In the end, the feature he was working on for 2 weeks was removed and replaced with something else - the rewrite took me about 30 minutes.
Not everybody can be a professional developer
I cannot blame inexperience alone for this - I have previously tutored junior developers at our previous firm into self sufficient, productive developers within a couple of months (with steady progress in between). You can tell when someone "gets" it and when someone doesn't. People who don't are the "1/10 developers", that somehow were made to be the bar of performance for everyone else.
Next time you want to add a productive member to your team, you don't need to hunt for that mythical "x10 developer" - you just need to find someone who can develop a small feature using your environment and stack in reasonable time, while writing code that makes sense.
(On behalf of all the quotes I spread throughout this post, I apologize)
Addendum
Reading through the comments, it seems there's some confusion about what my intention with this post was. I never meant to bring down or ridicule anyone - the developer I mentioned was a very smart and amiable person, just not a good fit for doing software development. My intention was to point out the meaningless of the "x10 developer" term, and I parodied it with the equivalent term "1/10 developer" (hence the quotes around those terms throughout the post).
My point is this - not all people representing themselves as programmers can actually write useful code. People know this phenomenon as the fizzbuzz test, but some people who can still get by this test and make their way to dev teams, will never be proficient developers. This creates the illusion that people who are proficient at what they do are "x10 developers". That was what I was trying to convey with this post.
Others said that those "x10 developers" are developers who solve problems that have x10 effect on project progress (they advance the project one month ahead in schedule with a small addition, for example). My question is this - wouldn't all proficient developers (with the relevant experience) put in front of those problems - produce the same results? (in a time span that is in the 30-40% variation range)