estimating in software development: no silver bullets allowed
DESCRIPTION
What do poker, Greek oracles, an Italian mathematician from the Middle Ages, and the path of hurricanes have in common? Given the title of this presentation, chances are it has something to do with estimation, and you’ll have to attend this session to get the full connection. Kent McDonald explores the challenges and realities of trying to estimate software-related knowledge work—analysis, testing, development, and the entire project effort. A major challenge is that there are no guaranteed ways to arrive at perfectly accurate estimates, which not surprisingly is why they are called estimates. Kent introduces and gives you a chance to practice quick and practical estimating techniques that will work in different situations—guesstimating, break it down and add it up, and planning poker. Kent has found that these “lite” estimation techniques are almost always just as informative as the ones you just spent six weeks formulating.TRANSCRIPT
Estimating in Software Development: No Silver Bullets Allowed
Kent J. McDonald@beyondreqs
Disclaimer
A Familiar Situation?
Issues with Estimating
Estimating Techniques
Don’t worry, we’ll get to these…
Has this ever happened to you?How long will it
take to build the
commission system?
I just found out about it this
morning, so I’ll need to do some
analysis .
Ok, great. The Sales VP
promised an estimate to the
CEO next Monday. It
better be right.
Issues with Estimating
Initial Uncertainty Accuracy/Effort Tradeoff
False Precision Differing Skill Levels
Initial Uncertainty
Cone of Uncertainty
Cone of Uncertainty a Practical Use
Hurricane Sandy – Actual Path
Accuracy/Effort Tradeoff
Point of Diminishing Returns
False Precision
How precise do you have to be?How long, and
how much?Approximately 374 days and
$2,548,931.27.
Differing skill levels
People finish tasks at different speeds
Estimating Techniques
Guestimate Break it down, add it up
Relative Estimating
Guestimate
Aka “Gut Feel” or “Ball Park”How long, and
how much? About a year and $2.5 million.
Comparison to Past Projects
$1,000 $100K $10M
??
??
??
$1M
Your turn…
Want to create an online application for Mortgage InsuranceHow long to deliver the online application for Mortgage Insurance?
A ballpark answer is sufficient.
Does it address our issues?
Initial Uncertainty Accuracy/Effort Tradeoff
False Precision Differing Skill Levels
When to use it
When you need an estimate fast
When requester accepts inaccuracy
When you’ll
put more
thought to it
later
When you
have experience
with similar
efforts
Break it downAdd it up
Break overall effort into bits
Assign factor to each small bitTasks Time Factor
(hour/bit)# of bits
Total Time (hours)
Interfaces
GUI - Simple 8
GUI - Medium 16
GUI - Hard 24
System Interface - Simple 12
System Interface - Complex 30
Total Interfaces
Processes
Simple Process 16
Medium Process 32
Complex Process 48
Total Processes
Where do we come up with the factors?
This is where time cards may be useful…
Know ahead of time what you want to track
Build up information over time
Often requires excruciating detail in time collection.
Identify How Many BitsTasks Time Factor
(hour/bit)# of bits
Total Time (hours)
Interfaces
GUI - Simple 8 3
GUI - Medium 16 2
GUI - Hard 24 1
System Interface - Simple 12 3
System Interface - Complex 30 2
Total Interfaces 11
Processes
Simple Process 16 5
Medium Process 32 4
Complex Process 48 3
Total Processes 12
Do the math to get an estimateTasks Time Factor
(hour/bit)# of bits
Total Time (hours)
Interfaces
GUI - Simple 8 3 24
GUI - Medium 16 2 32
GUI - Hard 24 1 24
System Interface - Simple 12 3 36
System Interface - Complex 30 2 60
Total Interfaces 11 176
Processes
Simple Process 16 5 80
Medium Process 32 4 128
Complex Process 48 3 144
Total Processes 12 352
This gives us development hours
What about analysis & testing &…
Percentage of development hours
Estimate tasks separately
You mean we have to estimate analysis & testing?
Data Warehouse Example
Adding a new source to data warehouse Count of sources Count of tables/source Count of
elements/table Considerations of
complexity
Data Warehouse Example
1. Gather all the info2. Plug it into a
spreadsheet3. Look at the resulting
(realistic but “too high”) number
4. Revise…
Your turn…
Want to create an online application for Mortgage InsuranceHow long to deliver the online application for Mortgage Insurance?
Identify how you would break this down to estimate
Of Course there’s always Function Points…
Or, you could always add up tasks
Does it address our issues?
Initial Uncertainty Accuracy/Effort Tradeoff
False Precision Differing Skill Levels
When to use it
You have lots of data from similar efforts
The work is stable and predictable
Scope is
fairly certain
Need estimates for
each type of
work
Another Look - Decomposition
Calibrated Estimates in Ranges
Manage Tracks
Moderate Content
Manage Deadlines
Manage Venue
1 – 2 Days 3 – 5 Days 1 – 2 Days
Build Program
4 – 6 Days .5 – 1 Days
9.5 – 16 Days@ $100/hour & 8 hours/day
$7,600 – $12,800
Note, Entire team calibrated and involved in determining these estimates.
For More information
How to Measure Anything: Finding the Value of Intangibles in Businessby Douglas W. Hubbard
HowToMeasureAnything.com
Where it Helps
Initial Uncertainty Accuracy/Effort Tradeoff
False Precision Differing Skill Levels
Relative Estimating
Ah ha! Here’s the poker connection!
Discuss (briefly) the item to estimate
As an Event OrganizerI want to know how audience members vote by athlete by gender So ThatI can determine if menand women vote differently.
The Delphi Technique
Everyone selects an estimate
Estimating Scales
(Modified) Fibonacci Sequence:0, ½, 1, 2, 3, 5, 8, 13, 20, 40, 80, 100Using a regular deck of cards:A, 2, 3, 5, 8, KingTeam Member Hands:1 – 5
Leonardo Pisano Bigollo aka FibonacciItalian Mathematician
Reveal estimates all at once
So why did you pick a king?
Discuss outliersI wasn’t sure we knew
how to tell an audience member’s
gender.
And how about the two aces?
Well, we changed the voting machines to ask
gender during sign in last iteration, so it should be
easy
Yeah, what she said.
Repeat until convergence
Assumptions: 2 week iterations Overall backlog size: 600 points Planning Velocity: 30 5 Person Team Avg Cost/person/wk: $4,000
Extrapolate based on Velocity
Estimate: $800,000
Your turn…
Determine relative sizes of these various features using the scale 1,2,3,4,5
Based on this feature being sized an 1.
Does it address our issues?
Initial Uncertainty Accuracy/Effort Tradeoff
False Precision Differing Skill Levels
When to use it
Cross functional team that collaborates well
Planning based on features instead of tasks
Following
iterative
approach
Uncertainty
in the features
accepted and
expected
An Alternative to Planning Poker
User Story
User Story
User Story
User Story
User Story
User Story
User Story
User Story
User Story
User Story
User Story
User Story
1 2 53 8
How should we approach estimating for a project?
Phase BasedGuestimate
Break it down add it
up
Set expectation for
revisions
Calibrated
Estimates
AgileComparis
onto past
projects Extrapolate from Velocity
Set expectation for
revisions
Calibrated
Estimates
If you remember nothing elseInitial uncertainty means you will not be accurate.
Don’t spend more effort than it’s worth.
Don’t imply more precision than is possible.
Incorporate multiple perspectives.
65
Questions?
Kent J. [email protected]: @BeyondReqsSlides available from:http://www.knowledgebridgepartners.com/presentations/softwareestimating/