the art of estimation
TRANSCRIPT
The Art of Software Estimation
john burns
A presentation I put together as part of a digestion and book review of the excellent Art Of Estimation by Steve McConnell. Any mistakes
or inaccuracies are entirely my own doing.
What is an estimate?
The client needs RiskForce IV before next month or the Death Star will implode.
How long do you think it will take?
P.s. We should softcode the architecture in case we need to integrate with their Other System running on Paula Bean’s VM.
Love,
The Boss x
An estimate is an unbiased, analytical process to predict the duration or cost of a project.
We need RiskForce IV ready to demo at a conference in February.
We will have something to demo at the conference in February.
It’s a prediction.It is NOT planning!
Estimation is not 100% accurateAll estimates are probabilities
Why bother making estimates
at all?
Better estimation…
Better planning…
Lower costs…
Greater chance of project success!
How do we know if our estimate is good?*
Hi RiskWorks!
A good estimate should be within 25% of actual results75% of the time.
Steve McConnell
Low estimate
High estimate
1. Surface temperature of sun
2. Latitude of Shanghai
3. Area of Asian continent
4. The year of Alexanda the Great’s birth
5. Total value of U.S currency in circulation in 2004
6. Total volume of the Great Lakes
7. Worldwide box office receipts for the movie Titanic
8. Total length of the coastline of the Pacific Ocean
9. Number of book titles published in the U.S. since 1776
10. Heaviest blue whale ever recorded
For each question, fill in the upper and lower bounds that, in your opinion, give you a 90% chance of including the correct value.
1. Surface temperature of sun 10,000°F /6,000°C
2. Latitude of Shanghai 31 degrees North
3. Area of Asian continent 17,139,000 square miles
4. The year of Alexanda the Great’s birth 356 BC
5. Total value of U.S currency in circulation in 2004 $719.9 billion
6. Total volume of the Great Lakes 2.3 x 10^16 litres
7. Worldwide box office receipts for the movie Titanic $1.835 billion
8. Total length of the coastline of the Pacific Ocean 84,300 miles
9. Number of book titles published in the U.S. since 1776 22 million
10. Heaviest blue whale ever recorded 170 metric tons
Answers
How did you do?
Where did the pressure to narrow your ranges come from?
They came from within
Narrow ranges != greater accuracy;
Make your ranges as wide as they need to be
estimate?
under
over
Work expands to fill time
Parkinson’s Law
Goldratt’s student syndrome
Underestimating will make them fearful, increasing their rate of work. The empire will soon be mine.
Underestimating leads to project plan destruction
More bugs
Bad team healthImage: sick
Bad team health
More time spent in status meetings at the end of the project
More time in status meetings to discuss slippage
Control the effects of overestimation using project planning and status visibility
Not by bufferingyour estimates
What’s the source of uncertainty in our estimates?
Cone of uncertainty
Cloud of uncertainty
The cone doesn’t narrowitself
You have to force it to narrow by reducing variability
Unstable requirements are the worst offender
Project chaos leads to uncertainty in estimates
Remember to include:
TestingSupport of old projectsVersion controlBuilding the installerMore meetings…
Optimismisbad
How do we become better estimators?
Don’t give off the cuff estimates
Precision is notaccuracy
The project will not take 233.725 hours
Find somethingmeaningful to count and keep a record of it
Use expert judgement only as a last resort
What about when you’re agile?
Measure story points per sprint
Use t-shirt sizingat the start of
the project
S, M, L
Feature Business value Development cost
Feature A Large Small
Feature B Small Large
Feature C Medium Large
Feature D Medium Medium
…
Feature Z Small Small
We can easily identify early on anything not worth pursuing
T-Shirt sizing chart
We can be better at expert judgement
Make tasks more granular
2days max per task
Use ranges not single points with best case and worst caseestimates
Feature Best Case Worst Case
Feature A 1.25 2.0
Feature B 1.5 2.5
Feature C 2.0 3.0
Feature D 0.75 2.0
Feature E 0.5 1.25
Total 6.0 10.75
Expected case = [Best Case + 4(MostLikelyCase) + WorstCase] / 6
Use the PERT formula to get the effort in the Expected Case
Always compare your estimates to your actuals or you’ll never be
a better estimator
Questions?