36
Mike Cohn Copenhagen 31 January 2012 Planning for Contract Agile Projects 1

Planning for Contract Agile Projects

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Planning for Contract Agile Projects

Mike CohnCopenhagen

31 January 2012

Planning for Contract Agile Projects

1

Page 2: Planning for Contract Agile Projects

© 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

Page 3: Planning for Contract Agile Projects

© Copyright Mountain Goat Software®

User stories & velocity

3

Page 4: Planning for Contract Agile Projects

© 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

Page 5: Planning for Contract Agile Projects

© 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

Page 6: Planning for Contract Agile Projects

© 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

Page 7: Planning for Contract Agile Projects

© Copyright Mountain Goat Software®

VelocityAn iteration

4

10 1

3

Velocity = 15

7

Page 8: Planning for Contract Agile Projects

© Copyright Mountain Goat Software®

0

10

20

30

40

1 2 3 4 5 6 7 8 9Iterations

Vel

ocity

8

Page 9: Planning for Contract Agile Projects

© Copyright Mountain Goat Software®

❸Fixed-

everything projects

❷Fixed-date &

projects

❶Planning with historical data

9

Page 10: Planning for Contract Agile Projects

© 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

Page 11: Planning for Contract Agile Projects

© 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

Page 12: Planning for Contract Agile Projects

© Copyright Mountain Goat Software®

Use the online velocity range calculator at

mountaingoatsoftware.com/tools

12

Page 13: Planning for Contract Agile Projects

© Copyright Mountain Goat Software®

Fixed-date

13

Page 14: Planning for Contract Agile Projects

© 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

Page 15: Planning for Contract Agile Projects

© 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

Page 16: Planning for Contract Agile Projects

© 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

Page 17: Planning for Contract Agile Projects

© 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

Page 18: Planning for Contract Agile Projects

© Copyright Mountain Goat Software®

Balancing risk

Low

Expe

ctation

Risk

Delivery RiskLow High

High

Promise Justthe

Will-Haves

Promise Allthe

Might-Haves

18

Page 19: Planning for Contract Agile Projects

© Copyright Mountain Goat Software®

Fixed-scope projects

19

Page 20: Planning for Contract Agile Projects

© 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

Page 21: Planning for Contract Agile Projects

© Copyright Mountain Goat Software®

= 120 story points

}=15–20

0

5

10

15

20

25

Stor

y Po

ints

Iterations

21

Page 22: Planning for Contract Agile Projects

© 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

Page 23: Planning for Contract Agile Projects

© Copyright Mountain Goat Software®

Balancing risk

Low

Expe

ctation

Risk

Delivery RiskLow High

High

Promise the late Finish

Promise the early finish

23

Page 24: Planning for Contract Agile Projects

© Copyright Mountain Goat Software®

Fixed-everything

projects

24

Page 25: Planning for Contract Agile Projects

© Copyright Mountain Goat Software®

A fixed-scope project

Time

Scope

I want thismuch. When can I get it?

25

Page 26: Planning for Contract Agile Projects

© Copyright Mountain Goat Software®

A fixed-date project

Time

Scope

We need it on this date. How much can we have by then?

26

Page 27: Planning for Contract Agile Projects

© 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

Page 28: Planning for Contract Agile Projects

© Copyright Mountain Goat Software®

A fixed-everything project

Time

Scope

Impossible

Probable

Uncertain

28

Page 29: Planning for Contract Agile Projects

© 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

Page 30: Planning for Contract Agile Projects

© Copyright Mountain Goat Software®

Estimating velocity

30

Page 31: Planning for Contract Agile Projects

© 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

Page 32: Planning for Contract Agile Projects

© 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

Page 33: Planning for Contract Agile Projects

© 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

Page 34: Planning for Contract Agile Projects

© Copyright Mountain Goat Software®

Tracking progress

34

Page 35: Planning for Contract Agile Projects

© Copyright Mountain Goat Software®

A relelase burndown chart

Stor

y Po

ints

Iterations

100

0 1 2 3 4 5

200

300

400

35

Page 36: Planning for Contract Agile Projects

© Copyright Mountain Goat Software®

[email protected]: mikewcohn(888) 61-AGILE

Mike Cohn

36