M16 - Basic Methods of Effort Estimation

advertisement
SMU CSE 7315
Planning and Managing a Software
Project
Module 16
Basic Methods of Effort Estimation
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
CSE7315 – Software Project Management
Objectives of This Module
 To discuss some basic methods of effort
estimating
 To introduce a process for documenting
and updating estimates as a series of
schedules
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
CSE7315- Software Project Management
2
The Big Picture
for Cost Estimating
Source Information
Statement of Work
Requirements
WBS
Estimate
Constraints
Size
Standards
Processes
History
etc.
Revise &
Estimate
Size
Effort and
Cost
Negotiate
Not OK
Complete
Detailed
Planning
OK
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
Evaluate
Effort
&
Cost
Schedule Estimate
Schedule
CSE7315- Software Project Management
3
Effort Estimation with
“Historical” Productivity Data
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
CSE7315- Software Project Management
4
Architecture of Spreadsheet
Size / Reuse
Effort
Effort & Cost Schedules
Software
Reuse
Analysis
Final Effort
Estimate
Generic Schedule
Final Size
Estimate
Productivity
Based Effort
Estimate
Effort Schedule
Historical
Size Estimate
Delphi
Size Estimate
Model Based
Estimate
Labor Schedule
Cost Schedule
Other Effort
Estimates ...
Other Size
Estimates ...
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
CSE7315- Software Project Management
5
Effort Can Be Estimated From
Size and Productivity
Effort = Size * Historical Productivity
Examples:
– Staff-days = Lines of Code*Staff-days/LOC
– Staff-days = Modules*Staff-days/Module
– Staff-days = Function Points*Staff-days/FP
Whatever unit you measure, if you have good
historical data, this method can be fast and
effective
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
CSE7315- Software Project Management
6
Typical Values for
Productivity Rates
 2-30 LOC/day for high order languages
 3-40 LOC/day for assembly language
 Lower values for constrained projects
– real time/ safety critical systems etc.
 Higher numbers for commercial
applications with few constraints
 Even higher numbers can be achieved if
you use 4GLs, high levels of reuse, etc.
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
CSE7315- Software Project Management
7
Example
 In the past, we have had the following
productivity:
– 16 LOC/staff-day for complex software
– 24 LOC/staff-day for simple software
 For the new “8000 LOC”, “complex”
software, it should take
8000/16 = 500 staff-days
…But how accurate is this?
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
CSE7315- Software Project Management
8
Historical Data (Typical)
LOC Developed per Staff-day
25
20
15
History
Proposed
10
5
0
2000
2002
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
2004
2006
2008
2010
CSE7315- Software Project Management
9
Historical Data are Seldom
Precise or Consistent
Example:
Effort for complex software varies from 8 to 24
LOC per staff-day, with a mean of 16 LOC per
staff-day and an upward trend
The expected effort for an 8000 SLOC program
might be
 As low as 333 staff-days or ...
 As high as 1000 staff-days!
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
CSE7315- Software Project Management
10
In Other Words
 Historical data usually give a range of
values, not a precise estimate
Based on past experience,
this project should take from
100 to 125 staff-months
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
CSE7315- Software Project Management
11
Three Risk Management
Approaches
 Plan to update your estimates
– You will have better information in the future
 Use multiple estimating methods
– They will help improve the bounds on your
estimate
– Each new method will identify issues that other
methods overlook
 Set aside a “reserve” amount based on
the level of risk in your estimate
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
CSE7315- Software Project Management
12
Multiple Methods Example
Method 1
X
2000
3000
4000
5000
 How confident are you that this is right?
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
CSE7315- Software Project Management
13
Multiple Methods Example
Method 2
X
2000
3000
X
4000
5000
 How confident are you now?
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
CSE7315- Software Project Management
14
Multiple Methods Example
Method 3
X
2000
3000
X
X
4000
5000
 Now, where do you think the truth is?
 Why is method 3 so different?
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
CSE7315- Software Project Management
15
What Do
Multiple Methods Tell You ?
 They help you understand the degree of
uncertainty and/or confidence in your
estimate - so you can manage more
effectively
– How much reserve to set aside
– Risk mitigation actions to take
 They force you to ask hard questions
about what facts each method overlooks
 They help you learn
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
CSE7315- Software Project Management
16
Beware of Averages
 Significant differences in estimates usually
mean significant differences in assumptions
or facts considered
 In such cases, averages may be
