How to measure risk level in software development cost estimation
Most of us put a lot of effort into cost estimation in our personal lives. When considering a new job offer, most of us look closely at the cost of living in a different area; likewise, when shopping for a new car, most people check with several dealerships to find the best deal. The business world is constrained by the same budget factors. These components drive up the cost of software:
- The chosen source code language—Using an obscure or unpopular language will most likely drive up costs.
- The size of the application—The size or complexity of the application has a bearing on cost. As an example, the level of security needed is something that will affect the complexity of a given application. This also has a direct correlation to the scope of the project.
- The project time constraints—If a project is projected to be completed in one month versus three months, this might mean that more overtime needs to be paid, along with fees for rushed services.
- Computer and resource accessibility—If resources are available only during certain times, the output of the project team will most likely be reduced.
- Project team experience—Every individual has a learning curve that adds cost to inexperienced team members.
- The level of security needed—A project that needs very high levels of security controls will take additional time and effort to develop.
One early cost model, developed by Barry Boehm, is known as the Constructive Cost Model (COCOMO). It was designed as a simple cost model for estimating the number of personmonths required to develop software. It is now considered obsolete, replaced by COCOMO II in 1995. This model considers “what if” calculations to determine how changes to personnel, resources, or staffing affect project cost. Figure 3.2 shows what the COCOMO II model looks like. It can be run online at http://sunset.usc.edu/research/COCOMOII/index.html. COCOMO II can also be used with standard spreadsheet applications such as Microsoft Excel.