There is no simple way to make an accurate estimate of the effort required to develop a software system. Initial estimation techniques are based on inadequate information in a user requirement definition. People in the project may be unknown. Project cost estimates may be self-fulfilling. The estimate defines the budget and the product is adjust to meet the budget.
Some of the estimation techniques are:
Algorithmic cost modeling:
A model based on historical cost information that relates some software metric (usually its size) to the project cost is used. An estimate is made of that metric and the model predicts the effort required.
Several experts on the proposed software development techniques and the application domain are consulted. They each estimate the project cost. These estimates are compared and discussed. The estimation process iterates until an agreed estimate is reached.
Estimation by analogy:
This technique is applicable when other projects in the same application domain have been completed. The cost of a new project is estimated by analogy with these completed projects.
Parkinson’s Law states that work expands to fill the time available. The cost is determined by available resources rather than by objective assessment. If the software has to be delivered in 12 months and 5 people are available, the effort required is estimated to be 60 person-months.
Pricing to win:
The software cost is estimated to be whatever the customer has available to spend on the project. The estimated effort depends on the customer’s budget and not on the software functionality.
The size of a software system can only be known accurately when it is finished.
Several factors influence the final size
- Use of COTS and components
- Programming language
- Distribution of system
As the development process progresses then the size estimate becomes more accurate.
Fig: Estimate uncertainty
You might also check Software Productivity | Factors affecting productivity
88 total views, 0 views today