Better Estimation Effective Planning - JUNE 3 · So what is this #NoEstimates nonsense?...

Post on 15-Jun-2020

1 views 0 download

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

https://estimation.lunarlogic.io/

@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