May 07


It’s widely accepted in the software industry that some programmers are much more productive than others. Many experts cite an order-of-magnitude productivity difference between the “best” and “average” programmers.

This “factor of 10″ difference is so commonly referenced that “10X Software Development” is the name of the blog by development productivity guru Steve McConnell, who says:

Numerous studies have found 10:1 differences in productivity and quality among individuals and even among teams. The original study that found huge variations in individual programming productivity was conducted in the late 1960s by Sackman, Erikson, and Grant. They studied professional programmers with an average of 7 years’ experience and found that the ratio of initial coding time between the best and worst programmers was about 20 to 1; the ratio of debugging times over 25 to 1; of program size 5 to 1; and of program execution speed about 10 to 1. They found no relationship between a programmer’s amount of experience and code quality or productivity.

Some other noteworthy comments on the subject:

“The best programmers are not marginally better than merely good ones. They are an order-of-magnitude better, measured by whatever standard: conceptual creativity, speed, ingenuity of design, or problem-solving ability.” –Randall E. Stross

“A great lathe operator commands several times the wage of an average lathe operator, but a great writer of software code is worth 10,000 times the price of an average software writer.” –Bill Gates

“90% of the code is written by 10% of the programmers.” Robert C. Martin

But it’s not just that some programmers work faster; some programmers can do things that few other programmers can do. These are your visionaries and trailblazers. I call this sometimes-10X/sometimes-infinite advantage: The “Tenfinity Factor.”



In my 25-year programming career, which includes 6 software companies I started, I’ve had the pleasure to manage and work with many programmers offering a wide range of skills. Specifically in our venture-backed company during the dot-com boom, though I didn’t write much code, I managed a department of 27 technical people that included some of the best programmers available in a Midwest town like Cincinnati.  In my experience, the tenfinity factor is definitely real.

This wide productivity gap results in five major classes of computer programmers:

1. Visionary/Artist Programmer

The Visionary Programmer is a rare breed that can capture lightning in a bottle and produce code that 99.9% of others cannot. These inventors create new applications and paradigms that drive innovation in the software industry. Napster, Netscape, and the World Wide Web are all inventions from visionary programmers. For these people, software is more art than science. Speed and quality are not always the best, but great fortunes are made on the backs of these wizards. Most development shops can afford only a single visionary programmer, which is often the company’s technical founder or CTO.

2. Trailblazer Programmer

The Trailblazer Programmer takes a good idea and runs with it. These are the people who most often create the prototypes that ultimately become useful products. Trailblazers can produce in a day what takes most programmers weeks or months. Trailblazers are always experimenting with new tools and technologies, constantly learning and searching for ways to increase productivity, and typically serve as mentors and teachers to other programmers. You will often find a trailblazer coding away late at night when everyone else has left the office. Though these professionals tend to be expensive, every successful development shop needs at least one or two trailblazers.

3. Workhorse Programmer

The Workhorse Programmer is the backbone of any productive development shop. These people are not particularly innovative, but they are highly productive and reliable. Give a workhorse programmer a good set of specs and the right tools, and they will often deliver on time and within budget.

4. Drone Programmer

Filling the fat in a true bell curve, many programmers are “drones” who work 9-5 to collect a paycheck. These people shy away from new technology, avoid learning new things, and likely will not be reading this article. Most large development shops are full of drones because management fails to realize that more expensive programmers are actually cheaper.

5. Idiot Programmer

Every village has its idiot, and software development is no exception. Programming requires abstract and logical thinking, yet some right-brained people are lured to programming in search of a good salary. Idiot Programmers often struggle with the simplest of algorithms, constantly miss deadlines and fail to make much progress. The sad thing is these are often wonderful people, but simply in the wrong job.

So do you believe in the tenfinity factor? What have you seen on the job?

Share and Enjoy:
  • Twitter
  • Facebook
  • Reddit
  • LinkedIn
  • Digg
  • DotNetKicks
  • StumbleUpon
  • Slashdot
  • Technorati
  • Google Bookmarks
  • Print
  • email

