Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Planning for Contract Agile Projects

Mike Cohn
June 19, 2012

Planning for Contract Agile Projects

This session explores a variety of interesting topics surrounding how to successfully do contract development with agile. The session starts with a quick introduction to user stories and how to assemble them into a requirements document as part of a contract. The session moves on to cover general advice for planning projects before looking specifically at fixed-date, fixed-scope, and fixed-everything projects. The session concludes with advice on estimating velocity for a new team.

Mike Cohn

June 19, 2012
Tweet

More Decks by Mike Cohn

Other Decks in Business

Transcript

  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
  2. © 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
  3. © Copyright Mountain Goat Software ® A requirements document Athlete

    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
  4. © 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
  5. © Copyright Mountain Goat Software ® 0 10 20 30

    40 1 2 3 4 5 6 7 8 9 Iterations Velocity 8
  6. © Copyright Mountain Goat Software ® ❸ Fixed- everything projects

    ❷ Fixed-date & <5#"=0!-.# projects ❶ Planning with historical data 9
  7. © Copyright Mountain Goat Software ® Calculate a confidence interval

    from historical data 27 34 35 38 39 40 40 41 45 90% confidence interval # 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
  8. © 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
  9. © Copyright Mountain Goat Software ® Use the online velocity

    range calculator at mountaingoatsoftware.com/tools 12
  10. © 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
  11. © 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
  12. © Copyright Mountain Goat Software ® Determine a velocity range

    0 10 20 30 40 50 Story Points Iterations 30 21 25 34 25 30 29 29 16
  13. © Copyright Mountain Goat Software ® Product Backlog Might have

    Won’t have Will have 6×25 Determine what to commit to If you promise this 8You probably won’t get the contract 8214'**./-  *6<,'0& everything if you do If you promise this 8You will probably win the contract 821./-  *6,-1<,'0& everything in time 17
  14. © Copyright Mountain Goat Software ® Balancing risk Low Expectation

    Risk Delivery Risk Low High High Promise Just the Will-Haves Promise All the Might-Haves 18
  15. © 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
  16. © Copyright Mountain Goat Software ® = 120 story points

    }=15–20 0 5 10 15 20 25 Story Points Iterations 21
  17. © 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 8You probably will not get the contract 8But it should be easy to <,'0&#3#/61&',% If you promise the short duration 8You probably get the contract 821+6,-1<,'0& everything in time 22
  18. © Copyright Mountain Goat Software ® Balancing risk Low Expectation

    Risk Delivery Risk Low High High Promise the late Finish Promise the early finish 23
  19. © Copyright Mountain Goat Software ® A fixed-scope project Time

    Scope I want this much. When can I get it? 25
  20. © Copyright Mountain Goat Software ® A fixed-date project Time

    Scope We need it on this date. How much can we have by then? 26
  21. © 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
  22. © Copyright Mountain Goat Software ® Fix the scope Iterations

    Scope Goal: Deliver 200 units of work in 10 iterations Velocity = 16–22 200 / 22 = 200 / 16 = 9.1 12.5 200 points in 10 iterations. Fix the date 10×16 = 10×22 = 160 220 29
  23. © Copyright Mountain Goat Software ® Iteration planning 5 3

    1 8 3 5 3 Code the … 8 Test the … 5 Confirm … 2 Code a … 12 Test the … 4 Code the … 6 Automate … 8 Iteration Plan 31
  24. © 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 To otal 100–150 32
  25. © 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 Points As 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
  26. © Copyright Mountain Goat Software ® A relelase burndown chart

    Story Points Iterations 100 0 1 2 3 4 5 200 300 400 35