Slide 1

Slide 1 text

Scrum for Video Game Development 1

Slide 2

Slide 2 text

Founding member and director of Agile Alliance, Scrum Alliance, and Agile Project Leadership Network Founder of Mountain Goat Software Consultant, author, and speaker Mike Cohn - background © Mountain Goat Software, LLC 2

Slide 3

Slide 3 text

© Mountain Goat Software, LLC What is Scrum? H One of the agile processes H Iterative and incremental H Produces demonstrable working software every two to four weeks H Results- and commitment-oriented H Not a silver bullet H Has a long history of success on a wide variety of projects, including video game development 3

Slide 4

Slide 4 text

© Mountain Goat Software, LLC Why Scrum for game development? H Reduce wasted effort H Minimize crunch periods H Find the fun faster Time % of “Fun” Known Design Pre-production E3 demo Production Beta 4

Slide 5

Slide 5 text

© Mountain Goat Software, LLC Project noise level Simple Complex Anarchy Com plicated Technology Requirements Far from Agreement Close to Agreement Close to Certainty Far from Certainty Source: Strategic Management and Organizational Dynamics by Ralph Stacey in Agile Software Development with Scrum by Ken Schwaber and Mike Beedle. Pre-production Production 5

Slide 6

Slide 6 text

© Mountain Goat Software, LLC The Scrum project community Programmer Programmer Artist Programmer Tester Tester Animator Artist The team Internal director Publisher producer Product Owner Scrum Master Anyone (not an authority role) 6

Slide 7

Slide 7 text

© Mountain Goat Software, LLC Scrum roles and responsibilities H Defines the features of the product, decides on release date and content H Is responsible for the profitability of the product (ROI) H Prioritizes features according to market value H Can change features and priority every sprint H Accepts or rejects work results Product Owner H Ensures that the team is fully functional and productive H Enables close cooperation across all roles and functions and removes barriers H Shields the team from external interferences H Ensures that the process is followed. Participates in daily scrum, sprint review and planning meetings Scrum Master H Cross-functional, seven plus/minus two ideally full-time members H Selects the sprint backlog H Has the right to do everything within the boundaries of the project guidelines to reach the sprint goal H Organizes itself and its work H Demos work results to the Product Owner Team 7

Slide 8

Slide 8 text

© Mountain Goat Software, LLC Scrum Swim Crouch Jump Sprint 2-4 weeks Jump Sprint goal Sprint backlog Incrementally improved game Product backlog Fly Swim Fly Crouch 24 hours 8

Slide 9

Slide 9 text

© Mountain Goat Software, LLC “Scrum facilitates feature iteration, allowing teams to deliver polished, tuned and integrated features which can be used to test the creative quality of the game throughout its development, allowing the team to incorporate audience feedback as early as possible in the development process.” Scrum is iterative Chris Ulm 56232@64;&3N02? High Moon Studios 9

Slide 10

Slide 10 text

© Mountain Goat Software, LLC Sequential vs. overlapping development Source: “The New New Product Development Game” by Takeuchi and Nonaka. Harvard Business Review, January 1986. Rather than doing all of one thing at a time... ...Scrum teams do a little of everything all the time 10

Slide 11

Slide 11 text

© Mountain Goat Software, LLC A sample product backlog Backlog item Estimate As a player, I want the camera to stay oriented when it collides with bushes. 3 As a player, I want to perform a false compliance within the apprehend window to defeat the cop and avoid arrest. 5 As a player, I want punches, reactions and blocks @F;05?<;6G21@<A5.AN45A6;49<<8@;.AB?.9.;1?2.96@A60 3 As a player, I want to see a clear representative HUD that is art directed to match the game’s universe. 8 As a CTO, I want an easy to use functional test framework so that programmers / testers can write tests. 5 As a player I want to see enemies get knocked down and get back up. 30 11

Slide 12

Slide 12 text

© Mountain Goat Software, LLC The product backlog iceberg Sprint Release Future Releases Priority 12

Slide 13

Slide 13 text

© Mountain Goat Software, LLC Detail is added as an item moves up the iceberg As a player I want to see enemies have hit reactions when I melee them. As a player, I want enemies to have animated reactions when I hit them. As a player, I want enemies to have physical reactions when I hit them. As a player, I want there to be collision detection when I melee an enemy. &3A2;/FN?@A@=96AA6;4 the backlog item 13

Slide 14

Slide 14 text

© Mountain Goat Software, LLC As a player, I want enemies to have physical reactions when I hit them. An enemy twists left when hit on the left and right when hit on the right. The enemy staggers back when hit in the center. The enemy tilts back when hit in the head. And then later by adding “Conditions of Satisfaction” to the backlog item 14

Slide 15

Slide 15 text

© Mountain Goat Software, LLC As a player I want to see enemies get knocked down and get back up. ✓Head shots knock AI down ✓AI can get back up from any position and continue fighting ✓ Can melee with a button press using existing assets ✓ Same hit reactions as being shot in the area of the body Additional examples As a player, I want to be able to melee the vampire boss. 15

Slide 16

Slide 16 text

© Mountain Goat Software, LLC The sprint cycle Sprint Retrospective Daily Scrums Sprint Review Meeting Sprint Planning Meeting Sprint Planning Meeting H Body Text with a bullet and 16

Slide 17

Slide 17 text

