innolution agile estimating rubin

Upload: sam-hwang

Post on 09-Apr-2018

216 views

Category:

Documents


0 download

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

    [email protected]

    (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