Sunday, October 23rd, 2016
Let’us assume that the size of a project is measured in Lines Of Code (LOC). People naturally assume that a system that is 10 times as large as another system will require something like 10 times as much effort to build.
If software exhibited economies of scale, a 100,000-LOC system would be less than 10 times as costly as a 10,000-LOC system.
But, in software, larger projects require coordination among larger groups of people, which requires more communication. As project size increases, the number of communication paths among different people increases as a squared function of the number of people on the project.
The consequence is that as a project size increases, projects also have an exponential increase in effort. This is known as a diseconomy of scale, the opposite of an economy of scale.
As we can see in the graph, within the 10,000 LOC to 100,000 LOC range, the effect of the diseconomy of scale is usually not all that dramatic.
But in the range from 100,000 LOC to 1,000,000 LOC the effect is significant. We also can see that the worst-case effort growth increases much faster than the nominal (typical) effort growth, and that the effect becomes much more pronounced at larger project sizes.
Summing-up: The majority of projects in an organization are often similar in size but if we are going to estimate much bigger projects, we have to take into account the diseconomy of scale in software development. In both cases, the acquired experience, best practices and productivity improvements are included. The point is the complexity in the coordination required in larger projects.
These notes have been taken from:
- The book Software Estimation: Demystifying the Black Art, by Steve McConnell.