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

Planning for Contract Agile Projects

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for Mike Cohn 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.

Avatar for Mike Cohn

Mike Cohn

June 19, 2012

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