Software Cost Estimation Part 1
Software cost estimation is the process of predicting the effort required to develop a software system
Accurate software cost estimates are critical to both developers and customers. They can be used for generating request for proposals, contract negotiations, scheduling, monitoring and control.
The importance of accurate cost estimation lies in following functions of management.
Several reasons for the difficulty have been identified:
An empirical model uses data from previous projects to evaluate the current project and derives the basic formula from analysis of the particular database available.
An analytical model, on the other hand, uses formula based on global assumptions, such as the rate at which developer solves problems and the number of problems available.
Irrespective of the model chosen, actual cost estimation process involves following seven steps:
Won't keep you in wonder for long and will soon write on it. Till then, you can wonder on what is called Economic Value Estimation (EVE). This is more of a marketing subject and very new to software profession as jargon. But believe me we do this things for long.
References:
Software Cost Estimation
Herding Cats: Software Estimating
Software Development Cost Estimation Approaches
Accurate software cost estimates are critical to both developers and customers. They can be used for generating request for proposals, contract negotiations, scheduling, monitoring and control.
The importance of accurate cost estimation lies in following functions of management.
- Budgeting - the primary but not the only important use. Accuracy of the overall estimate is the most desired capability.
- Trade off & Risk Analysis - an important additional capability is to illuminate the cost and schedule sensitivities of software project decisions (scoping, staffing, tools, reuse, etc.).
- Project Planning & Control - an important additional capability is to provide cost and schedule breakdowns by component, stage and activity.
- Investment Analysis for Enhancements - an important additional capability is to estimate the costs as well as the benefits of such strategies as tools, reuse, and process maturity.
Several reasons for the difficulty have been identified:
- Uncertainty or frequent changes in customer requirements
- Rapidly changing technologies and obsolescence of technologies
- Lack of a historical database of cost measurement
- Many interrelated factors whose relationships are not well w.r.t development efforts and productivity
- Lack of trained estimators with the necessary expertise
- This approach is not repeatable
- The means of deriving an estimate are not explicit.
- It is difficult to find highly experienced estimators for every new project.
- The relationship between cost and system size is not linear. Cost tends to increase exponentially with size. The expert judgment method is appropriate only when the sizes of the current project and past projects are similar.
- Budget manipulations by management aimed at avoiding overrun make experience and data from previous projects questionable.
An empirical model uses data from previous projects to evaluate the current project and derives the basic formula from analysis of the particular database available.
An analytical model, on the other hand, uses formula based on global assumptions, such as the rate at which developer solves problems and the number of problems available.
Irrespective of the model chosen, actual cost estimation process involves following seven steps:
- Establish cost-estimating objectives
- Generate a project plan for required data and resources
- Pin down software requirements
- Work out as much detail about the software system as feasible
- Use several independent cost estimation techniques to capitalize on their combined strengths
- Compare different estimates and iterate the estimation process
- After the project has started, monitor its actual cost and progress, and feedback results to project management
- coverage of the estimate (some models generate effort for the full life-cycle, while others do not include effort for the requirement stage)
- calibration and assumptions of the model
- sensitivity of the estimates to the different model parameters
- deviation of the estimate with respect to the actual cost
Won't keep you in wonder for long and will soon write on it. Till then, you can wonder on what is called Economic Value Estimation (EVE). This is more of a marketing subject and very new to software profession as jargon. But believe me we do this things for long.
References:
Software Cost Estimation
Herding Cats: Software Estimating
Software Development Cost Estimation Approaches
0 comments:
Post a Comment