The evolution of software project management since the 1960s has moved through the stages of individual craftsmanship, through the application of engineering principles, to the beginnings of repeatable, somewhat predictable processes based on a better understanding of project risk coupled with the use of automation in the process.
This rise in predictability has allowed the emergence of cost estimation techniques, the most popular of which is COCOMO II.
The cost of a software project can best be estimated in terms of the four essential COCOMO II parameters: complexity, process, teams, and tools. Cost improvements result when the following occur:
- Complexity can be reduced, either in the finished product or in the iterations produced during the project lifecycle.
- The process can be improved by addressing risks first and reducing human error through automation.
- Teams can become more efficient through skill enhancement and improved communication.
- Automated tools can be used to heighten productivity and strengthen areas of the process.
In the next sections, we will elaborate on the approaches listed above for achieving improvements in each of the four dimensions. These approaches represent patterns of success we have observed among successful software development organizations that have made dramatic leaps in improving the economics of their software development efforts.