Better Estimation Effective Planning - JUNE 3 · So what is this #NoEstimates nonsense?...
Transcript of Better Estimation Effective Planning - JUNE 3 · So what is this #NoEstimates nonsense?...
@gil_zilberfeld@gil_zilberfeld
Better Estimation and Planning
@gil_zilberfeld
Hello!
I AM GIL ZILBERFELD
www.gilzilberfeld.com
www.everydayunittesting.com
@gil_zilberfeld
@gil_zilberfeld@gil_zilberfeld
Material available on
https://github.com/gilzilberfeld/better-estimation
@gil_zilberfeld
“Prediction is very
difficult, especially
about the future.” Niels Bohr,
Nobel Prize in Physics
@gil_zilberfeld
“It always takes longer than
you expect,
even when you take into
account
Hofstadter's Law”
Douglas Hofstadter
Professor of cognitive
science
@gil_zilberfeld@gil_zilberfeld
Why estimate?
@gil_zilberfeld
The estimation game
For each of the next 10 quantitative questions,
give a lower and an upper bound,
such that you believe with about 90% certainty
that the correct answer lies within the interval
given.
@gil_zilberfeld
The estimation game
This means that you should expect to guess
correctly for about 9 questions out of 10.
The estimation game
@gil_zilberfeld@gil_zilberfeld
Q: How many people are in this room?
A: You ‘guess’ an interval: 12-67
@gil_zilberfeld@gil_zilberfeld
Ready?
Have a pen and paper to write your ranges down!
@gil_zilberfeld@gil_zilberfeld
1. What was the date of birth of Bram Stoker, author of Dracula?
@gil_zilberfeld@gil_zilberfeld
2. What is the population of the Republic of Brazil?
@gil_zilberfeld@gil_zilberfeld
3. What is the height, in meters, of the tallest living redwood tree?
@gil_zilberfeld@gil_zilberfeld
4. How many standardized (ISO 6346) steel shipping containers exist in the world?
@gil_zilberfeld@gil_zilberfeld
5. How many Boeing 747 (all models) have been built at this date?
@gil_zilberfeld@gil_zilberfeld
6. What is the total number of human deaths attributed to H5N1 “avian” flu?
@gil_zilberfeld@gil_zilberfeld
7. How many Syrian conflict refugees were registered by UNHCR as of 1 Nov 2012?
@gil_zilberfeld@gil_zilberfeld
8. What was the total wine production of France in 2009, in hectoliters?
@gil_zilberfeld@gil_zilberfeld
9. How many Olympics medals altogether have been won to date by Austrian athletes?
@gil_zilberfeld@gil_zilberfeld
10. What is the half-life, in years, of the isotope Plutonium 239?
@gil_zilberfeld
1) 1847
2) 199 million
3) 115 meters
4) 20 million containers
5) 1486 747s
You can also split your content
6) 379 deaths
7) 286,000 refugees
8) 45 million hectoliters
9) 304 medals
10) 24 thousand years
How did you do?
@gil_zilberfeld@gil_zilberfeld
So what happened?
@gil_zilberfeld
@gil_zilberfeld@gil_zilberfeld
How do estimates help the product?
@gil_zilberfeld@gil_zilberfeld
Estimates are waste!
Maybe a necessary waste
@gil_zilberfeld@gil_zilberfeld
Are they working for you?
@gil_zilberfeld@gil_zilberfeld
Would you call a 15 min planning session a win?
@gil_zilberfeld
@gil_zilberfeld@gil_zilberfeld
Story points
@gil_zilberfeld
Story points are thinly obfuscated time, no more and no less.
Ron Jeffries
@gil_zilberfeld@gil_zilberfeld
Why obfuscate time?
@gil_zilberfeld
I am not sure I invented story points, but if I did, I’m sorry now.
Ron Jeffries
@gil_zilberfeld
Story points
◉ Everybody knows the “algorithm”
◉ The business talks in dates
◉ We want to encourage ubiquitous language and
openness
◉ Just use time measurements
@gil_zilberfeld@gil_zilberfeld
Planning Poker
@gil_zilberfeld
https://www.amazon.com/Agile-Stationery-Estimation-Poker-players/dp/B01MDTJDST
@gil_zilberfeld
Planning Poker
◉ Fibonacci numbers
◉ Full story estimation
◉ Promote discussion through variation
◉ All the team and just the team
◉ No HIPPOs
@gil_zilberfeld
@gil_zilberfeld
Not so helpful questions
◉ Is it a 3 or a 5?
◉ Should we take the top or the average?
◉ Should we go another round?
@gil_zilberfeld
Planning Poker
◉ Process that requires practice
◉ Make it quick or find another way
◉ Discuss the “why” behind variation
@gil_zilberfeld
@gil_zilberfeld@gil_zilberfeld
Consensus is not that important
@gil_zilberfeld
@gil_zilberfeld@gil_zilberfeld
Let’s do some estimation
@gil_zilberfeld
The cheese marketplace
◉ Buy and sell cheese in our marketplace
◉ Buyers can buy different types of cheese from
different countries with different currencies and get
a single bill
@gil_zilberfeld
The cheese exchange
◉ Each line item comes with cheese type, amount,
price per kilo, and exchange rate against the EUR
◉ Bill Example:
Gouda::10::3.12::GBPPecorino::14::4.25::USDCheddar::8.99::CHF
@gil_zilberfeld
The cheese exchange
◉ Allow adding, modifying and deleting exchange
rates
◉ Process multi-currency bills and calculate the
total in required currency
◉ API based application accessible through mobile
and web and integration with at least 5 suppliers
@gil_zilberfeld
Group Exercise (10 mins)
◉ Examine the test plan
◉ Pick the 10 important items (we’re going to cover
them first)
◉ Define the estimation scale
◉ Keep the personal and group estimation for later
@gil_zilberfeld
Group exercise
◉ Do some planning poker
◉ Write down the variances and why
@gil_zilberfeld@gil_zilberfeld
What is a good estimate?
@gil_zilberfeld
The primary purpose of an estimate is not to predict a project’s outcome.
Steve McConnell, Software Estimation (2006)
It is to determine whether a project’s targets are realistic enough to allow the project to be controlled to meet them.
@gil_zilberfeld@gil_zilberfeld
How confident are you with your estimates?
@gil_zilberfeld
Liz Keogh’s Complexity Scale
1. We all know how to do it
2. Someone on our team has done this before
3. Someone in our company has done this before
4. Someone has done this outside our organization
5. Nobody has done this before.
https://lizkeogh.com/2013/07/21/estimating-complexity/
@gil_zilberfeld
Group exercise
◉ Rate the different items
◉ How confident are you now?
@gil_zilberfeld
Experience based estimation
◉ Our estimates are based on our experience
◉ “I’ve done this before” -> It will probably be faster
than my last time
◉ “You’ve done this before” -> It will probably be
faster with your help
◉ “We haven’t done this before” -> It will take time
@gil_zilberfeld
@gil_zilberfeld
Comparative estimations
◉ We’re optimistic and want to please
◉ We don’t remember what it took last time
◉ We don’t remember how it looked last time
◉ We don’t foresee what will happen
◉ Our estimates suck
@gil_zilberfeld
@gil_zilberfeld
Group exercise: Let’s make history!
◉ Roll the dice for each test case 5 times
(iterations)
◉ For each complexity level :
1 - roll once2,3 – roll twice
4,5 – roll 4 times
• Estimate the next iterations based on history
@gil_zilberfeld@gil_zilberfeld
What is velocity?
And how do you calculate it?
@gil_zilberfeld
Velocity is a measure of the amount of work a team can tackle during a single sprint
https://www.scruminc.com/velocity/
@gil_zilberfeld@gil_zilberfeld
What happens if velocity is a goal?
@gil_zilberfeld
@gil_zilberfeld
But stories are not the same size!
◉ Make them the same size!
◉ If all stories / tasks are the same it’s easy to
count
◉ Count same-size stories over time, that is your
velocity
◉ Then estimation goes away!
@gil_zilberfeld
Projection over estimation
◉ Projection is what we think our progress would
be, based on the recorded past.
◉ We can be more statistically “precise”
◉ But it only works if people understand statistics
@gil_zilberfeld
Monte-Carlo simulation
◉ Based on small sample size, create projections in
different confidence levels
◉ The sample need relevance into the projected
future
@gil_zilberfeld
Demo: Monte Carlo Simulation
◉ Troy Magennis tools
◉ You need relevant data
◉ You need people who understand probabilities
@gil_zilberfeld
Group Exercise - How long will it take?
◉ Use
➢ The rolls as history
➢ Split rate based on complexity
➢ Maximum throughput is # of people on team
- 2
◉ When are all the tasks be done?
@gil_zilberfeld
@gil_zilberfeld@gil_zilberfeld
So what is this #NoEstimates nonsense?
@gil_zilberfeld
Estimates are not the only
tools
@gil_zilberfeld
Trains!
@gil_zilberfeld
Value estimation
@gil_zilberfeld
Write them down!
@gil_zilberfeld
Summary
◉ Estimates are not going away
◉ History is the greatest projector
◉ Use with other tools to make decisions
◉ And if you’re lucky, #NoEstimates await
@gil_zilberfeld
@gil_zilberfeld
Thanks!
ANY QUESTIONS?
You can find me at:
@gil_zilberfeld
http://www.GilZilberfeld.com
http://www.EverydayUnitTesting.com