Planning for Contract Agile Projects

Post on 31-Oct-2014

421 views 0 download

Tags:

description

 

transcript

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

© Copyright Mountain Goat Software®

mike@mountaingoatsoftware.comwww.mountaingoatsoftware.comtwitter: mikewcohn(888) 61-AGILE

Mike Cohn

36