In software estimation, some discovered relationships turn out to be true primary principals of software development.
Way back in 1978, Larry Putnam, Sr. discovered that the relationship between project duration and project effort was exponential.1 His equation equated to:
Duration in months = 2.15 times the cube root of effort in manmonths
In his 1981 book, Barry Boehm described the nominal relationship in COCOMO2 as:
Duration in months = 2.5 times the cube root of effort in manmonths
Very similar results. Is that something specific to the way projects were managed way back then? Or, is this a true fundamental law of software project management?
Sometimes, it is fun and also informative to revisit pioneering work to see how things have (or have not!) changed over the decades since. I have used updated benchmarking data to check this staffing relationship and found it to be surprisingly persistent.
I took project Main Build (Design through Test) effort and Main Build duration from the QSM database, for projects that have competed in the 21st century.
The following graph has duration in months on y axis, and effort in personmonths on x axis.
The exponential regression shows that the “nominal” duration of these projects = 2.0 x cubed root of effort.
Compare the 2.0 multiplier in the modern data to the 2.15 and 2.5 from the pioneering work, and we discover that getting a group of humans together to work on a single project is what it was almost 40 years ago! What those people do has changed, of course, but how project managers staff projects up and down to create a team to effectively work together is very similar. Too many people and the cost is higher and quality is lower. Too few people and the product takes longer to deliver.
1 Putnam, Larry Sr, “A General Empirical Solution to the Macro Software Sizing and Estimating Problem”, IEEE Transactions on Software Engineering, July 1978, pp. 345-361.
2 Boehm, Barry W, “Software Engineering Economics”, 1981, pp. 470-471.