You are on page 1of 46

Experiencing Agility:

From Requirements to Planning

Mike Cohn
November 10, 2008
1

Mike Cohn - background


Agile c
oach
and tra
iner
Found
in

directo g member a
n
r
and Sc of Agile Allia d
nce
rum Al
liance
Found
er of M
ountai
Goat S
n
oftwar
e
Ran m
y
projec first Scrum
t back
in 199
5
Typica
l
manag programmer
er etc.
to
progre
ssion

20032008 Mountain Goat Software


2

Course agenda
Agenda
K User stories and the product

backlog
K Estimating product backlog items
K Release planning
K The boss wants it all
K The boss wants it in 8 weeks

20032008 Mountain Goat Software


3

n
O
s
e
i
r
o
t
S
r
e
s
U
t
c
u
d
o
r
P
the
g
o
l
k
c
a
B

20032008 Mountain Goat Software


4

The product backlog


K The requirements
K A list of all desired work on the project
K Ideally expressed such that each item has
value to the users or customers of the
product

K Prioritized by the product owner


K Reprioritized at the start of each iteration

20032008 Mountain Goat Software


5

A sample product backlog


Backlog item

Estimate

Allow a guest to make a reservation

As a guest, I want to cancel a reservation.

As a guest, I want to change the dates of a


reservation.

As a hotel employee, I can run RevPAR


reports (revenue-per-available-room)

Improve exception handling

...
...

30
50
20032008 Mountain Goat Software
6

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
As the primary account
before using the system.
holder, I can grant access
to additional users so
that they can see
transactions.

20032008 Mountain Goat Software


7

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.

20032008 Mountain Goat Software


8

The product backlog iceberg


Sprint
Priority

Release
Future
Releases

20032008 Mountain Goat Software


9

Stories, themes and epics


User Story

Theme
A collection of related
user stories.

A description of desired
functionality told from the
perspective of the user or
customer.

Epic
A large user story.

20032008 Mountain Goat Software


10

An example
As a VP Marketing, I want to
review the performance of
historical promotional
campaigns so that I can
945>D96I1>4B5@51D@B?SD12<5
ones.
Clearly an epic

As a VP Marketing, I want to
select the timeframe to use
when reviewing the
performance of past
promotional campaigns, so
that I can identify and repeat
@B?SD12<5?>5C
Epics??

As a VP Marketing, I can select


which type of campaigns
(direct mail, TV, email, radio,
etc.) to include when
reviewing the performance of
historical promotional
campaigns.
20032008 Mountain Goat Software
11

An example
As a VP Marketing, I want to
see information on direct
mailings when reviewing
historical campaigns.
As a VP Marketing, I want to
see information on television
advertising when reviewing
historical campaigns. As a VP Marketing, I want to
see information on email
advertising when reviewing
historical campaigns.

20032008 Mountain Goat Software


12

Conditions of Satisfaction
K

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
Number of viewers by age range
Number of viewers by income level
historical campaigns.

20032008 Mountain Goat Software


13

Story-writing workshops
K Includes developers, users, customer, others
K Brainstorm to generate stories
K Goal is to write as many stories as possible
K
K

Some will be implementation ready


Others will be epics

K No prioritization at this point

20032008 Mountain Goat Software


14

Start with epics and iterate


As a product owner, I
can work with
multiple projects.

Product
owner

As a product owner, I
can add, edit and
delete backlog items.

As a product owner, I
can manage the
product backlog.

As a product owner, I
can sort the product
backlog.

As a product owner, I
can see various
reports.

As a product owner, I
can split a large item
into many smaller
items.

20032008 Mountain Goat Software


15

Product Vision
Your new company, Agile Tool Builders, is considering
developing a tool for agile teams to use in managing
their product and iteration backlogs.
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.

Use this template


As a <user role>, I want <goal>
so that <reason>.

20032008 Mountain Goat Software


16

g
n
i
t
a
m
i
t
Es
l
a
i
t
i
n
I
the
g
o
l
k
c
a
B
t
c
u
d
o
r
P

20032008 Mountain Goat Software


17

How long will it take...


K ...to read the latest Harry Potter book?
K ...to drive to Minneapolis?

20032008 Mountain Goat Software


18

Estimate size; derive duration

Size

Calculation

Duration

300
kilograms

Velocity=
20

300/20 =
15 sprints

20032008 Mountain Goat Software


19

Story points
As a user, I want to be
able to have some but not
all items in my cart gift
wrapped.

K The bigness of a task


K ">TE5>3542I
K How hard it is
K How much of it there is 5
K Relative values are what is important:
K A login screen is a 2.
K A search feature is an 8.
K Points are unit-less

20032008 Mountain Goat Software


20

An example
Story
As the site editor, I can add an article to the site.
As a site visitor, I want to read a new article on
the front page about once a week.
As the site editor, I can include a teaser with each
article.
As a site member who has read a teaser on the
front page, I want to read the entire article.
As a site visitor, I can do a full-text search of
article body, title, and author name.
As a site visitor, I can subscribe to an RSS feed of
articles.
As a site visitor, I can post comments about
articles so that others can read them.

Points Done
5

3
2
13
5
13
20032008 Mountain Goat Software
21

Triangulation
K
K

?>SB=5CD9=1D5C2I3?=@1B9>7D85CD?BID?
multiple other stories.
Group like-sized stories together
3
pts

Story A

2
pts

Story C

Story D

1
pt

Story B

Story E

Story F

20032008 Mountain Goat Software


22

Use the right units


K Can you distinguish a 1-point story from a 2?
K Can you distinguish a 17 from an 18?
K Use units that make sense, such as
K

1, 2, 3, 5, 8, 13, 20, 40, 100

K Stay mostly in a 1-10 range

Include 0 and
if you
want
20032008 Mountain Goat Software
23

Planning poker
K An iterative approach to estimating
K 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 its discussed


2B95TI

K
K
K
K

Each estimator selects a card thats his or her estimate


Cards are turned over so all can see them
Discuss differences (especially outliers)
Re-estimate until estimates converge
20032008 Mountain Goat Software
24

Planning poker - an example

Estimator
Susan
Vadim
Ann
Chris

Round 1

Round 2

3
8
2
5

5
5
5
8

20032008 Mountain Goat Software


25

Estimate these
Product backlog item

Estimate

">CD1<<1>5G81B4G??4T??B
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.

20032008 Mountain Goat Software


26

www.planningpoker.com

Free, or
I wouldnt
mention it

20032008 Mountain Goat Software


27

g
n
i
n
n
a
l
P
Release

20032008 Mountain Goat Software


28

Release planning
Purpose
To answer questions such as:
K How much will be done by June 30?
K When can we ship with this set of features?
K How many people or teams should be on this
project?

K Usually covers a 3-6 month horizon


K Useful even on shorter projects

K Helps iterations combine into something more useful

K Very long projects can be split into multiple


milestones

20032008 Mountain Goat Software


29

Two sample release plans


Fixed date

By June, well
S>9C825DG55>
here and there

Fixed scope

To get this much


done will take
until June or July

20032008 Mountain Goat Software


30

Velocity
K

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
Story Points

40
Velocity is measured
in the units you use
to estimate product
backlog items

30
20
10
0

1 2 3 4 5 6 7 8 9
Sprints

20032008 Mountain Goat Software


31

Velocity is best expressed as a


range
40

Mean (Best 3) = 37
Mean (Last 8) = 33

30

Mean (Worst 3) = 28

20

10

Sprints

20032008 Mountain Goat Software


32

Estimating your backlog


K
K
K

$5DQC@ED5CD9=1D5C?>1<<5@93CI?EGB?D54EB9>7D85SBCD5H5B39C5
(93;?>5D51==5=25BQC=?>D8?629BD8S>49D9>D85SBCD3?<E=>
Use each subsequent column as the number of story points to
assign a product backlog item
/B1@213;D?D85SBCD3?<E=>96>535CC1BI

Month
1
2
3
4
5
6
7
8
9
10
11
12

Estim
E
mates in Sttory P
Pointss
50
40
100
100
10
90
100
70
30
30
50
70

10
60
90
40
30
80
70
10
90
60
100
10

70 70 90
80 10 40
60 40 100
40 100 20
30 10 10
70 80 30
50 60 30
10 80 10
20 20 70
60 80 100
10 90 30
60 50 100

70
20
40
40
60
90
50
50
20
40
30
80

80
40
60
70
10
70
50
20
20
70
30
70

90 80 40
10 40 40
50 60 30
90 20 10
60 40 70
20 70 100
30 30 60
30 100 50
10 60 90
50 10 20
30 40 70
40 90 70

50
50
40
100
80
70
60
40
20
90
60
50

70
30
70
100
20
50
40
80
40
40
80
100

10 30 50
80 20 50
30 30 30
70 90 50
30 50 90
80 100 10
40 50 10
50 80 20
40 40 90
20 80 20
60 70 40
30 90 50

80 70 100
90 90 90
40 70 10
60 70 20
90 90 60
40 100 50
60 40 70
40 70 70
90 80 10
80 70 30
20 100 80
40 10 100

40
50
40
100
40
100
50
10
70
10
90
60

70
70
60
60
80
60
10
80
30
80
80
40

20 90 40 80 80
10 10 30 60 30
80 40 70 40 100
30 60 20 80 10
60 10 20 80 60
10 40 20 70 60
20 100 40 100 70
60 80 90 10 50
40 10 80 40 40
80 20 90 10 40
10 70 60 90 100
50 20 40 80 50

20032008 Mountain Goat Software


33

Your last 8 velocities


K
K
K

Use a different team members month of birth


9>49D9>D85SBCD3?<E=>
Use each subsequent column as the teams velocity for
one iteration
Month
1
2
3
4
5
6
7
8
9
10
11
12

Iterattions
1

70
100
120
70
140
100
70
100
120
70
140
100

80
80
120
80
130
100
80
80
120
80
130
100

100
100
120
90
120
80
100
100
120
90
120
80

100
90
30
100
110
70
100
90
30
100
110
70

80
110
100
110
100
130
80
110
100
110
100
130

140
90
110
120
90
110
140
90
110
120
90
110

90 90
100 80
50 140
130 140
80 70
90 80
90 90
100 80
50 140
130 140
80 70
90 80
20032008 Mountain Goat Software
34

Fixed-scope planning
When will all of this be done?

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
K This is the shortest number of iterations it
could take
4. Divide total story points by low velocity
K This is the most iterations it could take

20032008 Mountain Goat Software


35

Fixed-scope planning : an example


Total story points desired

120

Low velocity

15

High velocity

20

12020=

12015=

20032008 Mountain Goat Software


36

Fixed-scope commitments
If you write a contract
for to the short duration:

K Youll probably win the contract


K But you may not make money
If you write a contract
for to the long duration:

K Youll probably wont win the contract


K But youll make money if you do
Its a risk issue

Where do you want to be?

20032008 Mountain Goat Software


37

Selling the overall plan

K You wrote epic user stories to span the overall


system functionality.
K You had the team estimate these.
K You know your teams past velocities.

K Your boss wants to know how long it will take to


get it all.

K Youll still build the system incrementally, but knowing


K

the total size is helpful for the initial go / no-go decision


Tip: Give the boss a range of iterations.

20032008 Mountain Goat Software


38

Bonus Question

K 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?

20032008 Mountain Goat Software


39

Fixed-date planning
How much can I get by <date>?

1. Determine how many iterations you have


2. Measure or estimate velocity as a range
3. Multiply low velocity number of iterations
K Count off that many points
K

These are Will Have items

4. Multiply high velocity number of iterations


K Count off that many more points
K

These are Might Have items


20032008 Mountain Goat Software
40

Fixed-date planning : an example


Desired
release date

30 June

Todays Date

1 January

Will have

Number of
iterations

6 (monthly)

Low
velocity

15

High
velocity

20

615
Might have

620
Wont have

20032008 Mountain Goat Software


41

Fixed-date contracting
Will have

615
Might have

620
Wont have

If you write a contract


for just the will haves:
K You wont likely win the contract
K But youll probably make money
if you do
If you write a contract that
includes the might haves:
K You will likely win the contract
K But probably not make money
on it
Its a risk issue

Where do you want to be?

20032008 Mountain Goat Software


42

The impending trade show


0?EQF5S>9C854F5BC9?>
 ?>D9=5?63?EBC5
Now the boss needs a new version for the big trade
show that is 4 iterations away.
K Which features can you guarantee will be in for
the trade show?
K Which features are likely to be in?
Use the following user
stories and estimates

20032008 Mountain Goat Software


43

Past velocities
Historrical Data
Iteration
Velocity
number
1
2
3
4
5
6
7
8
9
10

20
14
23
18
25
30
12
22
15
23

Your Esstimates
Low
Average
High

20032008 Mountain Goat Software


44

The teams 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, Id 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.

As a team member I want RSS support for all changes to tasks or user
CD?B95CC?D81D"Q=>?D9S54

As the product downer, I want a new report that shows differences in


the product backlog between different time periods.

C1D51==5=25B"Q4<9;5D?45S>5D5=@<1D5C?6D1C;CD81DB53EB6?B<?DC
of different stories so that I can reuse them

13

20032008 Mountain Goat Software


45

Mike Cohn
mike@mountaingoatsoftware.com
www.mountaingoatsoftware.com
(720) 890

?6S35
(303) 8102190 (mobile)

20032008 Mountain Goat Software


46

You might also like