The Research
Schedule pressures often force development managers to seek strategies to compress project time scales. Typical strategies might include adding more people, investing in development tools, improving hardware, and improving development methods. Is it possible to see which of these strategies is most effective? In this research we concentrate on the application of people to achieve time compression.
Our Method
Managers often resort to the people strategy because it's the most straightforward to implement. People can be easily redeployed and no major capital investment is required. But how much schedule compression is achieved by adding people? And are there any side effects?
QSM maintains a metrics database of over 13,000 completed, high-confidence projects. In this study we analyzed 3 separate data sets:
- Information systems completed after 1994
- Engineering systems completed after 1994
- Real-time embedded systems completed after 1994
For each set we separated the projects into small teams (fewer than 5 people ) and large teams (more than 20 people). We then graphed the data showing schedule, effort and defects versus the size of the system that was built. This shows how much schedule compression was achieved by the larger teams as well as any insights into the side effects of cost and defects.
The Results
To illustrate the findings we show the data from the information systems data set. Both the engineering and real-time embedded sets showed similar results - in fact, they were more extreme.
Peak Staffing
In this figure we show peak staffing plotted at the size of the developed source lines of code. The red squares are projects that used 5 or fewer people; the blue squares are projects that used 20 or more people. The line through the data shows the average staff at a given size. For comparison purposes the graph shows the average staffing at 100,000 source lines of code with team sizes of 4 and 32 people.
Development Effort
The second figure shows the effort/cost differences experienced with the different strategies. For a typical project of 100,000 source lines of code, a 32-person team on average would have used 178 person-months of effort ($2.1 million at $12,000 per person-month). The 4-person team would have used 24.5 person-months ($294,000 @ $12,000 per person-month). The difference between the strategies is approximately $1.84 million.
Development Schedule
How much schedule compression was achieved? Not much! The difference between the large team and the small team approaches for the average project of 100,000 source lines of code is approximately 1 calendar week. We do note that there is more variability in the small team data set, but we will analyze this in a future piece on optimum team sizes.
Defect Creation
How does one explain the fact that all the additional manpower and cost had a very minimal impact on schedule? One clue is that the large teams created significantly more defects. For the average project of 100,000 source lines of code, the large teams created over 5 times as many defects. The increased volume of defects created more rework cycles, negating the schedule benefits of the additional people.
Risk Management Strategies
Although adding people to a project might seem like a straightforward remedy for schedule compression, our research shows that it is often counterproductive. Anyone who has driven a car knows that maximum acceleration burns fuel at a significantly higher rate and provides only marginal time compression in getting you to the final destination. Software projects seem to exhibit this same nonlinear behavior.
There may be business situations where weeks of time are critical in the launch of a new product or service. The additional cost incurred by adopting the manpower-intensive approach may be trivial compared to the revenue or benefits derived by earlier delivery. If you chose the manpower intensive strategy, be aware of the risks, and condition your customers to have realistic expectations. Carefully select the additional people to complement the existing team. Also, be sure to plan additional testing resources to handle the increased volume of defects.
Additional Reading
- Top Performing Projects Use Small Teams
- Small Teams Deliver Lower Cost, Higher Quality
- Finding the Optimum Team Size for Your Project