Getting Agile with Scrum Mike Cohn 6 June 2012 We’re losing the relay race “The… ‘relay race’ approach to product 01B18;<91:@I9-E/;:Q5/@C5@4@413;-8?;2 9-D59A9?<110-:0Q1D5.585@E:?@1-0- 4;85?@5/;>N>A3.EO-<<>;-/4KC41>1-@1-9 tries to go the distance as a unit, passing the .-88.-/7-:02;>@4K9-E.1@@1>?1>B1@;0-EO? competitive requirements.” Hirotaka Takeuchi and Ikujiro Nonaka, “The New New Product Development Game”, Harvard Business Review, January 1986. ® © 2003–2012 Mountain Goat Software® “Apple employees talk incessantly about what they call ‘deep collaboration’ or ‘crosspollination’ or ‘concurrent engineering.’ “Essentially it means that products don’t pass from team to team. There aren’t discrete, sequential development stages. Instead, it’s simultaneous and organic. “Products get worked on in parallel by all departments at once—design, hardware, software—in endless rounds of interdisciplinary design reviews.” ® Source: “How Apple Does It,” Time Magazine, October 24, 2005 by Lev Grossman © 2003–2012 Mountain Goat Software® '/>A94-?.11:A?10.E G !5/>;?;2@ G Yahoo G Google G Electronic Arts G IBM G Lockheed Martin G Philips G Siemens G Nokia G Capital One G BBC G Intuit ® G Apple G Nielsen Media G First American Corelogic G Qualcomm G Texas Instruments G '-81?2;>/1/;9 G John Deere G Lexis Nexis G '-.>1 G '-81?2;>/1/;9 G Time Warner G Turner Broadcasting G Oce © 2003–2009 Mountain Goat Software® '/>A94-?.11:A?102;> G G G G G G G G G ;991>/5-8?;2@C->1 In-house development Contract development Fixed-price projects Financial applications '# /1>@5P10 applications 9.10010?E?@19? 24x7 systems with 99.999% uptime requirements the Joint Strike Fighter G G G G G G G G G Video game development -<<>;B108521/>5@5/-8 systems '-@1885@1/;:@>;8?;2@C->1 +1.?5@1? -:04180?;2@C->1 !;.581<4;:1? Network switching applications ISV applications ';91;2@418->31?@ applications in use © 2003–2009 Mountain Goat Software® ® Characteristics G G G G G G ® '182;>3-:5F5:3@1-9? $>;0A/@<>;3>1??1?5:-?1>51?;29;:@48;:3 “sprints” &1=A5>191:@?->1/-<@A>10-?5@19?5:-85?@;2 L<>;0A/@.-/78;3M ";?<1/5P/1:35:11>5:3<>-/@5/1?<>1?/>5.10 Uses generative rules to create an agile 1:B5>;:91:@2;>0185B1>5:3<>;61/@? #:1;2@41L-3581<>;/1??1?M © 2003–2009 Mountain Goat Software® Project noise level Complex Co m pli ca ';A>/1Strategic Management and Organizational Dynamics.E&-8<4'@-/1E5: Agile Software Development with Scrum.E 1:'/4C-.1>-:0!57111081 te d Simple Close to Certainty Close to Agreement Anarchy Technology ->2>;9 Certainty Requirements ->2>;9 Agreement © 2003–2009 2003–2012 Mountain Goat Software® ® Scrum 24 hours Sprint 1-4 weeks Sprint goal Return Return Cancel 52@C>-< Vouchers 52@C>-< Cancel Product .-/78;3 ® Sprint .-/78;3 $;@1:@5-88E?45<<-.81 product increment Vouchers © 2003–2012 Mountain Goat Software® Sprints G '/>A9<>;61/@?9-71<>;3>1??5:-?1>51?;2 “sprints” G Typical duration is 2–4 weeks or a calendar month at most G /;:?@-:@0A>-@5;:81-0?@;-.1@@1>>4E@49 G Product is designed, coded, and tested during the sprint © 2003–2009 Mountain Goat Software® ® Sequential vs. overlapping development Requirements Design Code Test &-@41>@4-:0;5:3-88;2 one thing at a time... ...Scrum teams do a little ;21B1>E@45:3-88@41@591 ';A>/1L(41"1C"1C$>;0A/@1B18;<91:@-91M.E(-71A/45 and Nonaka. Harvard Business Review, January 1986. ® © 2003–2009 Mountain Goat Software® No changes during a sprint Change G Plan sprint durations around how long you can /;995@@;711<5:3/4-:31;A@;2@41?<>5:@ © 2003–2009 Mountain Goat Software® ® '/>A92>-91C;>7 Roles G Product owner G ScrumMaster G Team Ceremonies G Sprint planning G Sprint review G Sprint retrospective G Daily scrum meeting >@52-/@? G $>;0A/@.-/78;3 G '<>5:@.-/78;3 G Burndown charts ® © 2003–2012 Mountain Goat Software® '/>A92>-91C;>7 Roles G Product owner G ScrumMaster G Team Ceremonies G Sprint planning G Sprint review G Sprint retrospective G Daily scrum meeting >@52-/@? G $>;0A/@.-/78;3 G '<>5:@.-/78;3 G Burndown charts © 2003–2012 Mountain Goat Software® ® Product owner G 1P:1@4121-@A>1?;2@41<>;0A/@ G Makes scope vs. schedule decisions G &1?<;:?5.812;>-/451B5:3P:-:/5-83;-8?;2@41 project $>5;>5@5F1@41<>;0A/@.-/78;3 G G Adjust 21-@A>1?-:0<>5;>5@E1B1>E?<>5:@-? G ® needed Accept or reject work results © 2003–2009 Mountain Goat Software® The ScrumMaster G G G G G &1?<;:?5.812;>1:-/@5:3'/>A9B-8A1? and practices Removes impediments ;-/41?@41@1-9@;@415>.1?@<;??5.81 <1>2;>9-:/1 G 18<?59<>;B1@1-9<>;0A/@5B5@E5:-:EC-E<;??5.81 :-.81/8;?1/;;<1>-@5;:-/>;??-88>;81?-:0 2A:/@5;:? '45180@41@1-92>;91D@1>:-85:@1>21>1:/1 © 2003–2009 Mountain Goat Software® ® The team G G G G G ® Typically 5-9 people >;??2A:/@5;:-8 G Programmers, testers, user experience designers, etc. M19.1>??4;A80.12A88@591 G !-E.11D/1<@5;:?130-@-.-?1-095:5?@>-@;> (1-9?->1?182;>3-:5F5:3 G 01-88E:;@5@81?.A@>->18E-<;??5.585@E !19.1>?45<?4;A80/4-:31;:8E.1@C11:?<>5:@? © 2003–2009 Mountain Goat Software® '/>A92>-91C;>7 Roles G Product owner G ScrumMaster G Team Ceremonies G Sprint planning G Sprint review G Sprint retrospective G Daily scrum meeting >@52-/@? G $>;0A/@.-/78;3 G '<>5:@.-/78;3 G Burndown charts © 2003–2012 Mountain Goat Software® ® Sprint planning meeting Who • Team, ScrumMaster, & Product Owner Agenda • Discuss top priority product • backlog items Team selects which to do Why ® • Know what will be worked on • Understand it enough to do it Sprint goal Sprint backlog © 2003–2012 Mountain Goat Software® Sprint planning G G G (1-9?181/@?5@19?2>;9@41<>;0A/@.-/78;3@41E/-: commit to completing '<>5:@.-/78;35?/>1-@10 G G (-?7?->1501:@5P10-:01-/45?1?@59-@104;A>? ;88-.;>-@5B18E:;@0;:1-8;:1.E@41'/>A9!-?@1> High-level design is considered As a vacation planner, I want to see photos of the hotels. ;01@41950081@51>4;A>? ;01@41A?1>5:@1>2-/1 +>5@1@1?@PD@A>1? ;01@412;;/8-?? )<0-@1<1>2;>9-:/1@1?@? © 2003–2009 Mountain Goat Software® ® The daily scrum G Parameters G G G Daily 15-minutes Stand-up G G Whole world is invited #:8E@1-9919.1>?'/>A9!-?@1><>;0A/@ owner, can talk G ";@2;><>;.819?;8B5:3 G Helps avoid other unnecessary meetings ® © 2003–2009 Mountain Goat Software® Everyone answers 3 questions What did you do yesterday? What will you do today? Is anything in your way? 1 2 3 G These are not?@-@A?2;>@41'/>A9!-?@1> G (41E->1/;995@91:@?5:2>;:@;2<11>? © 2003–2009 Mountain Goat Software® ® The sprint review presents what it accomplished during G Team the sprint G (E<5/-88E@-71?@412;>9;2-019;;2:1C 21-@A>1?;>A:01>8E5:3->/45@1/@A>1 G :2;>9-8 G G 2-hour prep time rule No slides G Whole team participates G Invite the world ® © 2003–2009 Mountain Goat Software® Sprint retrospective G Periodically take a look at what is and is not G G G working Typically around 30 minutes ;:1-2@1>1B1>E?<>5:@ Whole team participates G G G G ScrumMaster Product owner Team $;??5.8E/A?@;91>?-:0;@41>? © 2003–2009 Mountain Goat Software® ® Start / Stop / Continue G Whole team gathers and discusses what they’d 8571@; Start doing Stop doing This is just one of many ways to do a sprint retrospective. ® Continue doing © 2003–2009 Mountain Goat Software® '/>A92>-91C;>7 Roles G Product owner G ScrumMaster G Team Ceremonies G Sprint planning G Sprint review G Sprint retrospective G Daily scrum meeting >@52-/@? G $>;0A/@.-/78;3 G '<>5:@.-/78;3 G Burndown charts © 2003–2012 Mountain Goat Software® ® $>;0A/@.-/78;3 G The requirements G 85?@;2-8801?5>10C;>7;: This is the <>;0A/@.-/78;3 ® the project G Ideally expressed such that each item has value to the A?1>?;>/A?@;91>?;2@41 product G $>5;>5@5F10.E@41<>;0A/@ owner G &1<>5;>5@5F10-@@41?@->@;2 each sprint © 2003–2009 Mountain Goat Software® ?-9<81<>;0A/@.-/78;3 Backlog item Estimate Allow a guest to make a reservation 3 As a guest, I want to cancel a reservation. 5 ?-3A1?@C-:@@;/4-:31@410-@1?;2- reservation. 3 As a hotel employee, I can run RevPAR >1<;>@?>1B1:A1<1>-B-58-.81>;;9 8 Improve exception handling 8 ... ... 30 50 © 2003–2012 Mountain Goat Software® ® Sprint goal A short statement of what the work will be focused on during the sprint Sprint 7 Implement basic shopping cart functionality including add, remove, and update. Sprint 8 The checkout process—pay for an order, pick shipping, order gift wrapping, etc. ® © 2003–2009 Mountain Goat Software® !-:-35:3@41?<>5:@.-/78;3 G G G :05B50A-8??53:A<2;>C;>7;2@415>;C:/4;;?5:3 G Work is never assigned Estimated work remaining is updated daily :E@1-9919.1>/-:-000181@1;>/4-:31@41 ?<>5:@.-/78;3 G G +;>72;>@41?<>5:@191>31? G )<0-@1C;>7>19-5:5:3-?9;>1.1/;91?7:;C: 2C;>75?A:/81->01P:1-?<>5:@.-/78;35@19C5@4- 8->31>-9;A:@;2@591-:0.>1-75@0;C:8-@1> © 2003–2009 Mountain Goat Software® ® ?<>5:@.-/78;3 Tasks ;01@41A?1>5:@1>2-/1 Mon Tues Wed Thur Fri 8 4 8 Code the middle tier 16 12 10 4 Test the middle tier 8 16 16 11 8 8 8 8 8 8 4 Write online help +>5@1@412;;/8-?? Add error logging ® 12 8 © 2003–2012 Mountain Goat Software® ?<>5:@.A>:0;C:/4->@ 1,000 Hours 800 600 400 5/24/02 5/20/02 5/13/02 5/6/02 0 4/29/02 200 © 2003–2012 Mountain Goat Software® ® Tasks Mon Tues Wed Thur ;01@41A?1>5:@1>2-/1 8 4 8 Code the middle tier Test the middle tier 16 8 12 16 10 16 Write online help 12 7 11 Fri 8 50 Hours 40 30 20 10 0 ® Mon Tue Wed Thu Fri © 2003–2012 Mountain Goat Software® '/-8-.585@E G G G ® Typical individual team is 7 ± 2 people G '/-8-.585@E/;91?2>;9@1-9?;2@1-9? Factors in scaling G G G G (E<1;2-<<85/-@5;: (1-9?5F1 Team dispersion Project duration '/>A94-?.11:A?10;:<>;61/@?;2;B1> people © 2003–2009 Mountain Goat Software® Scaling through the Scrum ;2?/>A9? ® © 2003–2012 Mountain Goat Software® Communities of Practice help scale and cut across rum teams Sc Programmers Testers DBAs UI Designers ScrumMasters ® © 2003–2012 Mountain Goat Software® A Scrum reading list G G G G G G G G G ® Agile Estimating and Planning.E!571;4: Agile Game Development with Scrum .E85:@;:15@4 Agile Product Ownership.E&;9-:$5/481> Agile Retrospectives.E?@41>1>.E-:05-:- ->?1: Agile Testing: A Practical Guide for Testers and Agile Teams.E 5?- Crispin and Janet Gregory Coaching Agile Teams.E E??-075:? Essential Scrum.E1::1@4&A.5: Succeeding with Agile: Software Development using Scrum.E!571 Cohn User Stories Applied for Agile Software Development.E!571;4: © 2003–2009 Mountain Goat Software® .;A@@45?<>1?1:@-@5;: G >1-@5B1;99;:?B1>?5;:;2@45? <>1?1:@-@5;:5?-B-58-.81-@ CCC9;A:@-5:3;-@?;2@C->1/;9?/>A9-<>1?1:@-@5;: G B-58-.815:1E:;@1-:0$;C1>$;5:@2;>9-@ G (>-:?8-@105:@;8-:3A-31??;2-> © 2003–2009 Mountain Goat Software® ® Upcoming courses in Oslo Date Course 3–4 September 5–6 September Certified ScrumMaster Certified Scrum Product Owner 3–4 December 5–6 December Certified ScrumMaster Certified Scrum Product Owner ® Information and registration at ling .no ik v t u m a r g o r .p w ww © 2003–2009 Mountain Goat Software® Mike Cohn mike@mountaingoatsoftware.com www.mountaingoatsoftware.com twitter: mikewcohn ® © 2003–2012 Mountain Goat Software®