© Mountain Goat Software, LLC HProduct owner describes priorities HTeam breaks product backlog items (features) into tasks HTeam commits to some amount of work Sprint planning meeting HThree questions: H What did you do yesterday? H What will you do today? H What’s in your way? HA commitment between peers, not a management status meeting Daily scrum 17

Slide 18

Slide 18 text

© Mountain Goat Software, LLC HTeam demonstrates what was accomplished H2-hour prep time rule HNo PowerPoint! HAnyone can attend Sprint review meeting HFocus on continuous improvement HLook back at the last sprint and ask what would we like to: H Start doing H Stop doing H Continue doing Sprint retrospective 18

Slide 19

Slide 19 text

© Mountain Goat Software, LLC A sprint backlog Tasks Create close punch animations for attackers Create close punch animations for responders 17B@AN45A;.C64.A6<; Fix camera bouncing off walls Polish audio Mon 8 16 8 12 8 Tues 4 12 16 8 Wed Thur 4 11 8 4 Fri 8 8 Tune attack percentage in AI 8 10 16 8 8 19

Slide 20

Slide 20 text

© Mountain Goat Software, LLC Reciprocal commitments The team commits to delivering some amount of functionality The business commits to leave priorities alone during the sprint 20

Slide 21

Slide 21 text

© Mountain Goat Software, LLC No changes during a sprint H What the team commits to—and what the product owner agrees to—during sprint planning should be what is delivered H We start with vague requirements H Our understanding of those requirements is ?2N;211B?6;4A52@=?6;A However, keep in mind that... 21

Slide 22

Slide 22 text

© Mountain Goat Software, LLC Abnormal terminations HIf change cannot be kept out of a sprint... HThe sprint may be abnormally terminated HAn extreme circumstance, not done very often HRaises visibility of priority changes ...they feel they cannot meet the goal of a sprint. Team can abnormally terminate if... ...priorities change. Business can abnormally terminate if... 22

Slide 23

Slide 23 text

© Mountain Goat Software, LLC Burndown charts H Primary method of tracking progress H A burndown chart shows how much work is left as of various dates H Two types H Release burndown H Sprint burndown 23

Slide 24

Slide 24 text

© Mountain Goat Software, LLC A sprint burndown chart 0 200 400 600 800 1,000 4/29/02 5/6/02 5/13/02 5/20/02 5/24/02 Hours 24

Slide 25

Slide 25 text

© Mountain Goat Software, LLC Hours 40 30 20 10 0 Mon Tue Wed Thu Fri Tasks Create punch animations Fix camera bouncing off walls Polish audio Tune attack percentage in AI Mon 8 16 8 12 Tues Wed Thur Fri 4 12 16 7 11 8 10 16 8 50 25

Slide 26

Slide 26 text

© Mountain Goat Software, LLC Task boards As a user, I... 8 points Story To Do In Process To Verify Done Code the... 9 Code the... 2 Animate the... 8 As a user, I... 5 points Code the... 8 Code the... 4 Model the... 6 Code the... 4 Test the... 8 Code the... 8 Code the... MC 4 Test the... SC 8 Code the... DC 8 Test the... SC 8 Test the... MC 8 Code the... LC 8 Test the... SC 4 Test the... 8 Code the... 8 Test the... 4 Test the... 8 26

Slide 27

Slide 27 text

© Mountain Goat Software, LLC Burndown chart Tasks to do Product backlog Completed tasks 27

Slide 28

Slide 28 text

© Mountain Goat Software, LLC 28

Slide 29

Slide 29 text

© Mountain Goat Software, LLC Release planning on long projects H On a multi-year game, break the total project into a series of shorter interim internal “releases” H Three months is a good horizon H For each release, establish one or a few BHAGs (Big Hairy Audacious Goals) Sprint 1 Sprint 2 Sprint 3 Sprint 4 Sprint 5 Sprint 6 Release 1 Sprint 7 Sprint 8 Sprint 9 Sprint 10 Sprint 11 Sprint 12 Release 2 29

Slide 30

Slide 30 text

© Mountain Goat Software, LLC Scrum of scrums 30

Slide 31

Slide 31 text

© Mountain Goat Software, LLC Scrum of scrums of scrums 31

Slide 32

Slide 32 text

© Mountain Goat Software, LLC Augment with orthogonal teams H Beyond a certain team size, augment the team structure with orthogonal, virtual teams H Programming team H Audio team H AI team H Informal or semi-formal at best H Meet periodically H Discuss and resolve issues related to their specialty H May want to work off their own team backlog 32

Slide 33

Slide 33 text

© Mountain Goat Software, LLC Programmers Animators Testers ScrumMasters Audio engineers 33

Slide 34

Slide 34 text

© Mountain Goat Software, LLC Upcoming public classes Date What Where February 26-27 February 28 2?A6N21)0?B:$.@A2? Agile Estimating and Planning Seattle April 8-9 April 10 2?A6N21)0?B:$.@A2? Agile Estimating and Planning Dallas June 3-4 June 5 2?A6N21)0?B:$.@A2? Agile Estimating & Planning Reston, VA (DC area) July 29-30 July 31 2?A6N21)0?B:$.@A2? Agile Estimating & Planning San Diego European class ses in London, Oslo, Stockholm in 2 2008 Register at www.mountaingoatsoftware.com 34

Slide 35

Slide 35 text

© Mountain Goat Software, LLC Mike Cohn contact info [email protected] www.mountaingoatsoftware.com    <3N02 (303) 810-2190 (mobile) 35