meaningless
XX XX
XX X
Average is Meaningless
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
CSE7315- Software Project Management
17
Statistical Variances and
Uncertainties
Method 1
Method 2
Method 3
Cost Range =
M1  M2  M3
Most Likely Cost
Cost Range
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
Most Likely =
M1  M2  M3
CSE7315- Software Project Management
18
Architecture of Spreadsheet
Size / Reuse
Effort
Effort & Cost Schedules
Software
Reuse
Analysis
Final Effort
Estimate
Generic Schedule
Final Size
Estimate
Productivity
Based Effort
Estimate
Effort Schedule
Historical
Size Estimate
Delphi
Size Estimate
Model Based
Estimate
Labor Schedule
Cost Schedule
Other Effort
Estimates ...
Other Size
Estimates ...
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
CSE7315- Software Project Management
19
Wideband Delphi
 Wideband Delphi can be
used to estimate effort
as well as size
– On small projects this is
often the most effective
way to estimate effort
– Also useful for estimating
other costs, such as
management overhead,
tools, support functions
etc.
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
x
xx
x
x
I assume it will
take 3 people for 2
months.
CSE7315- Software Project Management
20
Estimation as a Series of
Schedules
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
CSE7315- Software Project Management
21
A Practical Issue in Estimation
 How do you “put it all together”?
– Size
– Effort
– Cost
– Schedule
– Staffing levels
 How do you “keep it all together” as
you revise and update the estimates?
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
CSE7315- Software Project Management
22
A General Process for
Documenting & Updating
Estimates
 The process to be described is a
framework for estimating
 You can use any estimating methods you
choose
 The process allocates estimated effort
and cost across a schedule
 And by using a spreadsheet, you can
easily update all estimates (see
assignments 3 and 4)
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
CSE7315- Software Project Management
23
Architecture of Spreadsheet
Size / Reuse
Effort
Effort and Cost Schedules
Software
Reuse
Analysis
Final Effort
Estimate
Generic Schedule
Productivity
Based Effort
Estimate
Effort Schedule
Final Size
Estimate
Historical
Size Estimate
Delphi
Size Estimate
Other Size
Estimates ...
Labor Schedule
Model Based
Effort Estimate
Other Effort
Estimates ...
Cost Schedule
25
20
Total
15
Build 1
10
Build 2
5
0
M1
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
M2
M3
M4
M5
M6
CSE7315- Software Project Management
24
Some Features of This
Estimating Process
 The process allows you to evaluate:
– Staffing and shopload
– Resource requirements (equipment, people,
money, …)
– Cash flow
 It serves as a basis for managing
– It provides initial estimates of many quantities you
will want to track against actuals during project
execution
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
CSE7315- Software Project Management
25
The Estimation Sequence
WBS cost
categories
S, SA
P
AL
AD
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
Top Level Schedule
Initial
Planning
Generic Schedule
Process
Model
Effort Schedule
Effort
Estimate
Labor Schedule
Labor
Types
Cost Schedule
Labor
Rates
CSE7315- Software Project Management
26
Cost Categories for WBS Tasks
Code
S
SA
P
Category
Software
Development
Additional Software
Development
Software Support
Affects
Examples
Cost &
Schedule
Cost &
Schedule
Cost
Software Design, Software
Coding, Software Testing
Software Requirements,
System Testing
Software Management, SQA,
Config Management
Project Management, Audits,
Document Generation
Travel, Development Tools,
Special Equipment
AL
Additional Labor
Cost
AD
Additional Dollars
Cost
Each category of cost is incorporated at a
different point in the estimating process
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
CSE7315- Software Project Management
27
A “Quick and Dirty”
Cost Estimate
 To illustrate the process
 To get an initial estimate in 30 minutes
 Note that this simplifies many of the steps,
but shows the basic order in which things
happen
 You start with: WBS, top level schedule,
experience on previous projects
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
CSE7315- Software Project Management
28
A “Quick and Dirty” Cost
Estimate (continued)
 Top level schedule is generally
determined earlier in the planning
process, as part of initial planning
– But it may be revised during this process,
generally at the end of step 2
 Generic schedule is not used in this
“quick and dirty” case
 We will estimate in staff-months
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
CSE7315- Software Project Management
29
“Quick and Dirty” Cost Estimate
Steps 1-3 (effort schedule)
1) Base Effort = Software Development
Effort, excluding all other activities
– Estimate the effort required for each WBS task
associated with software development (type S)
– Sum the estimates
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
CSE7315- Software Project Management
30
Quick and Dirty Cost Estimate
Steps 2-3 (effort schedule)
2) Adjusted Base Effort =
BASE EFFORT
+ effort for additional development tasks
(type SA)
3) Total Effort =
ADJUSTED BASE EFFORT
+ percentage increment for support tasks
(type P)
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
CSE7315- Software Project Management
31
Quick and Dirty Cost Estimate
Steps 4-5 (labor and cost)
4) Total Labor =
TOTAL EFFORT
+ additional labor (type AL), divided into
specific staff categories.
5) Total Cost =
TOTAL LABOR * LABOR COST RATE
+ additional dollar costs (type AD).
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
CSE7315- Software Project Management
32
Example
Step 1 - Base Effort (S tasks)

