10x Productivity Difference in Software Development

10x Software Development

The original study that found huge variations in individual programming productivity was conducted in the late 1960s by Sackman, Erikson, and Grant (1968). 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.

In years since the original study, the general finding that “There are order-of-magnitude differences among programmers” has been confirmed by many other studies of professional programmers (Curtis 1981, Mills 1983, DeMarco and Lister 1985, Curtis et al. 1986, Card 1987, Boehm and Papaccio 1988, Valett and McGarry 1989, Boehm et al 2000).

I think these orders of magnitude are not present in between people in many jobs. And I think people’s ability to correctly access who are orders of magnitude better is often faulty. But my experience leads me to believe the difference between exceptional software developers and average (not even below average) is very high. High enough that large increases in pay (say tripling would be sensible). Also accommodating their desires is sensible: freedom from dealing with pointy haired bosses and eliminating other such de-motivators.

While salespeople seen as successful can often be rewarded very well, exceptional software developers rarely are. Most managers don’t seem to be able to grasp that software development is a rare field where such orders of magnitude differences are somewhat common (not one in a million, maybe one in a thousand for a random guess). There are other fields where this is true but most for most fields I do not think this is the case.

In many fields interruptions are costly (and multi-taking is wasteful). In software development those interruptions are often much more costly than in other fields. Peopleware: Productive Projects and Teams is an excellent book on managing software development.

Related: People are Our Most Important AssetJoy in Software DevelopmentHiring the Right PeoplePerformance without AppraisalMeasuring and Managing Performance in Organizations

This entry was posted in IT, Management, Performance Appraisal, Software Development and tagged . Bookmark the permalink.

5 Responses to 10x Productivity Difference in Software Development

  1. I’m not sure your premise is correct. I think great salespeople are compensated for sales results because its easy to do. And programmers are not for the same reason. It would require a “monitor” coder to watch the process and evaluate the results for each coder. With sales, you just count the units. Also, some programmers are “gifted.” As are some salespeople. But does that mean they should get more income? Yes. IF that’s what they want.

  2. david foster says:

    Scott, programmers already have managers, and a big part of a manager’s job is performance assessment. This doesn’t require micromanagement; it does require a good understanding of what is going on and a hard-nosed willingness to differentiate among performance levels.

    Compensation for great sales results really isn’t as easy as it sounds. Two salesmen may have different territories, with different histories, and their sales mix may be quite different from the standpoint of margins, leadtimes, and other factors. I believe John made this point at another blog recently.

    Also, if there is a 10X difference in programmer productivity, there is probably a 50X difference in sofware manager productivity….indeed, many large software projects never get completed at all.

  3. Davido Geshtault says:

    A bit of skepticism

    The truly bright software (engineers developers whatever) don’t move up into management because they are highly compensated for their technical expertise. That leaves, well, “the others” to make increase compensation by moving up the management ladder. Perhaps “the others” are one that low side of the curve.

  4. Pingback: Curious Cat Science and Engineering Blog » Productivity Gains in Software Engineering

  5. Pingback: The Myth of the Genius Programmer | Curious Cat Management Improvement Blog

Comments are closed.