Author_Institution :
GEB Software Technol., Pacific Palisades, CA, USA
Abstract :
Data that measures individual programmer performance was gathered over a 12-year period in a stable work group responsible for developing and supporting a single 4.2-million-line-code operating system including associated program products, compilers, communication systems, and database systems. Analysis shows a wide variation in productivity from best- to poorest-performing individuals. A single programmer out of a workforce of almost 200 did Eight percent of the work. A variation of 200:1 separated the top programmer from the poorest performers. The top 27% of programmers did 78% of the work. This paper updates and comments on the original 1994 paper, answering questions that readers have raised in the intervening years. The prior paper had a wide following: 240,000 IEEE Xplore citations and 8900 web hits. The programming environment was stable and uniform over the time period: education, training, general ability level, work environment, development tools, and methodology were all the same or similar. The development lab was remote from company headquarters and thus largely isolated from outside distractions and influences. Programmers typically were concurrently responsible for both maintenance of existing code and development of new functions, often for the same code module(s). The average productivity of the group is several times higher than industry averages and this fact is demonstrably not caused by excessive documentation or verbose code; both were efficient in comparison to similar systems. The wide variation in productivity is apparently due to individual ability. Training, tools, methodology, and education, while important, cannot make up for individual ability. To get an accurate project plan the extremely wide range of variation in individual productivity must be taken into account. A project can only be on time and on budget if the widely varying abilities of the staff are taken into account. One person, 2 people, or 20 people depending on individua- ability may properly staff a project.
Keywords :
DP industry; computer science education; operating systems (computers); productivity; program compilers; programming environments; project management; software maintenance; IEEE Xplore citation; Redux; best- to poorest-performing individual; code maintenance; code module; communication system; compiler; database system; development tool; education; function development; general ability level; line-code operating system; productivity; program product; programmer performance; programming environment; project; training; work environment; work group; Computers; Databases; Educational institutions; Maintenance engineering; Operating systems; Productivity;