6. Defining Cost Estimation
Cost estimation can be defined as the approximate
judgement of the costs for a project. Cost estimation will
never be an exact science because there are too many variables
involved in the calculation for a cost estimate, such as human,
technical, environmental, and political.
Cost estimation is usually measured in terms of effort. The
most common metric used is person months or years (or man
months or years). The effort is the amount of time for one
person to work for a certain period of time.
7. Where are Estimates Done?
Strategic Planning
Feasibility Study
System Specification
Evaluation of Supplier’s Proposals
Project Planning
8. Cost Estimation and Project
Planning
Cost estimation is an important tool that can affect the planning
and budgeting of a project. Because there are a finite number of
resources for a project, all of the features of a requirements
document can often not all be included in the final product. A cost
estimate done at the beginning of a project will help determine
which features can be included within the resource constraints of
the project (e.g., time). Requirements can be prioritized to ensure
that the most important features are included in the product. The
risk of a project is reduced when the most important features are
included at the beginning because the complexity of a project
increases with its size, which means there is more opportunity for
mistakes as development progresses. Thus, cost estimation can have
a big impact on the life cycle and schedule for a project.
9. Cost Estimation During the
Software Life Cycle
Cost estimation should be done throughout the entire life cycle.
The first time cost estimation can be done is at the beginning of
the project after the requirements have been outlined. Cost
estimation may even be done more than once at the beginning of
the project. For example, several companies may bid on a contract
based on some preliminary or initial requirements, and then once a
company wins the bid, a second round of estimation could be done
with more refined and detailed requirements. Doing cost estimation
during the entire life cycle allows for the refinement of the estimate
because there is more data available. Periodic re-estimation is a way
to gauge the progress of the project and whether deadlines will be
able to be met.
11. Algorithmic Model
This software cost estimation technique use the mathematical
equations to perform the software estimation. The mathematical
equations are based on historical data or theory. SLOC (source
line of code), function points, and other cost drivers are the inputs.
For most algorithmic model, calibration to the specific software
environment can be performed to improve the estimation.
Cost Model: COCOMO / COCOMO II , CheckPoint, SoftCost,
Price S
Constraint Model: SLIM, Jensen Model
13. Algorithmic Model
Advantages:
Generate repeatable estimations
Easy to modify input data
Easy to refine and customize formulas
Disadvantages:
Unable to deal with unusual conditions
Some experience and factors can not be quantified
14. Estimation by Analogy
The cost of a project is computed by comparing the project
to a similar project in the same application domain.
Analogous estimating uses historical data from similar projects
as a basis for the cost estimate. The estimate can be adjusted for
known differences between the projects. This type of estimate is
usually used in the early phases of a project and is less accurate
than other methods.
Example:
Machine Learning (Case-Based Reasoning, Classification Model)
15. Estimation by Analogy
Advantages:
Based on actual project data
Accurate if project data available
Disadvantages:
Impossible, if no compatible project has
been tackled in the past.
How well does the previous project represent
this one
Needs systematically maintained cost
database
16. Expert Judgement
This technique captures the experience and the knowledge of
the estimator who provides the estimate based on their
experience from a similar project to which they have participated.
Expert judgment uses the experience and knowledge of experts
to estimate the cost of the project. This technique can take into
account unique factors specific to the project.
Examples:
Delphi and Work Breakdown Structure (WBS).
17. Expert Judgement Edit
Advantages:
Useful in the absence of quantified, empirical data.
Can factor in differences between past project
experiences and requirements of the proposed
project
Can factor in impacts caused by new technologies,
applications and languages.
Disadvantages:
Estimate is only as good expert’s opinion
Hard to document the factors used by the experts
Very inaccurate if there are no experts!
18. Top-Down
This technique is also called Macro Model, which utilize the
global view of the product and then partitioned into various low
level components. Top-down estimating is a technique used by
upper level management to estimate the total cost of a project
by using information from a previous, similar project. In other
words, they will estimate the cost of the current project based on
the last time they introduced a project.
Example:
Putnam model
19. Top-Down
Advantages:
Requires minimal project detail
Usually faster and easier to implement
Focus on system level activities
Disadvantages:
Tend to overlook low level components
No detailed
20. Bottom-Up
The cost of each software components is estimated first and then
the results are combined to derive the final cost estimation for the
project. Bottom-up estimating is a way to approximate an overall
value by approximating values for smaller components and using the
sum total of these values as the overall value. In project
management, this type of estimating is used to create a schedule or
budget. Typically, the project work is broken down, or decomposed,
into smaller components and an estimate of duration and cost is
assigned to each component.
Example:
COCOMO’s detailed model
21. Bottom-Up
Advantages:
More stable
More detailed
Allow each software group to hand an estimate
Disadvantages:
May overlook system level costs
More time consuming
23. Price to Win
The cost estimate is the price that is necessary to win the contract or
the project. The software cost is estimated by the price what the
customer has available to spend on the project.
Advantages:
Often rewarded with the contract
Disadvantages:
Time and money run out before the job is done
24. Parkinson’s Law
Parkinson’s Law states that work expands to fill the time available
and The cost is determined by available resources rather than by
objective assessment.
Example:
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.
Advantages:
No overspend
Disadvantages:
System is usually unfinished