Article published on May 7, 2008




Tags:

44 Responses to “Programmer Productivity: The “Tenfinity Factor””

  1. McElroy Says:

    This is so true! When I think about where I work, I can place a name or two in each programmer class. Of course the fallacy of this is that we all like to think of ourselves as visionary/trailblazer.

  2. Peter J. Schoenster Says:

    Is it not true about any creative job? If I had a weekly magazine supported by strip joints would I not want a Philip K. Dick on staff? If I were the New Yorker would I not want the same?

    I really think the issue to concentrate on is how to improve the productivity of who you can afford to hire. Personally if I had a truly talented programmer working for me I’d tell him to leave.

    You won’t find Kobe Bryan working in the European leagues. Yet all these stories are about how can your company with boring crud apps hire a Kobe Bryant. I’m sorry, it just does not make sense to me.

    I’d like to see some articles and information on how to evaluate and improve programmers. I’d like to see the same thing if I hired lawyers, doctors, stockers, or anyone else when I could not get a machine to do the work. And then I’d look at finding ways of making the machine more efficient.

  3. Stephane Grenier Says:

    They good news is that a lot of people don’t realize they’re 1 or 2, at least not until later in their career. Therefore if you pay them well, noticeably more than the others, you’ll be able to benefit from them. Not only that, not all programmers who fall into 1&2 are entrepreneurs (or can be).

    From my personal experience I’ve found that most 3′s know who they are, after all it’s easy to know you work hard and deliver. There’s nothing wrong with this, just be sure to compensate them accordingly.

    As it’s been stated over and over again, most 4, and especially 5′s, will end up bringing no value to negative value. You need to try and minimize this.

    Also, something to note that age has nothing to do with being a 1, 2, or 3 (or any number for that reason). Experience helps but it doesn’t make a developer. It’s just that having a 1-3 with experience is even better :)

  4. JoeTheProgrammer Says:

    Here’s an article along these lines:

    http://www.stevepavlina.com/blog/2005/07/how-to-get-from-a-7-to-a-10/

    If you think you’re a 7, you might well be a 3.

    And getting to 8, 9, or 10 is a tremendous effort. So for most of us, the goal is to be a real 7, not a 3 with pretensions.

  5. MK Says:

    “Every village his its idiot.” A good article spoilt only by a typo.

  6. Daniel Tenner Says:

    Brilliant article. Very good points. Your taxonomy is very good. I was thinking of writing a similar article but was going to break it down in 3 only – Great, Ok, Bad – but your breakdown is better and I can recognise the truth in it.

    Daniel

  7. RafaQuiM Says:

    It’s hard to believe that I coudn’t see that I’m an Idiot Programmer.

    Though I really enjoy learning new thins and improving little by little.

    thanks for putting my feet down back to earth

    c u around

  8. Bolg - The Chris Blanc Weblog :: Defining task to stay on task Says:

    [...] Many managers observe that some tasks happen quickly and effectively, while others (usually the least exciting) drag on into infinity. What’s most interesting is that these tasks are approached different ways, and that can make a huge difference in what work needs to be done. If there are 100 tasks needed to be done on a project, but ten of those tasks constitute 90% of its functionality, tackling those ten in a dynamic matter might liberate the rest to be done later or make them easier, since the framework will already be built. Numerous studies have found 10:1 differences in productivity and quality among individuals and even among teams. The original study that found huge variations in individual programming productivity was conducted in the late 1960s by Sackman, Erikson, and Grant. They studied professional programmers with an average of 7 years’ experience and found that the ratio of initial coding time between the best and worst programmers was about 20 to 1; the ratio of debugging times over 25 to 1; of program size 5 to 1; and of program execution speed about 10 to 1. They found no relationship between a programmer’s amount of experience and code quality or productivity. ^ [...]

  9. engtech Says:

    Napster is a bad example. It was horribly coded. :)

  10. Sammy Larbi Says:

    Interesting article and classification of programmers. Re: “management fails to realize that more expensive programmers are actually cheaper,” I wonder if management fails to realize this, or if there just aren’t enough programmers around who are good enough to lower the overall cost of projects.

    As for the 9-5 developer, I think its not a bad thing. I am going to try to limit my time at work to 8 hours (though they will be different hours) because I feel that makes me more productive.

    Of course, I’ll keep my side projects and do more programming that’s not work related, but I think the characterization you made makes it seem like not working overtime is something to be ashamed of.

    I don’t think your intent was to say that, but I wanted to clarify because I think the attitude someone could come away with can do more harm than good.

    Anyway, I enjoyed it.

  11. Jason Says:

    Heh. Oops. I guess it hid (put intended) a typo after all, according to your quote. ;> Fixed in the article, guess I didn’t read your quote very thoroughly the first time around.. Anyways, great article. Delete my comments tho.*cough*cough*

  12. Jeo Says:

    Nothing wrong with right-brain programming. Often when I get stuck, I’ll take a break for a little while, browse the web or something, then come back to it and the solution is obvious. That’s the right brain at work.

    Of course, visionary programmers are all about the right brain.

  13. SEO Dubai Says:

    It’s about the difference between different ‘levels’ of programmer… some are good, others are totally mind-blowing. I’ve certainly known a number of people in the bottom couple of categories (drones and idiots)… not that I say that to be insulting… it’s merely that some people are simply not cut out for it. (Let’s face it… if I tried to become a hospital nurse or a painter, I would fail miserably!)

    The workhorses are always good to have around though. Programming is a job, and that’s it. So long as they produce something usable, readable, and effective, then we can be happy.

  14. Markus Says:

    napster was rather marketing c2c sharing that already existed on irc, there it was really automated, praise these guys please

    tim bernes lee is a better example. but, such big inventions wait for a guy to detect them, the most genius guy will be the first, if not bernes lee, the next best inventor would have done so some time later. praise nature for allowing the technology, don’t create an imaginary programming genius that way, because technology like the www can be understood by a lot of people.

    your programmer types might also be people in their learning phases, it’s hopefully allowed by your thesis, that people can switch between those types (quite often)

    i don’t really see a point in these distinctions, it’s a way to judge very fast, many people come up with such “types of”, and the descriptions are always incomplete and might scare people on their career paths

  15. Amen, Brother Wirth! « Hurricane Blog Says:

    [...] between details and abstract concepts fall into the category of programmers who are an order of magnitude more productive than many of their [...]

  16. Twitter Trackbacks for Programmer Productivity: The "Tenfinity Factor" [devtopics.com] on Topsy.com Says:

    [...] Programmer Productivity: The "Tenfinity Factor" http://www.devtopics.com/programmer-productivity-the-tenfinity-factor – view page – cached #DevTopics RSS Feed DevTopics » Programmer Productivity: The "Tenfinity Factor" Comments Feed DevTopics Hello, World Best Programming Jokes You Can’t Say That! — From the page [...]

  17. Nik Says:

    I am a trailblazer/workhorse. I truly agree with your hypothesis of the visionary/artist. 99.9% ratio is quite accurate and to think it’s any lesser is just ridiculous.

    Also I think you undermine the idiots.

    Also, visionaries wouldn’t be reading this article either, so can’t blame the drones. They’re actually quite useful and I’d say 75% of programming is drone-work, so I think this category pretty much covers at least 95% of programmers. Nothing wrong with being a drone, so long as you play nice.

  18. Web Design Dubai Says:

    Well Classified. Don’t know why, we have to face ediot Programmers most often.

  19. Rock-Star Programmer Productivity | Freelancing and Outsourcing Tips, Commentary, Analysis, and News from oDesk Says:

    [...] times over 25 to 1; of program size 5 to 1; and of program execution speed about 10 to 1.” -Steve McConnell, development productivity guru and “10X Software Development” [...]

  20. tatiana Says:

    very interesting

  21. John Says:

    “Programming requires abstract and logical thinking, yet some right-brained people are lured to programming in search of a good salary.”

    This is a gross generalization of dominantly right-brained people, suggesting that they can’t become good programmers. “Abstract and logical thinking” is somewhat of an oxymoron, since these are two different modes of thinking (the right-hemisphere is abstract-oriented). It surprises me how many people misunderstand the findings on left- & right-hemisphere dominance; for whatever reason they seem to believe that people only use one side of their brain. Hemisphere dominance refers to someone’s natural mode of thought, and traits associated with that mode of thought. This does not mean that a right-brained individual can’t be good at math, nor that a left-brained individual can’t become an artist. As you’re reading this, you’re using functions on both sides of your brain, even though you are thinking in one mode of thought.

    I scored 75% on right-hemisphere dominance, yet math was my best subject back in school. I also work as a programmer, and I genuinely enjoy programming. However, I’m also an artist on the side (as a hobby). When I’m working on a problem, I visualize it by manifesting it “physically” in my mind. I also think in concepts, absent of words or “voices” in my head. (left-brained individuals usually “hear” their thoughts, I don’t.)

  22. Some lesser-known truths about programming | Dot Mac Says:

    [...] an average programmer. A great programmer is 20-100 times more productive than the average. This is not an exaggeration – studies since the 1960′s have consistently shown this. A bad programmer is not just [...]

  23. Some lesser-known truths about programming | syntech finance blog Says:

    [...] programmer. A great programmer is 20-1&#48&#48&#32times more productive than the average. This is n&#111&#116&#32an exaggeration – studies since the 1960′s have consistently shown this. A ba&#100&#32&#112rogrammer is [...]

  24. Le verità meno conosciute della programmazione | Guido Chiappucci's Blog Says:

    [...] programmatore è 20-100 volte più produttivo di uno medio. Queste affermazioni non sono esagerate, studi l’hanno dimostrato sin dal 1960. Un cattivo programmatore non sono è meno produttivo, non solo non porterà a termine [...]

  25. Чуть-чуть поподробней об инженерах механических душ « Инженер механических душ Says:

    [...] в 20-100 раз более продуктивен, чем средний. И это не преувеличение — исследования, проводящиеся с 1960-х годов, чётко это [...]

  26. Some lesser-known truths about programming at Geek Space Says:

    [...] an average programmer. A great programmer is 20-100 times more productive than the average. This is not an exaggeration – studies since the 1960′s have consistently shown this. A bad programmer is not just [...]

  27. Boris Alexander Says:

    It’s all bullshit. Programmers always argue who’s better who’s worse. I know that my own performance can easily vary by a factor of 10 depending on how interesting I find what I’m doing and how well motivated I am at the moment. Business is all about risk management, and business can’t rely on “visionary” programmers to deliver. Business is only concerned with statistical properties of underlying development machinery where visionaries make just a hard-to-notice little spike. Any software business these days relies (to get successful) on luck to a far greater extent than on visionary developers. This applies to Napster, Netscape and Google. I am sure you can correct me and say that MS-DOS was a visionary product, a break-through so to speak. Indeed it was. Thanks to it we now have a new paradigm called “sufficiently good software”. In this paradigm, software that basically does not work is released to a user who pays for the privilege to be its tester. That’s what I’d call the true vision.

  28. Paul Says:

    I definitely agree that this tenfinity factor does exist.

    Let me tell you, it is very hard to convince your CTO that hiring a qualified Programmer for a little more than the average money does eventually pay off, if your CTO is the classic type 5 programmer in person ;-)

  29. Epistola» Blog Archive » Onko it-osaajista pulaa? Says:

    [...] jossa huipputyöntekijä voi olla monikertaisesti tuottavampi kuin keskimääräinen duunari (katso esimerkkejä tästä kirjoituksesta). Hän saattaa tehdä yksinään homman tai keksiä ratkaisun, johon muuten tarvittaisiin viiden [...]

  30. Prefabrik Says:

    “Right now, computers, which are supposed to be our servant, are oppressing us.”
    Jef Raskin

  31. David Says:

    Actually, I don’t completely agree with you on the point that some right-brained people are lure to programming to salary. I believe that the right-brained people are innovative and creative. They are bring the innovation and creation to one company. That’s what I think.

  32. 一些鲜为人知的编程事实 | 忘川彼岸 Says:

    [...] 一个好的程序员比一个普通的程序员多十倍的生产率。而一个优秀的程序员的生产率则比普通程序员多20-100倍。这并不是夸张(自从上世纪60年代的研究一直表明这是一个事实)。一个糟糕的程序员并不只是没有产出的——他们并不仅是完成不不工作,而且还会制造出大量的让别人头痛并要去解决的麻烦。 [...]

  33. Guy Tron Says:

    Excellent article! I happened upon it while searching for some information on productivity. As a programmer, I have seen this type of creativity, efficiency and productivity factors. I would have to consider myself a 2 with some qualities of 1 but am not a 3 or higher. I mostly do in house development that requires creativity and usually efficiency. Unfortunately uninformed deadline decisions force creativity or efficiency to be compromised. Having management that understands the information in this article and how artificially short deadline compromise the end result are as important as the programmers doing the work. A stressed out programmer is not a productive programmer and a programmer without a realistic deadline can be lazy.

  34. Attorney Says:

    It is a fact that programmers are different especially in the kind of development and progress they are in. Because people differs therefore their approach in their line of work changes. As we know it, there are a lot of people that prosper in their chosen profession.

  35. 一些鲜为人知的编程事实 | w3er Says:

    [...] 一个好的程序员比一个普通的程序员多十倍的生产率。而一个优秀的程序员的生产率则比普通程序员多20-100倍。这并不是夸张(自从上世纪60年代的研究一直表明这是一个事实)。一个糟糕的程序员并不只是没有产出的——他们并不仅是完成不不工作,而且还会制造出大量的让别人头痛并要去解决的麻烦。 [...]

  36. Bianca Dunnum Says:

    Great article but the village idiot comments are totally uncalled for. Can’t people just get along?

  37. The Surprising Effectiveness of Prizes as Catalysts of Innovation « 33 Bits of Entropy Says:

    [...] many fields there is a huge disparity—order of magnitude or more—between the productivity of the top performers and the median performers. The structure of the [...]

  38. How to Find that Rock Star Junior Developer? - Programmers Goodies Says:

    [...] also: http://www.devtopics.com/programmer-productivity-the-tenfinity-factor/ on programmer [...]

  39. kingsalomon.net » Blog Archive » Programmers spend lots of time reading code Says:

    [...] programmers operate at the same level. Here is something that is not a study but makes the point. http://www.devtopics.com/programmer-productivity-the-tenfinity-factor/ Someone can produce tons of code but that doesn’t factor in how useful the software is and [...]

  40. Jinliang's Computer Life » Blog Archive » 转:Some lesser-known truths about programming Says:

    [...] an average programmer. A great programmer is 20-100 times more productive than the average. This is not an exaggeration – studies since the 1960′s have consistently shown this. A bad programmer is not just [...]

  41. Some lesser-known truths about Programming | aceph Says:

    [...] an average programmer. A great programmer is 20-100 times more productive than the average. This is not an exaggeration – studies since the 1960′s have consistently shown this. A bad programmer is not just [...]

  42. Political Irony › Why do we even need minimum wage laws? Says:

    [...] I know that the most important thing you can do is hire the best talent. Studies have shown that good programmers can more than an order of magnitude more productive than their peers. Recruiting and keeping these people can not just increase profits, but make the difference between [...]

  43. Le verità poco conosciute della programmazione - weblogix.biz Says:

    [...] nella media. Un grande programmatore è da venti a cento volte più produttivo di uno nella media. Non è una esagerazione. Lo dimostrano gli studi effettuati fin dal 1960. Non solo un programmatore scarso rende poco, ma [...]

  44. Hire Right for Your Startup – best practices from the experts | vcwithme Says:

    [...] about people; making good hiring decisions is critical. We’ve all heard a great developer can be 10x more productive than an average one, and a bad executive or manager can demoralize a team and kill a [...]

Leave a Reply