Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Experiencing Agility:
From Requirements to Planning
November 10, 2008
Mike Cohn
1
® © 2003–2008 Mountain Goat Software®
Founding member and
director of Agile Alliance
and Scrum AllianceFounder of Mountain
Goat Software
Ran my first Scrumproject back in 1995Typical programmer to
manager etc. progression
Mike Cohn - background
Agile coachand trainer
2
® © 2003–2008 Mountain Goat Software®
Course agenda
User stories and the product
backlog
Estimating product backlog items
Release planning
The boss wants it all
The boss wants it in 8 weeks
Agenda
3
® © 2003–2008 Mountain Goat Software®
User Stories On
the Product
Backlog
4
® © 2003–2008 Mountain Goat Software®
The product backlog
The requirements
A list of all desired work on the project
Ideally expressed such that each item has
value to the users or customers of the
product
Prioritized by the product owner
Reprioritized at the start of each iteration
5
® © 2003–2008 Mountain Goat Software®
A sample product backlog
Backlog item Estimate
Allow a guest to make a reservation 3
As a guest, I want to cancel a reservation. 5
As a guest, I want to change the dates of a
reservation.
3
As a hotel employee, I can run RevPAR
reports (revenue-per-available-room)
8
Improve exception handling 8
... 30
... 50
6
® © 2003–2008 Mountain Goat Software®
Sample user stories
As an account holder, I
want to check my savings
account balance.
As an account holder, I
am required to
authenticate myself
before using the system.
As the primary account
holder, I can grant access
to additional users so
that they can see
transactions.
7
® © 2003–2008 Mountain Goat Software®
Non-functional user stories
As one of 10,000
concurrent users, I would
like the system to
perform adequately.
As a first-time user, I
can complete common
operations without using
the help system.
8
® © 2003–2008 Mountain Goat Software®
The product backlog iceberg
Sprint
Release
Future
Releases
Priority
9
® © 2003–2008 Mountain Goat Software®
Stories,themes and epics
User Story
A description of desired
functionality told from the
perspective of the user or
customer.
Theme
A collection of related
user stories.
Epic
A large user story.
10
® © 2003–2008 Mountain Goat Software®
An example
As aVP Marketing, I want to
review the performance of
historical promotional
campaigns so that I can
ones.
As aVP Marketing, I want to
select the timeframe to use
when reviewing the
performance of past
promotional campaigns, so
that I can identify and repeat
As aVP Marketing, I can select
which type of campaigns
(direct mail,TV, email, radio,
etc.) to include when
reviewing the performance of
historical promotional
campaigns.
Clearly an epic
Epics??
11
® © 2003–2008 Mountain Goat Software®
An example
As aVP Marketing, I want to
see information on direct
mailings when reviewing
historical campaigns.
As aVP Marketing, I want to
see information on television
advertising when reviewing
historical campaigns. As aVP Marketing, I want to
see information on email
advertising when reviewing
historical campaigns.
12
® © 2003–2008 Mountain Goat Software®
Conditions of Satisfaction
Added when story is small and is ready to be worked on
These are essentially tests
As a VP Marketing, I want to see
information on television
advertising when reviewing
historical campaigns.
Number of viewers by age range
Number of viewers by income level
13
® © 2003–2008 Mountain Goat Software®
Story-writing workshops
Includes developers, users, customer, others
Brainstorm to generate stories
Goal is to write as many stories as possible
Some will be “implementation ready”
Others will be “epics”
No prioritization at this point
14
® © 2003–2008 Mountain Goat Software®
Start with epics and iterate
As a product owner, I
can work with
multiple projects.
As a product owner, I
can see various
reports.
Product
owner
As a product owner, I
can add, edit and
delete backlog items.
As a product owner, I
can sort the product
backlog.
As a product owner, I
can split a large item
into many smaller
items.
As a product owner, I
can manage the
product backlog.
15
® © 2003–2008 Mountain Goat Software®
ProductVision
Your new company, AgileTool Builders, is considering
developing a tool for agile teams to use in managing
their product and iteration backlogs.
Use this template
“As a <user role>, I want <goal>
so that <reason>.”
1.Identify the main users of such a tool.
2.Write 20 or so epic user stories covering the
breadth of functionality you anticipate in the product.
An example: As the product owner, I can manage the product
backlog.
16
® © 2003–2008 Mountain Goat Software®
Estimating
the Initial
Product Backlog
17
® © 2003–2008 Mountain Goat Software®
How long will it take...
...to read the latest Harry Potter book?
...to drive to Minneapolis?
18
® © 2003–2008 Mountain Goat Software®
Estimate size; derive duration
Size Calculation Duration
300
kilograms
Velocity=
20
300/20 =
15 sprints
19
® © 2003–2008 Mountain Goat Software®
Story points
The “bigness” of a task
How hard it is
How much of it there is
Relative values are what is important:
A login screen is a 2.
A search feature is an 8.
Points are unit-less
As a user, I want to be
able to have some but not
all items in my cart gift
wrapped.
5
20
® © 2003–2008 Mountain Goat Software®
An example
Story Points Done
As the site editor, I can add an article to the site. 5 ✔
As a site visitor, I want to read a new article on
the front page about once a week.
5 ✔
As the site editor, I can include a teaser with each
article.
3
As a site member who has read a teaser on the
front page, I want to read the entire article.
2
As a site visitor, I can do a full-text search of
article body, title, and author name.
13
As a site visitor, I can subscribe to an RSS feed of
articles.
5
As a site visitor, I can post comments about
articles so that others can read them.
13
21
® © 2003–2008 Mountain Goat Software®
Triangulation
multiple other stories.
Group like-sized stories together
Story A
1
pt
2
pts
3
pts
Story C Story D Story F
Story B Story E
22
® © 2003–2008 Mountain Goat Software®
Use the right units
Can you distinguish a 1-point story from a 2?
Can you distinguish a 17 from an 18?
Use units that make sense, such as
1, 2, 3, 5, 8, 13
Stay mostly in a 1-10 range Include 0 and
½ if you
want
, 20, 40, 100
23
® © 2003–2008 Mountain Goat Software®
Planning poker
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 and it’s discussed
Each estimator selects a card that’s his or her estimate
Cards are turned over so all can see them
Discuss differences (especially outliers)
Re-estimate until estimates converge
24
® © 2003–2008 Mountain Goat Software®
Planning poker - an example
Estimator Round 1
Vadim 8
Susan 3
Ann 2
Chris 5
Round 2
5
5
5
8
25
® © 2003–2008 Mountain Goat Software®
Estimate these
Product backlog item Estimate
Remove, sand, re-paint the cabinets.
Replace tile countertop with granite.
Repaint entire kitchen.
Lay shelf paper.
Install recessed lighting.
Install built-in refrigerator.
Replace existing oven with a new one.
Run a water line to existing island and add a sink.
Replace existing simple window with a bay window.
26
® © 2003–2008 Mountain Goat Software®
www.planningpoker.com
Free, or
I wouldn’t
mention it
27
® © 2003–2008 Mountain Goat Software®
Release Planning
28
® © 2003–2008 Mountain Goat Software®
Release planning
To answer questions such as:
How much will be done by June 30?
When can we ship with this set of features?
How many people or teams should be on this
project?
Purpose
Usually covers a 3-6 month horizon
Useful even on shorter projects
Helps iterations combine into something more useful
Very long projects can be split into multiple
milestones
29
® © 2003–2008 Mountain Goat Software®
Two sample release plans
By June, we’ll
here and there
To get this much
done will take
until June or July
Fixed scopeFixed date
30
® © 2003–2008 Mountain Goat Software®
Velocity
A useful long-term measure of the amount of work
completed per sprint
Not a prediction of exactly how much work will be
completed in each sprint
0
10
20
30
40
1 2 3 4 5 6 7 8 9
Sprints
Velocity is measured
in the units you use
to estimate product
backlog items
StoryPoints
31
® © 2003–2008 Mountain Goat Software®
Velocity is best expressed as a
range
0
10
20
30
40
1 2 3 4 5 6 7 8 9
Sprints
Mean (Worst 3) = 28
Mean (Last 8) = 33
Mean (Best 3) = 37
32
® © 2003–2008 Mountain Goat Software®
Use each subsequent column as the number of story points to
assign a product backlog item
Month EEstimmates in Sttory PPointss
1 50 10 70 70 90 70 80 90 80 40 50 70 10 30 50 80 70 100 40 70 20 90 40 80 80
2 40 60 80 10 40 20 40 10 40 40 50 30 80 20 50 90 90 90 50 70 10 10 30 60 30
3 100 90 60 40 100 40 60 50 60 30 40 70 30 30 30 40 70 10 40 60 80 40 70 40 100
4 100 40 40 100 20 40 70 90 20 10 100 100 70 90 50 60 70 20 100 60 30 60 20 80 10
5 10 30 30 10 10 60 10 60 40 70 80 20 30 50 90 90 90 60 40 80 60 10 20 80 60
6 90 80 70 80 30 90 70 20 70 100 70 50 80 100 10 40 100 50 100 60 10 40 20 70 60
7 100 70 50 60 30 50 50 30 30 60 60 40 40 50 10 60 40 70 50 10 20 100 40 100 70
8 70 10 10 80 10 50 20 30 100 50 40 80 50 80 20 40 70 70 10 80 60 80 90 10 50
9 30 90 20 20 70 20 20 10 60 90 20 40 40 40 90 90 80 10 70 30 40 10 80 40 40
10 30 60 60 80 100 40 70 50 10 20 90 40 20 80 20 80 70 30 10 80 80 20 90 10 40
11 50 100 10 90 30 30 30 30 40 70 60 80 60 70 40 20 100 80 90 80 10 70 60 90 100
12 70 10 60 50 100 80 70 40 90 70 50 100 30 90 50 40 10 100 60 40 50 20 40 80 50
Estimating your backlog
33
® © 2003–2008 Mountain Goat Software®
Use a different team member’s month of birth
Use each subsequent column as the team’s velocity for
one iteration
Month
Iterattions
Month
1 2 3 4 5 6 7 8
1 70 80 100 100 80 140 90 90
2 100 80 100 90 110 90 100 80
3 120 120 120 30 100 110 50 140
4 70 80 90 100 110 120 130 140
5 140 130 120 110 100 90 80 70
6 100 100 80 70 130 110 90 80
7 70 80 100 100 80 140 90 90
8 100 80 100 90 110 90 100 80
9 120 120 120 30 100 110 50 140
10 70 80 90 100 110 120 130 140
11 140 130 120 110 100 90 80 70
12 100 100 80 70 130 110 90 80
Your last 8 velocities
34
® © 2003–2008 Mountain Goat Software®
Fixed-scope planning
1. Sum all the backlog items the customer needs
2. Measure or estimate velocity as a range
3. Divide total story points by high velocity
This is the shortest number of iterations it
could take
4. Divide total story points by low velocity
This is the “most” iterations it could take
When will all of this be done?
35
® © 2003–2008 Mountain Goat Software®
Fixed-scope planning : an example
Total story points desired 120
Low velocity 15
High velocity 20
120÷20=
120÷15=
36
® © 2003–2008 Mountain Goat Software®
Fixed-scope commitments
It’s a risk issue
Where do you want to be?
If you write a contract
for to the long duration:
You’ll probably won’t win the contract
But you’ll make money if you do
If you write a contract
for to the short duration:
You’ll probably win the contract
But you may not make money
37
® © 2003–2008 Mountain Goat Software®
Selling the overall plan
You wrote epic user stories to span the overall
system functionality.
You had the team estimate these.
You know your team’s past velocities.
? Your boss wants to know how long it will take to
“get it all.”
You’ll still build the system incrementally, but knowing
the total size is helpful for the initial go / no-go decision
Tip: Give the boss a range of iterations.
38
® © 2003–2008 Mountain Goat Software®
Bonus Question
If I told you that the last project was 500 story
points and cost $1,500,00 to deliver, what is a
rough estimate of the cost of the new project?
?
39
® © 2003–2008 Mountain Goat Software®
Fixed-date planning
1. Determine how many iterations you have
2. Measure or estimate velocity as a range
3. Multiply low velocity × number of iterations
Count off that many points
These are “Will Have” items
4. Multiply high velocity × number of iterations
Count off that many more points
These are “Might Have items”
How much can I get by <date>?
40
® © 2003–2008 Mountain Goat Software®
Fixed-date planning : an example
Desired
release date
30 June
Today’s Date 1 January
Number of
iterations
6 (monthly)
Low
velocity
15
High
velocity
20
6×15
6×20
Will have
Might have
Won’t have
41
® © 2003–2008 Mountain Goat Software®
Fixed-date contracting
6×15
6×20
Will have
Might have
Won’t have
You won’t likely win the contract
But you’ll probably make money
if you do
If you write a contract
for just the will haves:
You will likely win the contract
But probably not make money
on it
If you write a contract that
includes the might haves:
It’s a risk issue
Where do you want to be?
42
® © 2003–2008 Mountain Goat Software®
The impending trade show
Now the boss needs a new version for the big trade
show that is 4 iterations away.
Which features can you “guarantee” will be in for
the trade show?
Which features are likely to be in?
Use the following user
stories and estimates
43
® © 2003–2008 Mountain Goat Software®
Past velocities
Historrical Data
Iteration
number
Velocity
1 20
2 14
3 23
4 18
5 25
6 30
7 12
8 22
9 15
10 23
Your Esstimates
Low
Average
High
44
® © 2003–2008 Mountain Goat Software®
The team’s estimates
Product backlog item Estimate
As the product owner I want to drag items onto a release burndown
chart and see the impact to the release date.
20
As a user at a company with lots of cash, I want your product to support
touch screens so I can put a large one in our team room.
13
As a user I would like performance to be about twice as fast as now
during peak use periods.
20
As a team member, I’d like to be able to do online planning poker
estimating right inside the tool.
13
As a third party, I would like an SOA interface so that I can integrate my
product with yours.
8
As a team member I want RSS support for all changes to tasks or user
8
As the product downer, I want a new report that shows differences in
the product backlog between different time periods.
3
of different stories so that I can reuse them
13
45
® © 2003–2008 Mountain Goat Software®
Mike Cohn
mike@mountaingoatsoftware.com
www.mountaingoatsoftware.com
(720) 890−
(303) 810−2190 (mobile)
46

