Best Practices
IEEE Software, Vol. 15, No. 2, March/April 1998
Dealing With Problem Programmers
Steve McConnell
http://www.construx.com/stevemcc/bp14.htm
"...In addition to attitudinal differences, significant productivity
differences among programmers have been well documented. In the
first study on the subject, Sackman, Erikson, and Grant found
differences of more than 20 to 1 in the time required by different
developers to debug the same problem ("Exploratory Experimental
Studies Comparing Online and Offline Programming Performance."
Communications of the ACM, January 1968). This was among a group
of programmers who each had at least 7 years of professional
experience.
This basic result-demonstrating at least 10 to 1 differences in
productivity-has been reproduced numerous times, but I think it
understates the real productivity differences among practicing
programmers. Tom DeMarco and Timothy Lister conducted a coding war
game in which 166 programmers were tasked to complete the same
assignment ("Programmer Performance and the Effects of the
Workplace," in Proceedings of the 8th International Conference on
Software Engineering, August 1985). They found that the different
programmers exhibited differences in productivity of about 5 to 1
on the same small project. From a problem employee point of view,
the most interesting result of the study is that 13 of the 166
programmers didn't finish the project at all-that's almost 10
percent of the programmers in the sample.
In a study with similar findings, Bill Curtis presented a group of
60 professional programmers with what he characterized as a
"simple" debugging task ("Substantiating Programmer Variability,"
Proceedings of the IEEE, vol. 69, no. 7, 1981). In spite of its
simplicity, 6 of the professional programmers weren't able to
complete the task, and data on their performance was excluded from
the results of the study. Curtis observed order of magnitude
differences among the programmers who were able to complete the
task...."
20 to 1 productivity differences? This is astounding. Is this a
general phenomenon? If you were to take 100 professional authors and
given them some writing task, would 10 of them be unable to complete the
task at all? What about engineers in other fields--mechanical,
electrical, civil--do they exhibit a similarly wide range of competence?
McConnell attributes most of the difference not to skill but to
programmer attitude. He recommends early design and code reviews, and
firing employees "....who don't want to share their work, who won't
accept teammates' suggestions, who won't take the time to review other
team members' work-in short, team members who are generally
uncooperative...."
While I agree that poor attitude inhibits productivity, it doesn't seem
an adequate explanation for the wide range of performance in the
artificial war games and exercises described above. For example, in
Curtis's experiment, presumably the programmers worked alone, and
volunteered to participate in the study--so lack of social skills and
poor attitude would seem to play a minor role.
What have been you're experiences with poorly performing programmers?
What did you find helped increase the programmer's productivity?
Chris
This archive was generated by hypermail 2b30 : Mon May 28 2001 - 09:56:47 MDT