cost estimation 2009. cost estimation “the most unsuccessful three years in the education of cost...
DESCRIPTION
Goal The cost estimation community is working to improve estimations so that sophisticated organizations can produce products with 5% of the estimated cost (instead of 10%).TRANSCRIPT
Cost Estimation
2009
Cost Estimation
• “The most unsuccessful three years in the education of cost estimators appears to be fifth-grade arithmetic.
» Norman R. Augustine
Goal
• The cost estimation community is working to improve estimations so that sophisticated organizations can produce products with 5% of the estimated cost (instead of 10%).
Requirements for Estimations
• What are cost estimates used for?
Requirements for Estimations
• What are cost estimates used for?• What are the important characteristics of a
cost estimate?
Scenario
• A typical software development shop. A boss is speaking with the lead developer.
Definitions
• Estimate• Target • Commitment• Plan
Estimate
Commitment
• Target:
• Commitment:
• Plan:
Terms
• Note that target, estimate, and commitment are not the same concept, and the dates given for these may differ.
Scenario 3
• Suppose I give an estimate of 90 days.
Usual
0
20
40
60
80
100
120
Schedule (or cost)
Prob
abili
ty
Scenario 3: Bell curve
• What does it mean?
Common Assumption
0
5
10
15
20
25
30
Schedule (or cost)
Prob
abili
ty
Scenario 3:
• What does this mean?
Realistic
0
51015
2025
3035
Schedule (or cost)
Prob
abili
ty
Accuracy and the cost of inaccuracy
• What is the cost of overestimating?
Accuracy and the cost of inaccuracy
• What is the cost of underestimating?
Projet Outcomes by Project Size
0102030405060708090
1KSLOC 10 KSLOC 100KSLOC 1MSLOC 10 MSLOC
Size
% c
ompl
ete
Early
On Time
Late
Failed
How are we doing?• KSLOC is 1,000 lines of source code• MSLOC is 1,000,000 lines of source code• With your partner, what does this graph say?
Benefits of Accurate Estimates• Improved status visibility• Higher quality• Better coordination with non-software functions• Better budgeting• Increased credibility for team• Early risk information
Approaches to arriving at a number
• Count• Compute• Judge
Counting vs. Estimating
• Similarities:• Differences:
Proxy
• A value that is used to represent some other value
• Example: Estimate the weight of the people in the airplane from the number of people in the airplane (requires that we also know the average weight of people)
Things we want to estimate in software
• Cost• Resources• Revenue
Sources of uncertainty
• Inaccurate information about project• Inaccurate information about ability of
project team• Too much chaos in project• Inaccuracies in estimation process
Wideband Delphi1. Estimators prepare initial estimates2. The estimators meet with a coordinator to discuss
estimation issues3. Estimators give their estimates to the coordinator
anonymously4. The estimates are summarized on an iteration
form5. Estimators meet to discuss differences6. Estimators vote to accept the average. If any votes
“no”, return to step 2
Wideband Delphi
• Votes and estimates are anonymous• Reduces political pressure• Coordinator must prevent dominant
personalities from controlling discussions• (Frequently, the most reserved person has
the best insights)
Results of Wideband Delphi
• Estimation error cut by 40% compared to initial group average
• Accuracy improves in 80% of the cases• Useful for early estimates, particularly with
unfamiliar systems• Not so useful for detailed estimates
LOC, SLOC, KSLOC, MSLOC
• Lines of code• Standard measure of size• Often a measure of cost (i.e., time)
Function Points
• Synthetic measure of program size used to estimate size early in the project
• Easier (than lines of code) to calculate from requirements
• Standards at the International Function Point Users Group (IFPUG) www.ifpug.org
FP Rules: #FPs depends on:
• External Inputs• External Outputs• External Queries• Internal Logical Files• External Interface Files
FP Rules: Complexity MultipliersLow Complexity
Medium Complexity
High Complexity
External Inputs
3 4 6
External Outputs
4 5 7
External Queries
3 4 6
Internal Logical Files
4 10 15
External Interface Files
5 7 10
LOC vs FP (Boehm 2000, Stutzke 2005)
Language LOC per FPAda 50C 128C# 55C++ 55Java 55Assembly 213Perl 20VB 32
FP results
• Certified counters vary by 10%• Untrained counters vary by much more• The multipliers may or may not be useful
(some research indicates unadjusted FPs are more closely correlated with effort)
• The LOC have on average a range of 3x wrt FPs
COCOMO II
COCOMO II
• COCOMO COnstructive COst MOdel• Model to help you reason about the cost
and schedule implications of any software decisions you may need to make.– Project Budgets– Scheduling– Planning– Risk Management Decisions
COCOMO II
• Objective cost model for planning and executing software projects.
• Concerned with:– Software Development Effort– Software Cost– Software Schedule Estimation
COCOMO II Model Definition
• Two Models to be concerned with:– Post-Architecture Model– Early Design Model
COCOMO II Model Definition
• Two Models to be concerned with:– Post-Architecture Model –
– Early Design Model –
COCOMO II Variables
• Sizing Variables– Source Lines of Code (SLOC)– Unadjusted Function Points (UFP)
• Cost Drivers• Scale Factors
Sizing Variables
• Concerned with the Size (SLOC) of the product being developed.
• Looking at data that influences new code to better:– Estimate the amount of Effort
– Estimate the amount of Calendar Time
SLOC• Expressed in thousands of source line of code
(KSLOC).• Again, only looking at data that will influence effort
based on:– New Code– Copied & Modified Code
• Historical data based on previous software project used to derive estimate.
Unadjusted Function Points
• Approach: values based upon functionality in a software project.
• Based on information available early in the software project life cycle.– Requirements Definition– SRS– Design Documents
Unadjusted Function Points
• Basically, looking at all external data and input control to the system.
• Looking at all possible outputs produced by the system.
• Looking for any file types that my be associated with the system.
Project Schedule
Project Schedule per Phase
0 2 4 6 8 10 12
RCRFJ_V0.0
Months
Plans And Requirements Product Design Programming Integration and Test
Effort Per Phase Schedule
Effort per Module
0
2
4
6
8
10
12
Plans andRequirements
Product Design Programming Integration andTest
Phase
Mod
ule
Effo
rt
RCRFJ_Master