Size estimate is 12,000 SLOC

We normally develop about 24 SLOC per
staff-day on projects like this

So it should require about 500 staff-days
= 25 staff-months (sm)
– (at 20 working days per month)
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
CSE7315- Software Project Management
33
Example
Step 2 - Adjusted Base Effort
(+SA tasks)

Requirements and system integration
support (SA tasks) should add 30%
– Total = 650 staff-days = 32.5 sm

Top level schedule for this is 12 months. Can
do with ~3 people on the average.
– Will build up staff to peak in months 7-10
Initial Effort Schedule:
M1
M2
M3
M4
M5
1
2
3
3
3
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
...
M12
2
TOTAL
32.5
CSE7315- Software Project Management
34
Example
Step 3 - Total Effort
(+P tasks)

Support for “P” tasks (CM, QA, and
management) should add about 25% or
195 more staff-days.

Total = 845 staff-days = 42.15 sm
– Assume this is distributed more or less evenly
across the schedule
Total Effort Schedule:
M1
M2
M3
M4
2
3
4
4
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
M5
4
...
M12
3
TOTAL
42.15
CSE7315- Software Project Management
35
Example
Step 4 - Labor Schedule
(labor categories)

Labor will be divided into 3 categories:
senior, normal, new.
Initial Labor Schedule:
Type
Senior 30%
Normal 50%
New
20%
Total Labor
M1
1
1
0
2
M2
1
2
0
3
M3
1
2
1
4
M4
1
2
1
4
M5 ... M12
1
0
2
1.15
1
1
4
2.15
TOTAL
10
22.15
10
42.15
Note that Total Labor line matches Total Effort Schedule
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
CSE7315- Software Project Management
36
Example
Step 4, Part 2 - Adding “AL“
Tasks to Labor Schedule
Type
Senior
Normal
New
Total
M1
1
1
0
2
M2
1
2
0
3
M3
1
2
1
4
M4
1
2
1
4
M5 ... M12
1
0
2
1.15
1
1
4
2.15
TOTAL
10 - 24%
22 - 52%
10 - 24%
42.15
• Need to add extra staff for V&V activity (an
“additional labor” task)
V&V
0
Grand Total 2
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
0
3
0
4
0
4
0
4
2
4.15
CSE7315- Software Project Management
2
44.15
37
Example
Step 5 - Convert Effort to Cost
 Senior - $10000 per month
 Normal - $8000 per month
 New - $6000 per month
 V&V - $16000 per month (governmentimposed “beltway bandits”)
(10 * 10000) + (22 * 8000) + (10 * 6000) + (2 *
16000)
= $368,000 total
This shows the total dollars. By allocating across
the schedule, we can see how those dollars are
spent each month during the project.
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
CSE7315- Software Project Management
38
Example
Step 5 - Cost Schedule
• Labor replaced by dollar costs (in $1000’s)
Type
M1
M2
M3
M4
M5
Senior
10
10
10
10
10
0
100
Normal
8
16
16
16
16
8
176
New
0
6
6
6
6
6
60
32
32
32
32
14
336
Subtotal
18
…
M12 TOTAL
Extra staff for V&V activity
V&V
Total
0
0
0
0
0
32
32
18 32
32
32
32
46
368
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
CSE7315- Software Project Management
39
Step 5, Part 2 - Adding
Additional Dollar (“AD”) Costs
• Any other costs can be added in dollars
Type
M1
M2
M3
M4
M5
18 32
32
32
32
…
M12
TOT
46
368
…….
Total
Additional costs (expressed in K$)
Computers 0
Travel
…
20
30
0
0
0
18 52
62
32
32
46
50
418
(add other costs, such as rent, interest, tax)
Grand Total
62
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
62
42
32
56
620
CSE7315- Software Project Management
40
Example (other options)
5a) Include overhead costs in the pay scale
or add on later
5b) Calculate for each week or day or
whatever by similar methods
5c) Add non-labor cost items expressed in
dollars, such as rent, overhead,
computers, etc.
5d) Adjust for inflation in future years, for
long projects
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
CSE7315- Software Project Management
41
Module Summary
 Historical productivity data can be very
helpful in estimating effort
– But they give ranges rather than precise estimates
 Wideband delphi can also be used
 The general process for estimating allows
you to “put it all together” and “keep it all
together” during updates
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
CSE7315- Software Project Management
42
END OF
MODULE 16
Copyright 1995-2008, Dennis J. Frailey
CSE7315 M16 - Version 8.01
CSE7315- Software Project Management
43
Download