1. 06-Feb-2012
Session 5
Software estimation
The perspective of estimation
First encounter Getting to know Project proposal Contracting
with your client each other and requirements “Estimation is the activity with the highest
degree of uncertainty throughout the whole
Pricing strategy development,- and project lifecycle”
“What is your General Terms and Detailed pricing
price?” Conditions Estimation SLA and conditions
True or not?
Estimation exercise Estimation Questions
• Choose one of the collaboration techniques 1. What is the average distance of the Moon from the
– Estimate as a group, come to consensus Earth? 384400 km
– Divide the work among you, estimate individually 2. What is the height of the highest mountain? 8848 m
3. What is the diameter of the Earth? 12756 km
4. What is the area of Switzerland? 41277 sq km
1
2. 06-Feb-2012
Estimation
• Estimate a Range, negotiate a number
• Numbers are for facts Ranges are for estimates
WHAT DO WE NEED TO KNOW
FOR SOFTWARE ESTIMATION?
• The sizes of major deliverables, such as specifications, source code,
and manuals
• The rate at which requirements are likely to change during
development
• The probable number of bugs or defects that are likely to be
encountered
• The capabilities of the development team
• The salaries and overhead costs associated with the development
team
•
•
The tools that are going to be utilized on the project
The set of activities that are going to be carried out
WBS - GANTT
• The cost and schedule constraints set by clients of the project being
estimated
WBS WBS - Development
• A WBS is a logical hierarchy of deliverables 1. Take the committed deliverables
• A WBS is an essential tool in the project planning 2. Decompose the deliverables down to activity level
process 7 (+/- 2) activities for any WBS entry. If not:
• Does not represent the relationships and dependencies • Split entries
between activities • Combine activities
• A WBS helps to define the work required for the project 3. Validate, bottom-up
and to break it into manageable pieces
• A good WBS can help in the development of schedules,
project plans, budgets, project control and resource
requirements
2
3. 06-Feb-2012
WBS – Final steps
• Risk assessment
• Milestones
• Develop WBS from the top down; not bottom up
• Don’t exceed about 5 levels in a WBS
• Check to make sure that the WBS is consistent with the
project charter
GANTT
GANTT - Development (Pete)
(John & Mary)
• Represents dependences between activities
• Activities (from WBS) +
– Duration
– Person responsible
– Person authorizes completion
ESTIMATION OR
GUESTIMATION?
3
4. 06-Feb-2012
Group work Issues and challenges
• Create a clear, step-by-step process for software Lack of historical data
estimation No formal method for
estimation
• At each step indicate the uncertainty in the process,
No estimation updates
where is it coming from and how can you eliminate it
• Present your software estimation process
Estimation and the cone of uncertainty
“The further a project progressed, the more accurate "If I give you another week to work on your
the estimates for the remaining effort and time became” estimate, can you refine it so that it contains
Barry Boehm, less uncertainty?"
The cone of uncertainty
That’s a reasonable request, but The Cone represents the
error in estimates created
unfortunately it’s not possible to by skilled estimators.
deliver on that request. Research
It’s easily possible to do
Degree of error: has found that the accuracy of worse.
4 / 0.25 = 16 the software estimate depends
It isn’t possible to be more
on the level of refinement of the accurate; it’s only possible
software’s definition. The more to be more lucky.
refined the definition, the more
accurate the estimate.
4
5. 06-Feb-2012
Overestimation What do we estimate?
Work expands to fill available time.
• Effort
• Cost
• Schedule
Accurate estimate +/- 5-10%
Underestimation
A smaller-than-actual project is planned, understaffing, missing
essential tasks. As a result defect rates and costs increase.
Most project teams underestimate by a factor of 2!
Software estimation process Software estimation process (continuation)
1. Analyse requirements
7. For cost estimates and budget you need to know:
2. Plan activities
– Salaries
3. Start sizing the project by using; – Overhead applied for the project
– Estimation tools – Inflation rate
– Counting Function Points – Currency excahnge rates
– Analogy with other projects and industry averages – Licence fees
– Guessing the size – Equipment
• By the project manager – Travel and living costs
• By the programmer team – Contractors and subcontractors
• By Wideband-Delphi – Legal fees
– Marketing and advertising
4. Estimate defect potential, defect removal and changing requirements – Content acquisition
5. Estimate staffing requirements
6. Adjust based on staff experience and capabilities
7. Create schedule and effort estimates
5