Joel’s Book of the Month this month is Robert Glass’s Facts and Fallacies of Software Engineering. This has been on my To Buy list for a while, as I keep stumbling across articles by Robert Glass that I like.
The book lists 55 Facts, all seemingly backed up by references. I really wish Amazon had “search inside” enabled for this book though, as I want to see what the references given are for Fact #2, “The best programmers are up to 28 times better than the worst programmers”. As I’ve written before, I believe the oft-cited Sackman experiment to be a fundamentally flawed source for this claim.
The chances of finding this book in Belfast are slim, so if anyone has a copy and can let me know what the sources listed against this fact are I’d be grateful.
I have a copy of FnF (and I have actually read it :-)). You are partly right – Glass cites Sackman (1968) for that figure, but also reports about other references (although they have much less exciting ratios):
* “Within a group of programmers, there may be an order of magnitude difference in capability” [Schwarz Jules, 1968. “Analyzing Large Scale System Development.” In /Software Engineering Concepts and Techniques/, Proceedings of the 1968 NATO conference, edited by Thomas Smith and Karen Billings. New York, Petrocelli/Charter]
* “Productivity variations of 5:1 between individuals are common” [Boehm, Barry 1975, “The High Cost of Software” /Practical Strategies for Developing Large Software Systems/, edited by Ellis Horowitz. Reading MA: Addison-Wesley]
* “There is a tremendous variability in the individual results. For instance two people … found only one error, but five people found seven errors. The variability among student programmers is well known, but the high variability among these highly experienced subjects was somewhat surprising” [Myers, Glenford 1978, “A Controlled Experiment in Program Testing and Code Walkthrough/Inspections.” /Communications of ACM/, Sept]
Also I read an article by Joel Spolsky that does some math similar to the one you did on a data set from another CS teacher (Professor Stanley Eisenstat at Yale). After that Joel claims a ratio between 1:5 to 1:10.
I think that 1:28 is indeed exaggerated, but that a significant difference does exist. Hard to put this stuff in a quantitative way, after all programming productivity is more about quality rather than quantity :-)