Upload
agilecoachnet
View
11.445
Download
2
Embed Size (px)
DESCRIPTION
"Estimation Games" presentation at Agile 2010 by Pascal Van Cauwenberghe
Citation preview
Estimation Games
Pascal Van CauwenbergheNayima
His Blog: blog.nayima.be
NAYIMAWe make play work
Consultant. Project Manager. Games Maker.
Estimate the height of the highest place in Belgium
In meters or feet
# 1: Always give a range Never give them a number
# 1: Numbers are for factsRanges are for estimates
I estimate “Between 650 and 700m”Or “Between 0 et 4000m”I know it’s 694m (2092 ft)
Estimation exercise
• One result per table• Choose one of three collaboration techniques• If you can’t choose, let the Post-It choose for you• RED Post-It– Estimate as a group, come to consensus
• GREEN Post-It– Divide the work among you
• YELLOW Post-it– First estimate individually– Then combine the estimates as a group
Estimation exercise 1
• Surface temperature of the sun (in degrees C)• Latitude of Shanghai (in degrees)• Surface area of Asia (in km2)• Birth date of Alexander The Great (year)• Dollars in circulation in the US in 2004 (in $)• Volume of the Great American lakes (in litres)• Global revenue of “Titanic” (in $)• Length of the Pacific coastline (Ca, Or, Wa) (in km)• Number of books published in USA, 1776 to 2004• Weight of the largest whale (in tonnes)This quiz is from “Software Estimation” by Steve McConnell (Microsoft Press)(C) 2006 Steve McConnell. Used with permissionTime’s up! 10 min
An estimation joke
• An engineer, a mathematician and an accountant are sitting at the bar
• The barman asks: “What’s 68+73 ?”• Engineer: 141• Mathematician: 68 + 73 = 73 + 68• Accountant: Usually it’s 141, but what do you
want to do with the number?
Why estimate?
What is the expected error margin?
#2 Always ask what the estimate will be used for
What have you committed to?
Based on what information?
Cone of uncertainty
400%
25%Watch out: this is the best possible case!
#3 Estimation != Commitment
Getting an estimate wrong doesn’t hurt
Estimating money (individually)
• How much money is there in this room?– Counting only cash dollars
• Re-do the estimation, but this time– Count the number of people: N– Count how much money you have on you: M– Estimate how much money the average person
holds, based on M: M1-M2– Compute the amount: N * M1 – N * M2
What can you count?
• Number of stakeholders• Number of goals• Number of events• Number of business processes• Number of high-level user stories• Number of detailed user stories• Number of screens• ....
#4 First try to measure, count and computeEstimate only when necessary
Estimating money (in group)
• Estimate as one group per table• Combine individual estimations into a group
estimate– Planning Poker style: announce estimates, low/high
estimators explain, again– Take min and max for a range that covers all
estimates– Take average of min and max for a range that covers
much of the estimates– ...
Aggregate estimates
• Independent estimators– For example, by playing Planning Poker
• Independent estimation methods– For example, by combining:1. Comparison with previous project2. Expert estimation3. Counting high level stories
#5 Aggregate independent estimates
“Wisdom of the Crowds”
The law of large numbers (or: statistics is on our side, for once)
• If we estimate with an error of x%• The estimate of each scope item will have an
error of x%• But...• Some items will be over-estimated, others
under-estimated (maybe....)• => The error on the total estimate is < x%
The law of 15
• Have about 15-20 same-sized elements at each planning horizon– Program, Project, Release, Iteration
• Enough for the law of large numbers to have an effect
• But not too many, easy to manage
#6 Use the law of large numbers
Decompose Just enough, just in time
Sprint CommitmentSprint Burndown
Release Burndown
Velocity Chart
0
5
10
15
20
25
1 2 3 4 5 6 7 8
Velocity per iteration
Velocity
Linear (Velocity)
Re-estimation and calibration
• First estimation:– Relative estimate (1 point, 2 points, ...)– Calibrate with previous projects (16-22 points per
iteration)• Re-estimate during the project– Check if relative sizes are ok– Re-calibrate with measured velocity
Ensure consistency of relative estimates
• Build in internal consistency– Demonstrated in “XP Game”
• Analyse large errors in retrospectives– Some variance is normal
• Keep a library of representative reference stories– Estimate relative to references– Add stories that were mis-estimated!
Velocity of the first project
• Take a similar, finished project• Estimate relatively in Story points: N points• We know it took M mandays• Decide how many mandays per iteration: K• Velocity = +/- K * N/M points/iteration
• Attention: M is complete cost– No “Twilight Zone” or “Murky Zone”!
#7 Calibrate your estimates with real velocity data
Project data > Company data >
Industry data
Evil Estimation Games
• “Guess the number I’ve got in my head!”• “An awesome team like you can do better than that!”• “This time it’ll go so much faster, because we learned
so much from the previous project!”• “This project will be very different!”• “If we just work a bit harder, we’ll increase velocity”• “I could code this in half the time!”• “If we lower the estimate, the project will be done
faster” (this actually works in some circumstances...)
Q: Why are there so many pointy haired-bosses?
A: because there are so many Dilberts
#8 Never negotiate estimates
Always question the reasoning and assumptions behind estimates
#9 Never negotiate commitments
#10 Solve problems together
Make assumptions explicitQuestion assumptions
Offer options
The Options exercise
• Estimate of the project: 5-6 months• Conference in 3 months– We need to make a great impression on prospects– I want to show all our functionality
• Which assumptions are we making?• What options can you offer?
Roadmap OR Kanban?
• Our dilemma:– Product manager needs to publish a credible long
term roadmap for customers, partners and integrators
– Development team has flow-based process without estimation, planning or velocity tracking
• We can’t have both, can we?• Yes we can!
Roadmap AND Kanban
• Roadmap with customer goals, not features• Product Manager estimates value of achieving
each goal => priorities of roadmap• Product Manager determines budget per goal• Quick feasibility check by team• Each release, PM and team find a way to
achieve release goals within release budget• Watch flow, ensure release goals are met
Summary
1. Ranges for estimates. Numbers for facts.2. Always ask what the estimate will be used for3. Estimation is not Commitment4. Measure, count, compute before estimating5. Aggregate independent estimates6. Use the law of large numbers (large ~= 15)7. Calibrate estimates with measured velocity8. Never negotiate estimates9. Never negotiate commitments10. Solve problems together
Estimation exercise 2
• Surface temperature of the sun (in degrees C)• Latitude of Shanghai (in degrees)• Surface area of Asia (in km2)• Birth date of Alexander The Great (year)• Dollars in circulation in the US in 2004 (in $)• Volume of the Great American lakes (in litres)• Global revenue of “Titanic” (in $)• Length of the Pacific coastline (Ca, Or, Wa) (in km)• Number of books published in USA, 1776 to 2004• Weight of the largest whale (in tonnes)This quiz is from “Software Estimation” by Steve McConnell (Microsoft Press)(C) 2006 Steve McConnell. Used with permissionTime’s up! 6 min
Answers
• Sun: 6000° C• Shanghai: 31 degrees North• Asian area: 44,390,000 km²• Alexander was born in 356 BC• Dollars in circulation: $719.9 billion• Great Lakes: 6.8x10^23 litres• Titanic: 1.835 billion $• Pacific Coast: 1293 kilometres• Published books: 22 million• Whale: 170 tonnesThis quiz is from “Software Estimation” by Steve McConnell (Microsoft Press)(C) 2006 Steve McConnell. Used with permission
And the winner is?
Life is like a box of tasty Belgian chocolates!
presentation
Software Estimation – Steve McConnell
42 |
Merci
Thank You
www.agilecoach.netwww.nayima.beblog.nayima.be
If you want to know more