agile estimating: perspectives & techniquesfiles.meetup.com/1298079/bernsohn - estimating...
TRANSCRIPT
Agile Estimating: Perspectives & Techniques
Glenn BernsohnMarch 2011
Wednesday, March 23, 2011
Are estimates important?
2
Discussion
Wednesday, March 23, 2011
Are estimates important? How do you estimate work today?
2
Discussion
Wednesday, March 23, 2011
Are estimates important? How do you estimate work today? What do you estimate?
2
Discussion
Wednesday, March 23, 2011
Are estimates important? How do you estimate work today? What do you estimate? How “good” are your estimates?
2
Discussion
Wednesday, March 23, 2011
Estimates are only estimates..they depend upon◦ Who’s doing the work◦ Have they done this before◦ What their experience level is◦ Whether the team members works together before◦ How stable the technology is◦ How stable the requirements are
◦ “I should be able to….” we are generally very optimistic
Actuals are actuals !
Perspectives
3
Wednesday, March 23, 2011
Requirements missing, changing, more complex than thought New process (e.g. Agile) New tools (e.g. Visual Studio Team, java, Ruby, ORM, etc) Team has not worked together as a whole Estimates vary widely based on knowledge & experience Non-verbal assumptions are made in the estimate Risk impacts of unknowns (new infrastructure: e.g. rules
engine? workflow engine?) In-flight resource changes Skill set of team members Effects of time-slicing
Why is Estimating Difficult & Error Prone?
4
Wednesday, March 23, 2011
What Can We Expect From Our Estimating Efforts?
Boehm, Barry W, Software Engineering Economics, Prentice-Hall, 1981
• It’s not what you know that hard to estimate, it’s what you don’t know
• We’re asked to estimate when we have the least information
• Estimates are still only estimates
• Expectations can be managed to reflect the realities of our ability to estimate accurately
5
Wednesday, March 23, 2011
Effects of Effort on Accuracy
Boehm, Barry W, Software Engineering Economics, Prentice-Hall, 1981
ACCURACY
Effort
6
Wednesday, March 23, 2011
7
Estimating Time Horizons
Wednesday, March 23, 2011
Assume you have somehow gathered a list of stories that are prioritized and categorized
Estimates are usually done twice (at least)◦ At the start of the project during Inception (all stories)◦ At the start of each Sprint in the SPM (just the Sprint’s stories)
Those who do the work should do the estimates The whole team plus the customer should participate Base estimates are for story development only Team agrees on estimating unit of measure Ideally, stories should be small enough to complete in <1
week (why do you think that is?)◦ During Inception, this may not be possible
Pragmatic Agile Estimating
8
Wednesday, March 23, 2011
You have options◦ If using “full team”, estimate story development only◦ If using “scrum-a-fall”, estimate cycle for each story
You also need to plan for ◦ Governance activities (e.g. approval gates)◦ Dependencies◦ Technical tasks◦ Final UAT◦ Unknowns (load factor & risk)
What Should You Estimate?
9
Wednesday, March 23, 2011
First agree on a unit of measure◦ Story points (relative size)◦ Ideal hours or days◦ Pairing sessions
Select an appropriate technique◦ RPS or RSP◦ Planning Poker◦ Comparative◦ Wideband Delphi◦ High/Low
Apply Risk Base Scheduling
Survey of Techniques
10
Wednesday, March 23, 2011
If you have large groups of “types” of things that can be compared….◦ Estimate the total for one group◦ Derive estimates for the remainder via comparison
E.g. Supporting different business rules by state◦ Estimate one state◦ Estimate complexity / effort differences by state
Estimate relative sizes across the whole group and apply a time factor per unit
Comparative
11
Wednesday, March 23, 2011
12
Estimation Exercise
Pig
Mouse
Horse
ElephantChicken
Great Dane
Wednesday, March 23, 2011
◦ Exercise: estimate the relative sizes of these…◦ Which is lightest? heaviest? ◦ How much heaver is the heaviest?◦ Estimate the rest…..
Then you can more easily estimate their weight in ounces or another unit of measure
12
Estimation Exercise
Pig
Mouse
Horse
ElephantChicken
Great Dane
Wednesday, March 23, 2011
One Group Technique: Rock Paper Scissors
Better for Sprint Planning Meeting estimating
13
Wednesday, March 23, 2011
0, .5, 1, 2, 3, 5, 8, 13, 20, 50, 80, ?, coffee
Planning Poker
Better for planning phase estimating (Inception)
14
Wednesday, March 23, 2011
Wideband Delphi
15
Wednesday, March 23, 2011
Step 1: discuss items, separate groups estimate◦ Best case◦ Worst case◦ Likely case
Wideband Delphi
15
Wednesday, March 23, 2011
Step 1: discuss items, separate groups estimate◦ Best case◦ Worst case◦ Likely case
Step 2: groups present & discuss estimates
Wideband Delphi
15
Wednesday, March 23, 2011
Step 1: discuss items, separate groups estimate◦ Best case◦ Worst case◦ Likely case
Step 2: groups present & discuss estimates Step 3: repeat steps 1 & 2 at least once
Wideband Delphi
15
Wednesday, March 23, 2011
Step 1: discuss items, separate groups estimate◦ Best case◦ Worst case◦ Likely case
Step 2: groups present & discuss estimates Step 3: repeat steps 1 & 2 at least once Step 4: calculate final numbers◦ Estimate= (optimistic + pessimistic + 4*most
likely) / 6◦ Likely deviation = (pessimistic – optimistic) / 6
Wideband Delphi
15
Wednesday, March 23, 2011
Story Best Worst Likely Estimate123456789Etc…..
16
Wideband Delphi Template
Wednesday, March 23, 2011
17
Release Hi/Lo Estimation
Wednesday, March 23, 2011
Estimators (typically the development team) sit in a circle and are presented release stories
17
Release Hi/Lo Estimation
Wednesday, March 23, 2011
Estimators (typically the development team) sit in a circle and are presented release stories
Each member has a hi/lo estimation sheet
17
Release Hi/Lo Estimation
Wednesday, March 23, 2011
Estimators (typically the development team) sit in a circle and are presented release stories
Each member has a hi/lo estimation sheet Estimates are initially personal and should not be shared
17
Release Hi/Lo Estimation
Wednesday, March 23, 2011
Estimators (typically the development team) sit in a circle and are presented release stories
Each member has a hi/lo estimation sheet Estimates are initially personal and should not be shared Conversation should be kept to a minimum, provide your gut reaction
to each story◦ You may want to ask experts on your team (which is more than just the
developers) minor details◦ You may to ask if functionality has already been developed/spiked
previously
17
Release Hi/Lo Estimation
Wednesday, March 23, 2011
Estimators (typically the development team) sit in a circle and are presented release stories
Each member has a hi/lo estimation sheet Estimates are initially personal and should not be shared Conversation should be kept to a minimum, provide your gut reaction
to each story◦ You may want to ask experts on your team (which is more than just the
developers) minor details◦ You may to ask if functionality has already been developed/spiked
previously Your facilitator will prompt you as to whether you have enough
information to estimate (e.g. is the current conversation really contributing to your estimate)
17
Release Hi/Lo Estimation
Wednesday, March 23, 2011
Estimators (typically the development team) sit in a circle and are presented release stories
Each member has a hi/lo estimation sheet Estimates are initially personal and should not be shared Conversation should be kept to a minimum, provide your gut reaction
to each story◦ You may want to ask experts on your team (which is more than just the
developers) minor details◦ You may to ask if functionality has already been developed/spiked
previously Your facilitator will prompt you as to whether you have enough
information to estimate (e.g. is the current conversation really contributing to your estimate)
Remember you have a hi and low estimate, so uncertainty can be covered by increasing your high estimate
17
Release Hi/Lo Estimation
Wednesday, March 23, 2011
When Method Unit of MeasureUnit of MeasureUnit of MeasureUnit of Measure High/Low
Pts IDD's IDH'sPairing
Sessions
InceptionPlanning Poker Y Y N N Y (opt)
Comparative Y N N N N Hi/Low Y Y N N Y
Wideband Delphi Y Y N N Y (opt)
Sprint RPS N N Y Y N
Planning Poker N N Y Y N
18
Survey of Techniques
Wednesday, March 23, 2011
Create a base estimate (Nano %) Identify risk factors…◦ Effective Development Tools◦ Employee Turnover◦ Size Inflation◦ Specification Flaw◦ Productivity Variation◦ Relative◦ Probability◦ User defined risks…..
Simulate likely outcomes. Update after every Iteration
Risk Based Scheduling
Ref: Waltzing with Bears – DeMarco & Lister
Nano%
RelativeProbability
Delivery expected somewhere in this period
19
Wednesday, March 23, 2011
Consider including additional schedule modifiers either at the story level (harder) or at the category level◦ Complexity: the higher the perceived complexity, the more
likely your estimate will vary◦ Volatility: the degree to which you think the requirements of
the story are likely to change
Try using a simple low, medium, high ranking and assign % adjustments later
Scheduling Modifiers
20
Wednesday, March 23, 2011
Project expected, best, and worse cases◦ Do for each major area◦ “Add” them up
Defining “Certainty”
BestExpected
Worse
Function 1
21
Wednesday, March 23, 2011
Project expected, best, and worse cases◦ Do for each major area◦ “Add” them up
Defining “Certainty”
BestExpected
Worse
Function 1
BestExpected
Worse
Function 3
BestExpected
Worse
Function 2
21
Wednesday, March 23, 2011
Project expected, best, and worse cases◦ Do for each major area◦ “Add” them up
Defining “Certainty”
BestExpected
Worse
Function 1
BestExpected
Worse
Function 3
BestExpected
Worse
Function 2
50%
Overall
67% 95% 99%
21
Wednesday, March 23, 2011
By now you should have (recorded in a spreadsheet or other tool):◦ A list of stories with estimates◦ A list of associated assumptions
Technical Functional Staffing
◦ A list of questions◦ A list of risks◦ Optionally a list of estimate modifiers
Net-net: you have a set of estimates reflecting the collective knowledge of the problem domain plus the experience of the team
Next you’ll need to plan a release schedule
Estimating Outputs
22
Wednesday, March 23, 2011
Books◦ Waltzing With Bears: Managing Risk on Software
Projects by Tom Demarco, Timothy Lister◦ Agile Estimating and Planning by Mike Cohn◦ Boehm, Barry W, Software Engineering Economics,
Prentice-Hall, 1981 Articles◦ Wideband Delphi◦ Agile 2006, Agile 2005, XP……
References
23
Wednesday, March 23, 2011