Agile and Scrum for Video Game Development


Published on

Certified Scrum trainer and author Mike Cohn walks you through using agile on your own multi-functional project like video game development.

Agile and Scrum for Video Game Development

  1. 1. Scrum forVideo GameDevelopment1
  2. 2. Founding member anddirector of Agile Alliance,Scrum Alliance, and AgileProject LeadershipNetworkFounder of MountainGoat SoftwareConsultant, author,and speakerMike Cohn - background© Mountain Goat Software, LLC2
  3. 3. © Mountain Goat Software, LLCWhat is Scrum?One of the agile processesIterative and incrementalProduces demonstrable working software every twoto four weeksResults- and commitment-orientedNot a silver bulletHas a long history of success on a wide variety ofprojects, including video game development3
  4. 4. © Mountain Goat Software, LLCWhy Scrum for game development?Reduce wasted effortMinimize crunch periodsFind the fun fasterTime%of“Fun”KnownDesignPre-productionE3 demoProductionBeta4
  5. 5. © Mountain Goat Software, LLCProject noise levelSimpleComplexAnarchyComplicatedTechnologyRequirementsFar fromAgreementClose toAgreementClosetoCertaintyFarfromCertaintySource: Strategic Management andOrganizational Dynamics by Ralph Stacey inAgile Software Development with Scrum byKen Schwaber and Mike Beedle.Pre-productionProduction5
  6. 6. © Mountain Goat Software, LLCThe Scrum project communityProgrammer ProgrammerArtistProgrammerTesterTesterAnimatorArtistTheteamInternaldirectorPublisherproducerProductOwnerScrumMasterAnyone(not anauthority role)6
  7. 7. © Mountain Goat Software, LLCScrum roles and responsibilitiesDefines the features of the product, decides on release date and contentIs responsible for the profitability of the product (ROI)Prioritizes features according to market valueCan change features and priority every sprintAccepts or rejects work resultsProductOwnerEnsures that the team is fully functional and productiveEnables close cooperation across all roles and functions and removesbarriersShields the team from external interferencesEnsures that the process is followed. Participates in daily scrum, sprintreview and planning meetingsScrumMasterCross-functional, seven plus/minus two ideally full-time membersSelects the sprint backlogHas the right to do everything within the boundaries of the projectguidelines to reach the sprint goalOrganizes itself and its workDemos work results to the Product OwnerTeam7
  8. 8. © Mountain Goat Software, LLCScrumSwimCrouchJumpSprint2-4 weeksJumpSprint goalSprintbacklogIncrementallyimproved gameProductbacklogFlySwimFlyCrouch24 hours8
  9. 9. © Mountain Goat Software, LLC“Scrum facilitates feature iteration, allowing teamsto deliver polished, tuned and integrated featureswhich can be used to test the creative quality ofthe game throughout its development, allowing theteam to incorporate audience feedback as early aspossible in the development process.”Scrum is iterativeChris UlmHigh Moon Studios9
  10. 10. © Mountain Goat Software, LLCSequential vs. overlappingdevelopmentSource:“The New New Product Development Game” by Takeuchiand Nonaka. Harvard Business Review, January 1986.Rather than doing all ofone thing at a time......Scrum teams do a littleof everything all the time10
  11. 11. © Mountain Goat Software, LLCA sample product backlogBacklog item EstimateAs a player, I want the camera to stay oriented when itcollides with bushes.3As a player, I want to perform a false compliance withinthe apprehend window to defeat the cop and avoid arrest.5As a player, I want punches, reactions and blocks3As a player, I want to see a clear representative HUD thatis art directed to match the game’s universe.8As a CTO, I want an easy to use functional test frameworkso that programmers / testers can write tests.5As a player I want to see enemies get knocked down andget back up. 3011
  12. 12. © Mountain Goat Software, LLCThe product backlog icebergSprintReleaseFutureReleasesPriority12
  13. 13. © Mountain Goat Software, LLCDetail is added as an item movesup the icebergAs a player I wantto see enemies havehit reactions whenI melee them.As a player, I wantenemies to haveanimated reactionswhen I hit them.As a player, I wantenemies to havephysical reactionswhen I hit them.As a player, I wantthere to be collisiondetection when Imelee an enemy.the backlog item13
  14. 14. © Mountain Goat Software, LLCAs a player, I want enemies tohave physical reactions when Ihit them. An enemy twists left when hiton the left and right when hiton the right.The enemy staggers backwhen hit in the center.The enemy tilts back when hitin the head.And then later by adding “Conditions ofSatisfaction” to the backlog item14
  15. 15. © Mountain Goat Software, LLCAs a player I want tosee enemies get knockeddown and get back up. ✓Head shots knock AIdown✓AI can get back upfrom any position andcontinue fighting✓ Can melee with a buttonpress using existingassets✓ Same hit reactions asbeing shot in the areaof the bodyAdditional examplesAs a player, I want tobe able to melee thevampire boss.15
  16. 16. © Mountain Goat Software, LLCThe sprint cycleSprintRetrospectiveDaily ScrumsSprintReviewMeetingSprintPlanningMeetingSprintPlanningMeetingBody Text with a bullet and 16
  17. 17. © Mountain Goat Software, LLCProduct owner describes prioritiesTeam breaks product backlog items (features)into tasksTeam commits to some amount of workSprint planning meetingThree questions:What did you do yesterday?What will you do today?What’s in your way?A commitment between peers, not a managementstatus meetingDaily scrum17
  18. 18. © Mountain Goat Software, LLCTeam demonstrates what was accomplished2-hour prep time ruleNo PowerPoint!Anyone can attendSprint review meetingFocus on continuous improvementLook back at the last sprint and ask what wouldwe like to:Start doingStop doingContinue doingSprint retrospective18
  19. 19. © Mountain Goat Software, LLCA sprint backlogTasksCreate close punchanimations for attackersCreate close punchanimations for respondersFix camera bouncing offwallsPolish audioMon8168128Tues412168Wed Thur41184Fri88Tune attack percentage inAI810168819
  20. 20. © Mountain Goat Software, LLCReciprocal commitmentsThe team commits to deliveringsome amount of functionalityThe business commits to leavepriorities alone during the sprint20
  21. 21. © Mountain Goat Software, LLCNo changes during a sprintWhat the team commits to—and what theproduct owner agrees to—during sprintplanning should be what is deliveredWe start with vague requirementsOur understanding of those requirements isHowever, keep in mind that...21
  22. 22. © Mountain Goat Software, LLCAbnormal terminationsIf change cannot be kept out of a sprint...The sprint may be abnormally terminatedAn extreme circumstance, not done very oftenRaises 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
  23. 23. © Mountain Goat Software, LLCBurndown chartsPrimary method of tracking progressA burndown chart shows how much work isleft as of various datesTwo typesRelease burndownSprint burndown23
  24. 24. © Mountain Goat Software, LLCA sprint burndown chart02004006008001,000 4/29/025/6/025/13/025/20/025/24/02Hours24
  25. 25. © Mountain Goat Software, LLCHours403020100Mon Tue Wed Thu FriTasksCreate punch animationsFix camera bouncing off wallsPolish audioTune attack percentage in AIMon816812Tues Wed Thur Fri4121671181016 85025
  26. 26. © Mountain Goat Software, LLCTask boardsAs a user, I...8 pointsStory To DoInProcessToVerify DoneCode the...9Code the...2Animate the...8As a user, I...5 pointsCode the...8Code the...4Model the...6Code the...4Test the...8Code the...8Code the...MC 4Test the...SC 8Code the...DC 8Test the...SC 8Test the...MC 8Code the...LC 8Test the...SC 4Test the...8Code the...8Test the...4Test the...826
  27. 27. © Mountain Goat Software, LLCBurndownchartTasksto doProductbacklogCompletedtasks27
  28. 28. © Mountain Goat Software, LLC28
  29. 29. © Mountain Goat Software, LLCRelease planning on long projectsOn a multi-year game, break the total project into aseries of shorter interim internal “releases”Three months is a good horizonFor each release, establish one or a few BHAGs (BigHairy Audacious Goals)Sprint1Sprint2Sprint3Sprint4Sprint5Sprint6Release 1Sprint7Sprint8Sprint9Sprint10Sprint11Sprint12Release 229
  30. 30. © Mountain Goat Software, LLCScrum of scrums30
  31. 31. © Mountain Goat Software, LLCScrum of scrums of scrums31
  32. 32. © Mountain Goat Software, LLCAugment with orthogonal teamsBeyond a certain team size, augment the team structurewith orthogonal, virtual teamsProgramming teamAudio teamAI teamInformal or semi-formal at bestMeet periodicallyDiscuss and resolve issues related to their specialtyMay want to work off their own team backlog32
  33. 33. © Mountain Goat Software, LLCProgrammersAnimatorsTestersScrumMastersAudio engineers33
  34. 34. © Mountain Goat Software, LLCUpcoming public classesDate What WhereFebruary 26-27February 28 Agile Estimating and PlanningSeattleApril 8-9April 10 Agile Estimating and PlanningDallasJune 3-4June 5 Agile Estimating & PlanningReston,VA(DC area)July 29-30July 31 Agile Estimating & PlanningSan DiegoEuropean classses in London, Oslo, Stockholm in 22008Register atwww.mountaingoatsoftware.com34
  35. 35. © Mountain Goat Software, LLCMike Cohn contact 810-2190 (mobile)35