innolution agile estimating rubin
TRANSCRIPT
-
8/8/2019 Innolution Agile Estimating Rubin
1/25
Copyright (c) 2006-2007, Innolution, LLC and Mountain Goat Software, Inc. All Rights R
Agile Estimatingby Kenny Rubin
Includes slides from:
-
8/8/2019 Innolution Agile Estimating Rubin
2/25
-
8/8/2019 Innolution Agile Estimating Rubin
3/25
Copyright (c) 2006-2007, Innolution, LLC and Mountain Goat Software, Inc. All Rights Reserved.
2
(303) 827-3333 (office)
(303) 589-5938 (mobile)
InstructorKenny Rubin
Managing Director
Copyright (c) 2006-2007, Innolution, LLC and Mountain Goat Software, Inc. All Rights Reserved.
3
Which Are We Talking About?
4Automate tests
5Write tests
12Code middle tier
6Write test fixture
8Code the UI
2As a frequent flyer,
I want to
2As a frequent flyer,
I want to
5As a frequent flyer,
I want to
5As a frequent flyer,
I want to
3As a frequent flyer,
I want to
Sprint2
Sprint1
Product Backlog Sprint Backlog
Weretalkingabouttheserightnow
-
8/8/2019 Innolution Agile Estimating Rubin
4/25
Copyright (c) 2006-2007, Innolution, LLC and Mountain Goat Software, Inc. All Rights Reserved.
4
Estimates What You Need toKnow
Estimates should be created by the team
Not by the most senior developer
You need estimates before you canprioritize
Estimates are not commitments
Every estimates comes with a probability
Estimates should be of relative size,rather than absolute size
Copyright (c) 2006-2007, Innolution, LLC and Mountain Goat Software, Inc. All Rights Reserved.
5
Estimate Size; Derive Duration
SizeSize CalculationCalculation DurationDuration
300 Points300 PointsVelocityVelocity
==
2020
300/20 =300/20 =
1515
SprintsSprints
-
8/8/2019 Innolution Agile Estimating Rubin
5/25
Copyright (c) 2006-2007, Innolution, LLC and Mountain Goat Software, Inc. All Rights Reserved.
6
Traditional and agile measure sizedifferently
Traditionalmeasuresof size
Measures of Size
Lines of CodeFunction Points
Agilemeasuresof size
Story pointsIdeal days
Copyright (c) 2006-2007, Innolution, LLC and Mountain Goat Software, Inc. All Rights Reserved.
7
StoryPointsStoryPoints
-
8/8/2019 Innolution Agile Estimating Rubin
6/25
Copyright (c) 2006-2007, Innolution, LLC and Mountain Goat Software, Inc. All Rights Reserved.
8
Story Points
The bigness of a task
Influenced by
How hard it is How much of it there is
Relative values are whatis important:
A login screen is a 2 A search feature is an 8
Points are unit-less
As a user, I want to beable to have some but notall items in my cart giftwrapped.
As a user, I want to beable to have some but notall items in my cart giftwrapped.
5
Copyright (c) 2006-2007, Innolution, LLC and Mountain Goat Software, Inc. All Rights Reserved.
9
Where do we get the points?
Mostly we make them up!
Suppose were sailing
we see this island through our telescope
How far away is it?
-
8/8/2019 Innolution Agile Estimating Rubin
7/25
Copyright (c) 2006-2007, Innolution, LLC and Mountain Goat Software, Inc. All Rights Reserved.
10
How far away is the island?
Theres nothing else in sight so theresnothing to compare it to
Hard to guess then how many milesaway it might be
So, lets just say the distance is 12
Copyright (c) 2006-2007, Innolution, LLC and Mountain Goat Software, Inc. All Rights Reserved.
11
Lets add more islands
0 12 24
Distances to otherislands are
estimated relativeto the first island
Distances to otherislands are
estimated relativeto the first island
-
8/8/2019 Innolution Agile Estimating Rubin
8/25
Copyright (c) 2006-2007, Innolution, LLC and Mountain Goat Software, Inc. All Rights Reserved.
12
What do we know and not know?
We know...
That three islands are about the same distance (12)away
That another island is about twice as far away
We dont know...
how long it will take us to sail a distance of 12
But we know...
That we can sail to all the islands 12 away in aboutthe same time
That it will take twice as long to sail to the islandthat is 24 away
Copyright (c) 2006-2007, Innolution, LLC and Mountain Goat Software, Inc. All Rights Reserved.
13
Estimating the first voyage
0 12
The captain asks us howlong it will take to get to thefirst island
Its 12 away We guess we sail at 2 per
hour so we say 6 hours
The captain asks us howlong it will take to get to thefirst island
Its 12 away We guess we sail at 2 per
hour so we say 6 hours
-
8/8/2019 Innolution Agile Estimating Rubin
9/25
Copyright (c) 2006-2007, Innolution, LLC and Mountain Goat Software, Inc. All Rights Reserved.
14
We sail to the first island
0 12
Sailing to the first islandtakes 6 hours.
We were right!
We now know that we sail2 units per hour, or 12units in 6 hours.
Sailing to the first islandtakes 6 hours.
We were right!
We now know that we sail2 units per hour, or 12units in 6 hours.
Copyright (c) 2006-2007, Innolution, LLC and Mountain Goat Software, Inc. All Rights Reserved.
15
How long will it take?
0 12
6hou
rs
We return to port. How long will it take to sail
to the second island? The third? The far island?
We return to port. How long will it take to sail
to the second island? The third? The far island?
-
8/8/2019 Innolution Agile Estimating Rubin
10/25
-
8/8/2019 Innolution Agile Estimating Rubin
11/25
-
8/8/2019 Innolution Agile Estimating Rubin
12/25
Copyright (c) 2006-2007, Innolution, LLC and Mountain Goat Software, Inc. All Rights Reserved.
20
Animal P ictures
Bear Giraffe Gorilla Hippopotamus
Kangaroo Lion Tiger Rhinoceros
Copyright (c) 2006-2007, Innolution, LLC and Mountain Goat Software, Inc. All Rights Reserved.
21
IdealTimeIdealTime
-
8/8/2019 Innolution Agile Estimating Rubin
13/25
Copyright (c) 2006-2007, Innolution, LLC and Mountain Goat Software, Inc. All Rights Reserved.
22
Ideal Time
How long something would take if:
Its all you worked on
You had no interruptions And everything you need is available
The ideal time of an American football gameis 60 minutes
Four 15-minute quarters
The elapsed time is much longer (3+ hours?)
Copyright (c) 2006-2007, Innolution, LLC and Mountain Goat Software, Inc. All Rights Reserved.
23
Monday has 8 hours Each week has 40 hours
Ideally
Elapsed Time vs. Ideal Time
So,thisdeveloperwill
onlymakefourhoursof
progressonMonday.
Itwilltaketwocalendar
daystocompleteone
idealdayofwork.
Howlongwillthistake?Areyou
answeringwhatisbeingasked?
Monday has: 1 hour of meetings 3 hours of email 4 hours left for the project
But instead...
-
8/8/2019 Innolution Agile Estimating Rubin
14/25
Copyright (c) 2006-2007, Innolution, LLC and Mountain Goat Software, Inc. All Rights Reserved.
24
Ideal Time vs. Elapsed Time
Its easier to estimate in ideal time
Its too hard to estimate directly in
elapsed time Need to consider all the factors that affect
elapsed time at the same time youreestimating
Copyright (c) 2006-2007, Innolution, LLC and Mountain Goat Software, Inc. All Rights Reserved.
25
Specialization
First, dont worry about it too much
Were usually better off with fairly rapid,imprecise estimates than spending moretime
Second
Just add up the components and reportone total estimate of ideal days
= 8
= 8
= 8
-
8/8/2019 Innolution Agile Estimating Rubin
15/25
Copyright (c) 2006-2007, Innolution, LLC and Mountain Goat Software, Inc. All Rights Reserved.
26
The Great Debate
Story points or ideal days?Story points or ideal days?
Which do you prefer:
Copyright (c) 2006-2007, Innolution, LLC and Mountain Goat Software, Inc. All Rights Reserved.
27
Comparing the ApproachesInitial Ease of Explanation
Easy Hard
Initial Ease of Estimating
Easy Hard
Confront Time Wasting Activities
Easy Hard
Risk of Misinterpretation
Low High
True Measure of Size
True False
Estimates Decay
More Likely Less Likely
Could Imply False Level of Precision
More Likely Less Likely
Ideal Days
Story Points
-
8/8/2019 Innolution Agile Estimating Rubin
16/25
-
8/8/2019 Innolution Agile Estimating Rubin
17/25
Copyright (c) 2006-2007, Innolution, LLC and Mountain Goat Software, Inc. All Rights Reserved.
30
Triangulation
Confirm estimates by comparing the storyto multiple other stories.
Group like-sized stories on table orwhiteboard
Story AStory A
3pts
5pts
8pts
Story CStory C Story DStory D Story FStory F
Story BStory B Story EStory E
Copyright (c) 2006-2007, Innolution, LLC and Mountain Goat Software, Inc. All Rights Reserved.
31
Disaggregation
Breaking a big story into smaller stories
You know how long the smaller tasks take So, disaggregating to something you know lets
you estimate something bigger you dont know
Sometimes very useful
But disaggregating too far causesproblems
Forgotten pieces Summing lots of small errors can be big
number
-
8/8/2019 Innolution Agile Estimating Rubin
18/25
Copyright (c) 2006-2007, Innolution, LLC and Mountain Goat Software, Inc. All Rights Reserved.
32
How Much Effort?
A little efforts helps a lot
A lot of effort only helps a little more
Effort
Accuracy
Copyright (c) 2006-2007, Innolution, LLC and Mountain Goat Software, Inc. All Rights Reserved.
33
Use the Right Units
Can you distinguish a 1-point storyfrom a 2?
Can you distinguish a 17 from an 18?
Use units that make sense, such as
1, 2, 3, 5, 8, 13 1, 2, 4, 8
Stay mostly in a 1-10 rangeInclude0
and ifyou
want
-
8/8/2019 Innolution Agile Estimating Rubin
19/25
Copyright (c) 2006-2007, Innolution, LLC and Mountain Goat Software, Inc. All Rights Reserved.
34
time
1
2
time
Remember Estimates are Binned
Copyright (c) 2006-2007, Innolution, LLC and Mountain Goat Software, Inc. All Rights Reserved.
35
Planning Poker Overview
An iterative approach to estimating
Steps
Each estimator is given a deck of cards,each card has a valid estimate written on it
Customer/Product owner reads a story andits discussed briefly
Each estimator selects a card thats his orher estimate
Cards are turned over so all can see them Discuss differences (especially outliers) Re-estimate until estimates converge
-
8/8/2019 Innolution Agile Estimating Rubin
20/25
Copyright (c) 2006-2007, Innolution, LLC and Mountain Goat Software, Inc. All Rights Reserved.
36
Planning Poker - An Example
Estimator Round 1 Round 2
Susan 3 5
Vadim 8 5
Ann 2 5Chris 5 8
Copyright (c) 2006-2007, Innolution, LLC and Mountain Goat Software, Inc. All Rights Reserved.
37
Why P lanning Poker Works
1 Jrgensen, Magne. 2004. A Review of Studies on Expert Estimation of Software DevelopmentEffort.
2 Hagafors, R., and B. Brehmer. 1983. Does Having to Justify Ones Decisions Change theNature of the Decision Process?
3 Brenner, et al. 1996. On the Evaluation of One-sided Evidence.4 Miranda, Eduardo. 2001. Improving Subjective Estimates Using Paired Comparisons.5 Saaty, Thomas. 1996. Multicriteria Decision Making: The Analytic Hierarchy Process.
Those who do the work, estimate thework1
Estimators are required to justifyestimates2, 3
Focuses most estimates within anapproximate one order of magnitude4,5
Those who do the work, estimate thework1
Estimators are required to justifyestimates2, 3
Focuses most estimates within anapproximate one order of magnitude4,5
-
8/8/2019 Innolution Agile Estimating Rubin
21/25
Copyright (c) 2006-2007, Innolution, LLC and Mountain Goat Software, Inc. All Rights Reserved.
38
Why P lanning Poker Works
Combining of individual estimates6 Through group discussion7
Leads to better estimates Emphasizes relative rather than absoluteestimating
Estimates are constrained to a set of values so wedont waste time in meaningless arguments
Everyones opinion is heard Its quick and fun
Combining of individual estimates6 Through group discussion7
Leads to better estimates Emphasizes relative rather than absoluteestimating
Estimates are constrained to a set of values so wedont waste time in meaningless arguments
Everyones opinion is heard Its quick and fun
6 Hoest, Martin, and Claes Wohlin. 1998. An Experimental Study of IndividualSubjective Effort Estimations and Combinations of the Estimates.
7 Jrgensen, Magne, and Kjetil Molkken. 2002. Combination of SoftwareDevelopment Effort Prediction Intervals: Why, When and How?
Copyright (c) 2006-2007, Innolution, LLC and Mountain Goat Software, Inc. All Rights Reserved.
39
www.planningpoker.com
Free
to use
Free
to use
-
8/8/2019 Innolution Agile Estimating Rubin
22/25
Copyright (c) 2006-2007, Innolution, LLC and Mountain Goat Software, Inc. All Rights Reserved.
40
Re-estimatingRe-estimating
Copyright (c) 2006-2007, Innolution, LLC and Mountain Goat Software, Inc. All Rights Reserved.
41
Re-estimating
We expectvelocity = 12
We expectvelocity = 12
But we finishhalf that much
But we finishhalf that much
33
3333
33
3333
3333
3333
3333
3333
3333
-
8/8/2019 Innolution Agile Estimating Rubin
23/25
Copyright (c) 2006-2007, Innolution, LLC and Mountain Goat Software, Inc. All Rights Reserved.
42
But a velocity of 6doesnt seem right;so we double those
stories
But a velocity of 6doesnt seem right;so we double those
stories
But if all stories arethe same size, we
need to double all ofthem
But if all stories arethe same size, we
need to double all ofthem
6666
3333
3333
3333
6666
66666
666
6666
Copyright (c) 2006-2007, Innolution, LLC and Mountain Goat Software, Inc. All Rights Reserved.
43
Six Sw imming Stories
5As a coach, I can have the system recommend whoshould swim in each event subject to restrictions abouthow many events a swimmer can participate in.
F
1As a coach, I can upload meet results from a file exportedfrom the timing system used at the meet.
E
3As a coach, I can see a text report showing eachswimmers best time in each event.D
3As a swimmer, I can see a pie chart showing how manyfirst, second, third, and lower places Ive finished in.
C
5As a coach, I can see a line chart showing the progressover the season of all swimmers in a particular event.
B
3As a swimmer, I can see a line chart of my times for aparticular event.
A
-
8/8/2019 Innolution Agile Estimating Rubin
24/25
-
8/8/2019 Innolution Agile Estimating Rubin
25/25
Copyright (c) 2006-2007, Innolution, LLC and Mountain Goat Software, Inc. All Rights Reserved.
46
A Third Scenario
Re-estimating when relative size changes 33
Whatcanyou
concludeabout
re-estimating
fromthesethreescenarios?
Stories A, B, and C are all graphing stories; graphing istwice as hard as thought so double all these
What was the velocity of the first Sprint? Can the team do that much in the second Sprint?
Summary
Estimates should be created by the team
Not by the most senior developer
You need estimates before you canprioritize
Estimates are not commitments Every estimate comes with a probability
Estimates should be of relative size,rather than absolute size