Selecting the Right Team Size: Small is Beautiful
22 December 1998
Selecting the right team size -- small -- is the key to a successful project. By successful, I mean one that comes in on time, on budget, with good quality. Further, one that actually completes faster with less effort than the same project attacked with a large team.
In my past research I've shown that projects with 20 or more people used a lot more effort (person-months) than projects using 5 or fewer people. That comparison was for projects of the same size in source lines of code (SLOC), presumably requiring about the same amount of work. For example, at a size of 50,000 SLOC, the large teams expended 99 person-months, the small teams, 19 person-months. The numbers seem hardly believable, and perhaps some of you raised your eyebrows slightly.
Aided by new data on almost 500 projects from a large corporation, I am putting the emphasis on the great value of small teams. The idea of small work groups is hallowed by time. If ever there was work that is not routine and requires frequent contact, it is software development. What we now bring to the table is metrics. Those metrics establish that the concept of using small work groups in software development is a really beautiful idea. Let us show you the figures.
Small Groups Complete Projects in Less Time
The data obtained came from 491 medium-sized projects with 35,000-95,000 new or modified SLOC. All were information systems completed in the last 3 years. "New or modified" limits the code metric to "Effective SLOC" (ESLOC), that is, the work that was actually done. It excludes reusable components that require little or no new work.
The next step was to stratify the sample projects into 5 team-size groupings. There are 3 features of this stratification to note in particular:
- The number of projects in each group is substantial (so our conclusions can be credible).
- The data sets are fairly well distributed across the entire size regime.
- The average size of the stratified data sets is 57,412 ESLOC and the average of each set is within 3,000 ESLOC of this overall average.
The 3 small groupings took less schedule time than the 2 large groupings. In fact, development time for the three small groupings is about three-quarters of the time for the two large groupings. There is a distinct difference in the schedule time required by groups in the 3-to-7 range as compared to the 9-to-20 as range.
Small Groups Use Fewer Person-Months
As far as the pattern for development effort, the difference is much more marked than in the case of schedule. The 3 small groupings take only about 25% the effort of the 2 large ones -- remember, each grouping is producing about the same amount of system functionality. A distinct difference in the person-months needed to do a comparable amount of work begins to show up when group size exceeds 8 people.
--Lawrence Putnam and Ware Myers
Selecting the Right Team Size: Small is Beautiful
