…
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 Asset – Joy in Software Development – Hiring the Right People – Performance without Appraisal – Measuring and Managing Performance in Organizations
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.
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.
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.
Pingback: Curious Cat Science and Engineering Blog » Productivity Gains in Software Engineering
Pingback: The Myth of the Genius Programmer | Curious Cat Management Improvement Blog