Team Productivity Variation in Software Development

Software experts have long observed that team productivity varies about as much as individual productivity does—by an order of magnitude [Mills 1983]. Part of the reason is that good programmers tend to cluster in some organizations and bad programmers in others, an observation that has been confirmed by a study of 166 professional programmers from 18 organizations [Demarco and Lister 1999].

In one study of seven identical projects, expended effort varied by a factor of 3.4 to 1 and program sizes by a factor of 3 to 1 [Boehm et al. 1984]. In spite of the productivity range, the programmers in this study were not a diverse group. They were all professional programmers with several years of experience who were enrolled in a computer-science graduate program. It’s reasonable to assume that a study of a less homogeneous group would turn up even greater differences. An earlier study of programming teams observed a 5-to-1 difference in program size and a 2.6-to-1 variation in the time required for a team to complete the same project [Weinberg and Schulman 1974].

After reviewing more than 20 years of data in constructing the COCOMO II estimation model, Barry Boehm and other researchers concluded that developing a program with a team in the 15th percentile of programmers ranked by ability typically requires about 3.5 times as many staff-months as developing a program with a team in the 90th percentile [Boehm et al. 2000]. The difference will be much greater if one team is more experienced than the other in the programming language, in the application area, or in both.

One specific data point is the difference in productivity between Lotus 123 version 3 and Microsoft Excel 3.0. Both were desktop spreadsheet applications completed in the 1989–1990 timeframe. Finding cases in which two companies publish data on such similar projects is rare, which makes this head-to-head comparison especially interesting. The results of these two projects were as follows: Excel took 50 staff years to produce 649,000 lines of code [Cusumano and Selby 1995]. Lotus 123 took 260 staff years to produce 400,000 lines of code [Schlender 1989]. Excel’s team produced about 13,000 lines of code per staff year. Lotus’s team produced 1,500 lines of code per staff year. The difference in productivity between the two teams was more than a factor of eight, which supports the general claim of order-of-magnitude differences—not just between different individuals, but also between different project teams.

Interestingly, the quantitative results very closely match the layperson’s perceptions of those projects. Lotus 123 v3 was famously late, shipping at least two years after its initially announced release date. Excel was heralded within Microsoft as one of the best projects Microsoft had ever done. This is as pure an apples-to-apples comparison as it’s possible to get with “live” projects from real companies.

Having said that, this example illustrates the numerous sources of productivity variations. Both Lotus and Microsoft were in a position to recruit top talent for their projects. I doubt that the difference in team productivity was as much a result of differences in individual talent as it was a result of numerous organizational factors, such as how good the organization was about defining a clear product vision, defining unambiguous requirements, coordinating efforts of team members, and so on.

Organizational influences define the productivity envelope within which a team performs. A team comprised of individuals of average capability in an exceptional organization can outperform a team of exceptional capability working in a mediocre organization. Of course there are also teams made up of exceptional individuals in exceptional organizations, as well as teams comprised of mediocre individuals in mediocre organizations. Consequently, team productivity (aka organizational productivity) varies by a factor of 10 just as individual productivity does.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset