Upload
mike-cohn
View
422
Download
0
Tags:
Embed Size (px)
DESCRIPTION
Citation preview
Mike CohnCopenhagen
31 January 2012
Planning for Contract Agile Projects
1
© Copyright Mountain Goat Software
Founding member and director of Agile Alliance and Scrum Alliance
Founder of Mountain Goat Software
Doing Scrum since 1995
Started my career as a programmer
VP Engineering in 4 companies
Mike Cohn
®2
© Copyright Mountain Goat Software®
User stories & velocity
3
© Copyright Mountain Goat Software®
User stories
As a sports announcer, I can see a list of all athletes in an event.
As a sports announcer, I can view details about a specific athlete.
As a content editor, I have basic control over how data is formatted.
As a content editor, I have basic control over how data is formatted.
“As a <user role>, I want/can/am able to
<goal> so that <reason>.”
A template
4
© Copyright Mountain Goat Software®
A requirements documentAthlete browsing
As a sports announcer...1. I can view details about a specific athlete
• Name (multiple, could be long, include pronunciation)
• Nickname (include pronunciation)• Prior performance at Olympics• World and Olympic records held• Interesting anecdotes
2.I can bookmark athletes of interest• At least 200 bookmarks
As a content editor...3.I have basic control over how data is formatted
5
© Copyright Mountain Goat Software®
As a sports announcer, I can see a list of all athletes in an event.
As a content editor, I have basic control over how data is formatted.
10
5
6
© Copyright Mountain Goat Software®
VelocityAn iteration
4
10 1
3
Velocity = 15
7
© Copyright Mountain Goat Software®
0
10
20
30
40
1 2 3 4 5 6 7 8 9Iterations
Vel
ocity
8
© Copyright Mountain Goat Software®
❸Fixed-
everything projects
❷Fixed-date &
projects
❶Planning with historical data
9
© Copyright Mountain Goat Software®
Calculate a confidence interval from historical data
27
34
35
38
39
40
40
41
45
90% confidenceinterval
# of historical iterations
Iterations to throw out from each each end
0–7 0
8–10 1
11–12 2
13–15 3
16–17 4
18–20 5
21–22 6
23–25 7
26+ 8
Sorted Velocities
10
© Copyright Mountain Goat Software®
Extrapolate from the velocity range
Product Backlog
Assume there are five
iterations left
We’ll almost certainly get here (5×34=170)
The most we can realistically expect (5×41=205)
11
© Copyright Mountain Goat Software®
Use the online velocity range calculator at
mountaingoatsoftware.com/tools
12
© Copyright Mountain Goat Software®
Fixed-date
13
© Copyright Mountain Goat Software®
Fixed-date planning
Three steps
1. Determine how many iterations
you have.
2. Estimate velocity as a range.
3. Use that range × the number of
iterations to partition the backlog
into Will Have, Might Have, and
Won’t Have.
14
© Copyright Mountain Goat Software®
Count the iterations
APRIL
1
8
15
22
29
2
9
16
23
30
3
10
17
24
4
11
18
25
5
12
19
26
6
13
20
27
7
14
21
28
SUN MON TUE WED THU FRI SAT
MAY
6
13
20
27
7
14
21
28
1
8
15
22
29
2
9
16
23
30
3
10
17
24
31
4
11
18
25
5
12
19
26
SUN MON TUE WED THU FRI SAT
JUNE
6
13
20
27
7
14
21
28
1
8
15
22
29
2
9
16
23
30
3
10
17
24
31
4
11
18
25
5
12
19
26
3
10
17
24
4
11
18
25
5
12
19
26
6
13
20
27
7
14
21
28
1
8
15
22
29
2
9
16
23
30
SUN MON TUE WED THU FRI SAT
15
© Copyright Mountain Goat Software®
Determine a velocity range
0
10
20
30
40
50
Stor
y Po
ints
Iterations
30
2125
34
25
30 29 29
16
© Copyright Mountain Goat Software®
Product Backlog
Might have
Won’t have
Will have6×25
Determine what to commit to
If you promise this
You probably won’t get
the contract
everything if you do
If you promise this
You will probably win the contract
everything in time
17
© Copyright Mountain Goat Software®
Balancing risk
Low
Expe
ctation
Risk
Delivery RiskLow High
High
Promise Justthe
Will-Haves
Promise Allthe
Might-Haves
18
© Copyright Mountain Goat Software®
Fixed-scope projects
19
© Copyright Mountain Goat Software®
Fixed scope planning
Three steps
1. Sum the product backlog items.
2. Estimate velocity as a range.
3. Use the sum of the backlog divided by the velocity range to determine a date range.
20
© Copyright Mountain Goat Software®
= 120 story points
}=15–20
0
5
10
15
20
25
Stor
y Po
ints
Iterations
21
© Copyright Mountain Goat Software®
120 ÷ 15 =JUNE
6
13
20
27
7
14
21
28
1
8
15
22
29
2
9
16
23
30
3
10
17
24
31
4
11
18
25
5
12
19
26
3
10
17
24
4
11
18
25
5
12
19
26
6
13
20
27
7
14
21
28
1
8
15
22
29
2
9
16
23
30
SUN MON TUE WED THU FRI SAT
JANUARY
7
14
21
28
1
8
15
22
29
2
9
16
23
30
3
10
17
24
31
4
11
18
25
5
12
19
26
6
13
20
27
SUN MON TUE WED THU FRI SAT
FEBRUARY
4
11
18
25
5
12
19
26
6
13
20
27
7
14
21
28
1
8
15
22
2
9
16
23
3
10
17
24
SUN MON TUE WED THU FRI SAT
MARCH
4
11
18
25
5
12
19
26
6
13
20
27
7
14
21
28
1
8
15
22
29
2
9
16
23
30
3
10
17
24
31
SUN MON TUE WED THU FRI SAT
APRIL
1
8
15
22
29
2
9
16
23
30
3
10
17
24
4
11
18
25
5
12
19
26
6
13
20
27
7
14
21
28
SUN MON TUE WED THU FRI SAT
MAY
6
13
20
27
7
14
21
28
1
8
15
22
29
2
9
16
23
30
3
10
17
24
31
4
11
18
25
5
12
19
26
SUN MON TUE WED THU FRI SAT
JULY
1
8
15
22
29
2
9
16
23
30
3
10
17
24
31
4
11
18
25
5
12
19
26
6
13
20
27
7
14
21
28
SUN MON TUE WED THU FRI SAT
AUGUST
5
12
19
26
6
13
20
27
7
14
21
28
1
8
15
22
29
2
9
16
23
30
3
10
17
24
31
4
11
18
25
SUN MON TUE WED THU FRI SAT
120 ÷ 20 =JUNE
6
13
20
27
7
14
21
28
1
8
15
22
29
2
9
16
23
30
3
10
17
24
31
4
11
18
25
5
12
19
26
3
10
17
24
4
11
18
25
5
12
19
26
6
13
20
27
7
14
21
28
1
8
15
22
29
2
9
16
23
30
SUN MON TUE WED THU FRI SAT
JANUARY
7
14
21
28
1
8
15
22
29
2
9
16
23
30
3
10
17
24
31
4
11
18
25
5
12
19
26
6
13
20
27
SUN MON TUE WED THU FRI SAT
FEBRUARY
4
11
18
25
5
12
19
26
6
13
20
27
7
14
21
28
1
8
15
22
2
9
16
23
3
10
17
24
SUN MON TUE WED THU FRI SAT
MARCH
4
11
18
25
5
12
19
26
6
13
20
27
7
14
21
28
1
8
15
22
29
2
9
16
23
30
3
10
17
24
31
SUN MON TUE WED THU FRI SAT
APRIL
1
8
15
22
29
2
9
16
23
30
3
10
17
24
4
11
18
25
5
12
19
26
6
13
20
27
7
14
21
28
SUN MON TUE WED THU FRI SAT
MAY
6
13
20
27
7
14
21
28
1
8
15
22
29
2
9
16
23
30
3
10
17
24
31
4
11
18
25
5
12
19
26
SUN MON TUE WED THU FRI SAT
If you promise the long duration
You probably will not get the contractBut it should be easy to
If you promise the short duration
You probably get the contract
everything in time
22
© Copyright Mountain Goat Software®
Balancing risk
Low
Expe
ctation
Risk
Delivery RiskLow High
High
Promise the late Finish
Promise the early finish
23
© Copyright Mountain Goat Software®
Fixed-everything
projects
24
© Copyright Mountain Goat Software®
A fixed-scope project
Time
Scope
I want thismuch. When can I get it?
25
© Copyright Mountain Goat Software®
A fixed-date project
Time
Scope
We need it on this date. How much can we have by then?
26
© Copyright Mountain Goat Software®
• Use a range
Step 1: Estimate velocity
• Divide fixed scope by the velocity range• Draw the vertical lines
Step 2: Fix the scope
• Determine the number of iterations the team has• Multiply by the velocity range• Draw the horizontal lines
Step 3: Fix the schedule
27
© Copyright Mountain Goat Software®
A fixed-everything project
Time
Scope
Impossible
Probable
Uncertain
28
© Copyright Mountain Goat Software®
Fix the scope
Iterations
Scope
Goal: Deliver 200 units of work in 10 iterationsVelocity = 16–22
200 / 22 =
200 / 16 =
9.1
12.5
200 points in 10 iterations.
Fix the date10×16 =10×22 =
160220
29
© Copyright Mountain Goat Software®
Estimating velocity
30
© Copyright Mountain Goat Software®
Iteration planning
53
18
35
3 Code the … 8Test the … 5Confirm … 2
Code a … 12Test the … 4
Code the … 6
Automate … 8
Iteration Plan
31
© Copyright Mountain Goat Software®
Consider this team
Person Hours/Day Hours / Iteration
Sergey 4–6 40–60
Yuri 4–6 40–60
Carina 2–3 20–30
Tootal 100–150
32
© Copyright Mountain Goat Software®
Establishing their velocity
100–150 hours per iteration
Capacity
Code… 12
Design … 6
Test … 8
Decide … 8
Automate … 12
… 22
46
22
Story PointsAs a frequent
flyer …3
As a visitor … 5
As a vacation planner …
5
As a frequent flyer …
2
Code… 8
Test … 6
Design … 12
Test … 5
… 48
31
48
33
© Copyright Mountain Goat Software®
Tracking progress
34
© Copyright Mountain Goat Software®
A relelase burndown chart
Stor
y Po
ints
Iterations
100
0 1 2 3 4 5
200
300
400
35