More Related Content

Experiencing Agility From Requirements to Planning

  • 1. Experiencing Agility: From Requirements to Planning November 10, 2008 Mike Cohn 1
  • 2. ® © 2003–2008 Mountain Goat Software® Founding member and director of Agile Alliance and Scrum AllianceFounder of Mountain Goat Software Ran my first Scrumproject back in 1995Typical programmer to manager etc. progression Mike Cohn - background Agile coachand trainer 2
  • 3. ® © 2003–2008 Mountain Goat Software® Course agenda User stories and the product backlog Estimating product backlog items Release planning The boss wants it all The boss wants it in 8 weeks Agenda 3
  • 4. ® © 2003–2008 Mountain Goat Software® User Stories On the Product Backlog 4
  • 5. ® © 2003–2008 Mountain Goat Software® The product backlog The requirements A list of all desired work on the project Ideally expressed such that each item has value to the users or customers of the product Prioritized by the product owner Reprioritized at the start of each iteration 5
  • 6. ® © 2003–2008 Mountain Goat Software® A sample product backlog Backlog item Estimate Allow a guest to make a reservation 3 As a guest, I want to cancel a reservation. 5 As a guest, I want to change the dates of a reservation. 3 As a hotel employee, I can run RevPAR reports (revenue-per-available-room) 8 Improve exception handling 8 ... 30 ... 50 6
  • 7. ® © 2003–2008 Mountain Goat Software® Sample user stories As an account holder, I want to check my savings account balance. As an account holder, I am required to authenticate myself before using the system. As the primary account holder, I can grant access to additional users so that they can see transactions. 7
  • 8. ® © 2003–2008 Mountain Goat Software® Non-functional user stories As one of 10,000 concurrent users, I would like the system to perform adequately. As a first-time user, I can complete common operations without using the help system. 8
  • 9. ® © 2003–2008 Mountain Goat Software® The product backlog iceberg Sprint Release Future Releases Priority 9
  • 10. ® © 2003–2008 Mountain Goat Software® Stories,themes and epics User Story A description of desired functionality told from the perspective of the user or customer. Theme A collection of related user stories. Epic A large user story. 10
  • 11. ® © 2003–2008 Mountain Goat Software® An example As aVP Marketing, I want to review the performance of historical promotional campaigns so that I can ones. As aVP Marketing, I want to select the timeframe to use when reviewing the performance of past promotional campaigns, so that I can identify and repeat As aVP Marketing, I can select which type of campaigns (direct mail,TV, email, radio, etc.) to include when reviewing the performance of historical promotional campaigns. Clearly an epic Epics?? 11
  • 12. ® © 2003–2008 Mountain Goat Software® An example As aVP Marketing, I want to see information on direct mailings when reviewing historical campaigns. As aVP Marketing, I want to see information on television advertising when reviewing historical campaigns. As aVP Marketing, I want to see information on email advertising when reviewing historical campaigns. 12
  • 13. ® © 2003–2008 Mountain Goat Software® Conditions of Satisfaction Added when story is small and is ready to be worked on These are essentially tests As a VP Marketing, I want to see information on television advertising when reviewing historical campaigns. Number of viewers by age range Number of viewers by income level 13
  • 14. ® © 2003–2008 Mountain Goat Software® Story-writing workshops Includes developers, users, customer, others Brainstorm to generate stories Goal is to write as many stories as possible Some will be “implementation ready” Others will be “epics” No prioritization at this point 14
  • 15. ® © 2003–2008 Mountain Goat Software® Start with epics and iterate As a product owner, I can work with multiple projects. As a product owner, I can see various reports. Product owner As a product owner, I can add, edit and delete backlog items. As a product owner, I can sort the product backlog. As a product owner, I can split a large item into many smaller items. As a product owner, I can manage the product backlog. 15
  • 16. ® © 2003–2008 Mountain Goat Software® ProductVision Your new company, AgileTool Builders, is considering developing a tool for agile teams to use in managing their product and iteration backlogs. Use this template “As a <user role>, I want <goal> so that <reason>.” 1.Identify the main users of such a tool. 2.Write 20 or so epic user stories covering the breadth of functionality you anticipate in the product. An example: As the product owner, I can manage the product backlog. 16
  • 17. ® © 2003–2008 Mountain Goat Software® Estimating the Initial Product Backlog 17
  • 18. ® © 2003–2008 Mountain Goat Software® How long will it take... ...to read the latest Harry Potter book? ...to drive to Minneapolis? 18
  • 19. ® © 2003–2008 Mountain Goat Software® Estimate size; derive duration Size Calculation Duration 300 kilograms Velocity= 20 300/20 = 15 sprints 19
  • 20. ® © 2003–2008 Mountain Goat Software® Story points The “bigness” of a task How hard it is How much of it there is Relative values are what is important: A login screen is a 2. A search feature is an 8. Points are unit-less As a user, I want to be able to have some but not all items in my cart gift wrapped. 5 20
  • 21. ® © 2003–2008 Mountain Goat Software® An example Story Points Done As the site editor, I can add an article to the site. 5 ✔ As a site visitor, I want to read a new article on the front page about once a week. 5 ✔ As the site editor, I can include a teaser with each article. 3 As a site member who has read a teaser on the front page, I want to read the entire article. 2 As a site visitor, I can do a full-text search of article body, title, and author name. 13 As a site visitor, I can subscribe to an RSS feed of articles. 5 As a site visitor, I can post comments about articles so that others can read them. 13 21
  • 22. ® © 2003–2008 Mountain Goat Software® Triangulation multiple other stories. Group like-sized stories together Story A 1 pt 2 pts 3 pts Story C Story D Story F Story B Story E 22
  • 23. ® © 2003–2008 Mountain Goat Software® Use the right units Can you distinguish a 1-point story from a 2? Can you distinguish a 17 from an 18? Use units that make sense, such as 1, 2, 3, 5, 8, 13 Stay mostly in a 1-10 range Include 0 and ½ if you want , 20, 40, 100 23
  • 24. ® © 2003–2008 Mountain Goat Software® Planning poker 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 and it’s discussed Each estimator selects a card that’s his or her estimate Cards are turned over so all can see them Discuss differences (especially outliers) Re-estimate until estimates converge 24
  • 25. ® © 2003–2008 Mountain Goat Software® Planning poker - an example Estimator Round 1 Vadim 8 Susan 3 Ann 2 Chris 5 Round 2 5 5 5 8 25
  • 26. ® © 2003–2008 Mountain Goat Software® Estimate these Product backlog item Estimate Remove, sand, re-paint the cabinets. Replace tile countertop with granite. Repaint entire kitchen. Lay shelf paper. Install recessed lighting. Install built-in refrigerator. Replace existing oven with a new one. Run a water line to existing island and add a sink. Replace existing simple window with a bay window. 26
  • 27. ® © 2003–2008 Mountain Goat Software® www.planningpoker.com Free, or I wouldn’t mention it 27
  • 28. ® © 2003–2008 Mountain Goat Software® Release Planning 28
  • 29. ® © 2003–2008 Mountain Goat Software® Release planning To answer questions such as: How much will be done by June 30? When can we ship with this set of features? How many people or teams should be on this project? Purpose Usually covers a 3-6 month horizon Useful even on shorter projects Helps iterations combine into something more useful Very long projects can be split into multiple milestones 29
  • 30. ® © 2003–2008 Mountain Goat Software® Two sample release plans By June, we’ll here and there To get this much done will take until June or July Fixed scopeFixed date 30
  • 31. ® © 2003–2008 Mountain Goat Software® Velocity A useful long-term measure of the amount of work completed per sprint Not a prediction of exactly how much work will be completed in each sprint 0 10 20 30 40 1 2 3 4 5 6 7 8 9 Sprints Velocity is measured in the units you use to estimate product backlog items StoryPoints 31
  • 32. ® © 2003–2008 Mountain Goat Software® Velocity is best expressed as a range 0 10 20 30 40 1 2 3 4 5 6 7 8 9 Sprints Mean (Worst 3) = 28 Mean (Last 8) = 33 Mean (Best 3) = 37 32
  • 33. ® © 2003–2008 Mountain Goat Software® Use each subsequent column as the number of story points to assign a product backlog item Month EEstimmates in Sttory PPointss 1 50 10 70 70 90 70 80 90 80 40 50 70 10 30 50 80 70 100 40 70 20 90 40 80 80 2 40 60 80 10 40 20 40 10 40 40 50 30 80 20 50 90 90 90 50 70 10 10 30 60 30 3 100 90 60 40 100 40 60 50 60 30 40 70 30 30 30 40 70 10 40 60 80 40 70 40 100 4 100 40 40 100 20 40 70 90 20 10 100 100 70 90 50 60 70 20 100 60 30 60 20 80 10 5 10 30 30 10 10 60 10 60 40 70 80 20 30 50 90 90 90 60 40 80 60 10 20 80 60 6 90 80 70 80 30 90 70 20 70 100 70 50 80 100 10 40 100 50 100 60 10 40 20 70 60 7 100 70 50 60 30 50 50 30 30 60 60 40 40 50 10 60 40 70 50 10 20 100 40 100 70 8 70 10 10 80 10 50 20 30 100 50 40 80 50 80 20 40 70 70 10 80 60 80 90 10 50 9 30 90 20 20 70 20 20 10 60 90 20 40 40 40 90 90 80 10 70 30 40 10 80 40 40 10 30 60 60 80 100 40 70 50 10 20 90 40 20 80 20 80 70 30 10 80 80 20 90 10 40 11 50 100 10 90 30 30 30 30 40 70 60 80 60 70 40 20 100 80 90 80 10 70 60 90 100 12 70 10 60 50 100 80 70 40 90 70 50 100 30 90 50 40 10 100 60 40 50 20 40 80 50 Estimating your backlog 33
  • 34. ® © 2003–2008 Mountain Goat Software® Use a different team member’s month of birth Use each subsequent column as the team’s velocity for one iteration Month Iterattions Month 1 2 3 4 5 6 7 8 1 70 80 100 100 80 140 90 90 2 100 80 100 90 110 90 100 80 3 120 120 120 30 100 110 50 140 4 70 80 90 100 110 120 130 140 5 140 130 120 110 100 90 80 70 6 100 100 80 70 130 110 90 80 7 70 80 100 100 80 140 90 90 8 100 80 100 90 110 90 100 80 9 120 120 120 30 100 110 50 140 10 70 80 90 100 110 120 130 140 11 140 130 120 110 100 90 80 70 12 100 100 80 70 130 110 90 80 Your last 8 velocities 34
  • 35. ® © 2003–2008 Mountain Goat Software® Fixed-scope planning 1. Sum all the backlog items the customer needs 2. Measure or estimate velocity as a range 3. Divide total story points by high velocity This is the shortest number of iterations it could take 4. Divide total story points by low velocity This is the “most” iterations it could take When will all of this be done? 35
  • 36. ® © 2003–2008 Mountain Goat Software® Fixed-scope planning : an example Total story points desired 120 Low velocity 15 High velocity 20 120÷20= 120÷15= 36
  • 37. ® © 2003–2008 Mountain Goat Software® Fixed-scope commitments It’s a risk issue Where do you want to be? If you write a contract for to the long duration: You’ll probably won’t win the contract But you’ll make money if you do If you write a contract for to the short duration: You’ll probably win the contract But you may not make money 37
  • 38. ® © 2003–2008 Mountain Goat Software® Selling the overall plan You wrote epic user stories to span the overall system functionality. You had the team estimate these. You know your team’s past velocities. ? Your boss wants to know how long it will take to “get it all.” You’ll still build the system incrementally, but knowing the total size is helpful for the initial go / no-go decision Tip: Give the boss a range of iterations. 38
  • 39. ® © 2003–2008 Mountain Goat Software® Bonus Question If I told you that the last project was 500 story points and cost $1,500,00 to deliver, what is a rough estimate of the cost of the new project? ? 39
  • 40. ® © 2003–2008 Mountain Goat Software® Fixed-date planning 1. Determine how many iterations you have 2. Measure or estimate velocity as a range 3. Multiply low velocity × number of iterations Count off that many points These are “Will Have” items 4. Multiply high velocity × number of iterations Count off that many more points These are “Might Have items” How much can I get by <date>? 40
  • 41. ® © 2003–2008 Mountain Goat Software® Fixed-date planning : an example Desired release date 30 June Today’s Date 1 January Number of iterations 6 (monthly) Low velocity 15 High velocity 20 6×15 6×20 Will have Might have Won’t have 41
  • 42. ® © 2003–2008 Mountain Goat Software® Fixed-date contracting 6×15 6×20 Will have Might have Won’t have You won’t likely win the contract But you’ll probably make money if you do If you write a contract for just the will haves: You will likely win the contract But probably not make money on it If you write a contract that includes the might haves: It’s a risk issue Where do you want to be? 42
  • 43. ® © 2003–2008 Mountain Goat Software® The impending trade show Now the boss needs a new version for the big trade show that is 4 iterations away. Which features can you “guarantee” will be in for the trade show? Which features are likely to be in? Use the following user stories and estimates 43
  • 44. ® © 2003–2008 Mountain Goat Software® Past velocities Historrical Data Iteration number Velocity 1 20 2 14 3 23 4 18 5 25 6 30 7 12 8 22 9 15 10 23 Your Esstimates Low Average High 44
  • 45. ® © 2003–2008 Mountain Goat Software® The team’s estimates Product backlog item Estimate As the product owner I want to drag items onto a release burndown chart and see the impact to the release date. 20 As a user at a company with lots of cash, I want your product to support touch screens so I can put a large one in our team room. 13 As a user I would like performance to be about twice as fast as now during peak use periods. 20 As a team member, I’d like to be able to do online planning poker estimating right inside the tool. 13 As a third party, I would like an SOA interface so that I can integrate my product with yours. 8 As a team member I want RSS support for all changes to tasks or user 8 As the product downer, I want a new report that shows differences in the product backlog between different time periods. 3 of different stories so that I can reuse them 13 45
  • 46. ® © 2003–2008 Mountain Goat Software® Mike Cohn mike@mountaingoatsoftware.com www.mountaingoatsoftware.com (720) 890− (303) 810−2190 (mobile) 46