5. @gil_zilberfeld
“It always takes longer than
you expect,
even when you take into
account
Hofstadter's Law”
Douglas Hofstadter
Professor of cognitive
science
7. @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.
21. @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?
32. @gil_zilberfeld
I am not sure I
invented story
points,
but if I did, I’m
sorry now.
Ron Jeffries
33. @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
45. @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
46. @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::GBP
Pecorino::14::4.25::USD
Cheddar::8.99::CHF
47. @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
48. @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
51. @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.
53. @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/
55. @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
57. @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
59. @gil_zilberfeld
Group exercise: Let’s make history!
◉ Roll the dice for each test case 5 times
(iterations)
◉ For each complexity level :
1 - roll once
2,3 – roll twice
4,5 – roll 4 times
• Estimate the next iterations based on history
64. @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!
65. @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
67. @gil_zilberfeld
Demo: Monte Carlo Simulation
◉ Troy Magennis tools
◉ You need relevant data
◉ You need people who understand probabilities
68. @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?
76. @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