Agile Methodology and
Scrum in Game Development
Clinton KeithVP/Director of Technology,
High Moon Studios
What we’ll talk about:What we’ll talk about:
• The Goal and the ProblemsThe Goal and the Problems• Overview of “Agile Methodology”Overview of “Agile Methodology”• Description of “Scrum”Description of “Scrum”• The challenges we had using Scrum for The challenges we had using Scrum for
game developmentgame development– What were the benefitsWhat were the benefits– What lessons were learnedWhat lessons were learned– What we will do nextWhat we will do next
• Q&AQ&A
This is about what we experienced, not the “Right This is about what we experienced, not the “Right Way” to make gamesWay” to make games
The Goal The Goal
Better Games at Lower Cost Better Games at Lower Cost
The ProblemsThe Problems
Simple
Complicated
Anarchy
Complex
Close toCertainty
Far fromCertainty
Technology
Close toAgreement
Far fromAgreement
Req
uire
men
ts
Source: Strategic Management and Organizational Dynamics by Ralph Stacey in Agile Software Development with Scrum by Ken Schwaber and Mike Beedle.
Project “noise” impacts process selected
The ProblemsThe Problems
o Team SizeTeam SizeoCommunication challenge Communication challenge
increases faster than team increases faster than team sizesize
oCentralized command and Centralized command and control gets overwhelmedcontrol gets overwhelmedoDecision bottlenecksDecision bottlenecks
The ProblemsThe Problems
o Issues with Traditional Issues with Traditional MethodologyMethodologyoWaterfallWaterfall
oUp front design does not Up front design does not reduce risk as much as we reduce risk as much as we thinkthink
oDelays true understanding of Delays true understanding of the game the game
oSurprises creep up on youSurprises creep up on you
Knowing the product Knowing the product valuevalue
0
20
40
60
80
100
Time
% Value Known
DesiredActual
What is Agile What is Agile Development?Development?The Agile Manifesto: The Agile Manifesto:
o Individuals and interactions over Individuals and interactions over processes and tools; processes and tools;
o Working software over Working software over comprehensive documentation; comprehensive documentation;
o Customer collaboration over Customer collaboration over contract negotiation; contract negotiation;
o Responding to change over Responding to change over following a plan;following a plan;
The Four Major Agile The Four Major Agile MethodologiesMethodologies
• XP (eXtreme Programming)XP (eXtreme Programming)• EvoEvo• RUP (Rational Unified RUP (Rational Unified
Process)Process)• ScrumScrum
What is Scrum?What is Scrum?
• Scrum is commitment-orientedScrum is commitment-oriented• Scrum is results-orientedScrum is results-oriented• Scrum is disciplinedScrum is disciplined• Scrum has specific roles, Scrum has specific roles,
artifacts and practicesartifacts and practices
OriginsOrigins
• ““The New New Product The New New Product Development Game” in Development Game” in Harvard Harvard Business ReviewBusiness Review, 1986., 1986.– Studied companies that were able Studied companies that were able
to rapidly develop successful to rapidly develop successful productsproducts
– Borrows the term from Rugby in Borrows the term from Rugby in which the ball gets moved up field which the ball gets moved up field by the entire team.by the entire team.
• Adopted for Software Adopted for Software Development and used since mid Development and used since mid 90’s 90’s
Gfx
OverviewOverview
Camera
NPC
30 day cycle
Prioritized Game Features
Tasks
New Version of the game
DailyMeeting
(Product Backlog)
(Sprint)
(Scrum)
The Elements of ScrumThe Elements of Scrum
• The Scrum TeamThe Scrum Team• CustomersCustomers• Product OwnerProduct Owner• The Product BacklogThe Product Backlog• Sprints (30 day iterations)Sprints (30 day iterations)
– PlanningPlanning– ReviewingReviewing– What happens within a SprintWhat happens within a Sprint
• ScalabilityScalability
The Scrum TeamThe Scrum Team
• Typically 5-10 peopleTypically 5-10 people• Cross-functionalCross-functional
– Programmers, Designers, Programmers, Designers, Artists, QA etc.Artists, QA etc.
• Teams are self-organizingTeams are self-organizing– No hierarchiesNo hierarchies
• Membership can change only Membership can change only between sprintsbetween sprints
The Scrum MasterThe Scrum Master
• Can be any member of the teamCan be any member of the team• Responsible for enacting Scrum Responsible for enacting Scrum
values and practices values and practices • Main job is to remove Main job is to remove
impediments impediments • Can be certifiedCan be certified• Not a lead roleNot a lead role
• A story/moral about opening a A story/moral about opening a dinerdiner
• The definition of a Pig is The definition of a Pig is “someone who makes a personal “someone who makes a personal commitment to the success of the commitment to the success of the project”project”
• One perspective is that Scrum is One perspective is that Scrum is all about getting rid of the all about getting rid of the Chickens!Chickens!
The Scrum Team – It’s The Scrum Team – It’s all about pigs and all about pigs and chickens chickens
CustomersCustomers
• Customers of the productCustomers of the product– PublisherPublisher– MarketingMarketing– ManagementManagement
• DirectorsDirectors
• Usually ChickensUsually Chickens
Product OwnerProduct Owner
• Owns and prioritizes the Owns and prioritizes the Product BacklogProduct Backlog
• Needs to be localNeeds to be local• Mediates customer requests Mediates customer requests
& priorities& priorities
SprintsSprints
30 day
Sprint
24 hours
Product BacklogAs prioritized by Product Owner
Sprint Backlog
Backlog tasksexpandedby team
Potentially ShippableProduct Increment
Daily ScrumMeeting
SprintsSprints
• Scrum projects make progress in a Scrum projects make progress in a series of “Sprints”series of “Sprints”
• Target duration is one monthTarget duration is one month– +/- a week or two+/- a week or two
• But, a constant duration leads to a better But, a constant duration leads to a better rhythmrhythm
• Game iteration is designed, coded, Game iteration is designed, coded, and tested during the sprintand tested during the sprint– Vertical slicesVertical slices
Product BacklogProduct Backlog
30 days
Product BacklogAs prioritized by Product Owner
Product BacklogProduct Backlog
• A list of all desired work on A list of all desired work on the projectthe project– Prioritized by valuePrioritized by value– No items are coarser than a No items are coarser than a
sprintsprint
• Can be time-boxed or Can be time-boxed or estimated for planningestimated for planning
Sample Product BacklogSample Product Backlog
Backlog itemBacklog item EstimateEstimate(person-(person-weeks)weeks)
Break props into separate rigid Break props into separate rigid bodiesbodies
11
Arrow projectiles stick to Arrow projectiles stick to environmentenvironment
0.50.5
Ragdolls can lose limbsRagdolls can lose limbs 22
NPCs avoid dynamite thrown at NPCs avoid dynamite thrown at themthem
44
Improve exception handlingImprove exception handling 0.50.5
Running a SprintRunning a Sprint
• Creating Sprint GoalsCreating Sprint Goals• Sprint Goals to Sprint BacklogSprint Goals to Sprint Backlog• Changes to Goals and BacklogChanges to Goals and Backlog• Reviewing Sprint ProgressReviewing Sprint Progress• Daily Meetings (Scrums)Daily Meetings (Scrums)• Working with the Sprint Working with the Sprint
Backlog Backlog • The War RoomThe War Room
Sprint BacklogSprint Backlog
30 days
Product BacklogAs prioritized by Product Owner
Sprint Goals
Sprint Planning MeetingSprint Planning Meeting
• Selects set of Sprint goals Selects set of Sprint goals from the Product Backlogfrom the Product Backlog
• This is what the team will This is what the team will work on over the next Sprintwork on over the next Sprint
• Place & time for all the pigs Place & time for all the pigs and chickens to get their sayand chickens to get their say
Sprint Planning MeetingSprint Planning Meeting
Sprint Planning
Meeting
Product backlog
Team capabilities
Business conditions
Technology
Current product
Produ
ct o
wner
Scrum
team
Man
agem
ent
Scrum
Mas
ter
Sprint goals
Custo
mer
s
Sprint BacklogSprint Backlog
30 day Sprint
Product BacklogAs prioritized by Product Owner
Sprint Backlog
Sprint Backlog broken out by
team
Potentially ShippableProduct Increment
Sprint BacklogSprint Backlog
• Scrum team takes the Sprint Scrum team takes the Sprint Goals and determines what tasks Goals and determines what tasks are necessaryare necessary– The tasks become the Sprint BacklogThe tasks become the Sprint Backlog– Usually written on cards and posted Usually written on cards and posted
on a wallon a wall– Highest priority goals/tasks are Highest priority goals/tasks are
worked on first (placed higher on the worked on first (placed higher on the wall)wall)
Managing Sprint Managing Sprint BacklogBacklog• Team self-organizes around how Team self-organizes around how
they’ll meet the Sprint Goalthey’ll meet the Sprint Goal– Managers don’t assign tasks to Managers don’t assign tasks to
individualsindividuals– Individuals estimate their own tasksIndividuals estimate their own tasks– No tasks can exceed 16 hours. Beyond No tasks can exceed 16 hours. Beyond
16 hours, the crystal ball gets foggy16 hours, the crystal ball gets foggy
• The main point is that managers The main point is that managers don’t make decisions for the teamdon’t make decisions for the team
No changes to the goals No changes to the goals allowed during a Sprint in allowed during a Sprint in effecteffect
SprintInputs Tested Code
Change
• Plan sprint durations around how long you can Plan sprint durations around how long you can commit to keeping change out of the Sprintcommit to keeping change out of the Sprint
• Resetting the Sprint is an optionResetting the Sprint is an option
Sprint Backlog during the Sprint Backlog during the SprintSprint• Changes to BacklogChanges to Backlog
– Team adds new tasks whenever they Team adds new tasks whenever they need to in order to meet the Sprint need to in order to meet the Sprint GoalGoal
– Team can remove unnecessary tasksTeam can remove unnecessary tasks– But: Sprint Backlog can only be But: Sprint Backlog can only be
updated by the teamupdated by the team• Estimates are updated whenever Estimates are updated whenever
there’s new informationthere’s new information
Sprint ReviewSprint Review
Product BacklogAs prioritized by Product Owner
Sprint Backlog
Potentially ShippableGame
30 day Sprint
Sprint Backlog broken out by
team
Sprint ReviewSprint Review
• Team presents what it Team presents what it accomplished during the sprintaccomplished during the sprint
• Typically takes the form of a Typically takes the form of a demo of new features or demo of new features or underlying architectureunderlying architecture
• ParticipantsParticipants– Same as the planning meetingSame as the planning meeting
Daily ScrumDaily Scrum24 hours
Product BacklogAs prioritized by Product Owner
Sprint Backlog
Potentially ShippableGame
Daily ScrumMeeting
Sprint Backlog broken out by
team
30 day Sprint
• ParametersParameters– DailyDaily– 15-minutes15-minutes– Stand-upStand-up– Not for problem solvingNot for problem solving
• Chickens and pigs are invitedChickens and pigs are invited– Helps avoid other unnecessary Helps avoid other unnecessary
meetingsmeetings• Only pigs can talkOnly pigs can talk• Each pig answers three questions:Each pig answers three questions:
1.1. What did you do since the last What did you do since the last Scrum?Scrum?
2.2. What will you do today?What will you do today?3.3. What are the impediments to your What are the impediments to your
progress? progress?
Daily ScrumDaily Scrum
Questions about Scrum Questions about Scrum meetings?meetings?
• Why daily?Why daily?– ““How does a project get to be a year late?”How does a project get to be a year late?”
• ““One day at a time.” One day at a time.” – Fred Brooks, Fred Brooks, The Mythical Man-MonthThe Mythical Man-Month
– Scrum creates daily visibility of issuesScrum creates daily visibility of issues• Can Scrum meetings be replaced by Can Scrum meetings be replaced by
emailed status reports?emailed status reports?– NoNo
• Entire team needs to see the whole picture Entire team needs to see the whole picture every dayevery day
• Need to make the people commit in front of Need to make the people commit in front of their teammatestheir teammates
A Sprint BacklogA Sprint Backlog
881212
88
1616
88
Mon.Mon.
88
1616
1212
44
Tues.Tues.
88
1616
1010
88
Wed.Wed.
Write user’s guideWrite user’s guide
88 44Add error loggingAdd error logging
88Write the ABC classWrite the ABC class
1111Test middle tierTest middle tier
44Code the middle-tierCode the middle-tier
Code the UICode the UI
Thurs.Thurs.TaskTask
Sprint Backlog Burndown Sprint Backlog Burndown ChartChart
Sprint Burndown
0
100
200
300
400
500
600
700
800
900
10/1/
04
10/3/
04
10/5/
04
10/7/
04
10/9/
04
10/11
/04
10/13
/04
10/15
/04
10/17
/04
10/19
/04
10/21
/04
10/23
/04
10/25
/04
10/27
/04
10/29
/04
Date
Rem
ain
ing
Ho
urs
• Shows work being “burned down” off of total backlog hoursShows work being “burned down” off of total backlog hours• Ideal velocity and task load is displayed as baselineIdeal velocity and task load is displayed as baseline• 800 hours = 8 people x 20 working days x 5 hour/day 800 hours = 8 people x 20 working days x 5 hour/day velocityvelocity• Posted in full viewPosted in full view
Visibility of ProblemsVisibility of Problems
• Progress is plotted dailyProgress is plotted daily• You see delays on a daily basis (visibility)You see delays on a daily basis (visibility)• ““Drag” on velocity will affect slopeDrag” on velocity will affect slope
Sprint Burndown
0
100
200
300
400
500
600
700
800
900
Date
Rem
ain
ing
Ho
urs
Adjusting the Backlog Adjusting the Backlog
• In this case, we removed ~ 160 hours of low priority In this case, we removed ~ 160 hours of low priority backlogbacklog
• We adjusted velocity. The team decided to work an We adjusted velocity. The team decided to work an extra day to catch upextra day to catch up
Sprint Burndown
0
100
200
300
400
500
600
700
800
900
10/1/
2004
10/3/
2004
10/5/
2004
10/7/
2004
10/9/
2004
10/11
/200
4
10/13
/200
4
10/15
/200
4
10/17
/200
4
10/19
/200
4
10/21
/200
4
10/23
/200
4
10/25
/200
4
10/27
/200
4
10/29
/200
4
Date
Rem
ain
ing
Ho
urs
Velocity (recap)Velocity (recap)
• Number of useful hours of Number of useful hours of production work that can be production work that can be accomplished per dayaccomplished per day– Theoretical max is 5 hours useful task Theoretical max is 5 hours useful task
work per daywork per day• A variety of things can add “drag” A variety of things can add “drag”
to velocity:to velocity:– Team not co-locatedTeam not co-located– Team is new to ScrumTeam is new to Scrum
• Aren’t used to estimatingAren’t used to estimating– Multiple teams working on same Multiple teams working on same
backlogbacklog
The War RoomThe War Room
• Where Daily Scrums OccurWhere Daily Scrums Occur• Where Sprint Backlog is Where Sprint Backlog is
postedposted• Where Sprint Burndown is Where Sprint Burndown is
postedposted
The War Room The War Room
Scalability of ScrumScalability of Scrum
• Typical Scrum team is 5-10 Typical Scrum team is 5-10 peoplepeople
• Sutherland used Scrum in Sutherland used Scrum in groups of 500+groups of 500+
• We had ~ 7 Scrum teams for We had ~ 7 Scrum teams for 60 developers60 developers
Scrum of ScrumsScrum of Scrums
•Following the daily Scrums•The Scrum Masters have their Scrum
Using Scrum to Develop Using Scrum to Develop Games Games
• BenefitsBenefits• Lessons learnedLessons learned• Moving forwardMoving forward
BenefitsBenefits
• Improved Improved – ProductivityProductivity– Reliability of buildReliability of build– Quality of gameQuality of game– MoraleMorale
• OwnershipOwnership• Team workTeam work• CommunicationCommunication
• Enabled low-overhead empirical Enabled low-overhead empirical managementmanagement
Lesson LearnedLesson Learned
• Starting is easy. Getting it Starting is easy. Getting it right is hard.right is hard.– ““Thinking Agile” is a paradigm Thinking Agile” is a paradigm
shiftshift– Estimating hours instead of days Estimating hours instead of days
is hard is hard • Artists & Designers should be Artists & Designers should be
pigs, not chickenspigs, not chickens• Embedded QA is a huge benefitEmbedded QA is a huge benefit
Lesson Learned…Lesson Learned…
• Alpha/Beta & Scrum don’t Alpha/Beta & Scrum don’t mix as wellmix as well
• Velocity shows benefit of Velocity shows benefit of overtime very limitedovertime very limited– After two weeks, velocity After two weeks, velocity
returned to normal levels (or returned to normal levels (or below)below)
Moving forwardMoving forward
• Use XP, TDD and other Agile Use XP, TDD and other Agile engineering practicesengineering practices
• More cross-discipline More cross-discipline engineeringengineering
• Dynamic teams that are more Dynamic teams that are more focusedfocused– Instead of a “Character team” that Instead of a “Character team” that
stays together for the project, stays together for the project, form “Boss team”, that stays form “Boss team”, that stays together for one or two sprintstogether for one or two sprints
Moving forwardMoving forward
• Improve Product Backlog & Sprint Improve Product Backlog & Sprint Goal definitionsGoal definitions– What we expected was often not what What we expected was often not what
was deliveredwas delivered– Functionality was often at 90%. This Functionality was often at 90%. This
comes back to bite youcomes back to bite you– Learn about “User Stories” and other Learn about “User Stories” and other
planning methodsplanning methods• More consultingMore consulting
– Ken Schwaber’s Certified Scrum Ken Schwaber’s Certified Scrum Master (CSM) classMaster (CSM) class
– Onsite coachingOnsite coaching
Where to go next?Where to go next?
• www.mountaingoatsoftware.com/scrumwww.mountaingoatsoftware.com/scrum– Mike Cohn, a great Agile/Scrum coachMike Cohn, a great Agile/Scrum coach– Portions of this presentation come Portions of this presentation come
from this site with Mike’s permissionfrom this site with Mike’s permission• www.controlchaos.comwww.controlchaos.com
– Ken Schwaber’s CSM class siteKen Schwaber’s CSM class site• http://agilemanifesto.org/http://agilemanifesto.org/• Agile Software Development with Agile Software Development with
ScrumScrum– Ken Schwaber and Mike BeedleKen Schwaber and Mike Beedle
Where to go next?Where to go next?• Agile Project Management with Agile Project Management with
ScrumScrum– Ken SchwaberKen Schwaber
• General informationGeneral information– www.agilealliance.comwww.agilealliance.com
• My SiteMy Site– www.agilegamedevelopment.cowww.agilegamedevelopment.co
mm• Mailing ListMailing List
– [email protected]@yahoogroups.com
Questions?Questions?
Appendix AAppendix A
Extra stuff if we have timeExtra stuff if we have time
Project PlanningProject Planning
• Project components that Project components that have more known have more known requirements and tech can requirements and tech can still be “waterfalled”still be “waterfalled”
• Timeboxing parts of Timeboxing parts of development is a useful tooldevelopment is a useful tool
TBD product burndownTBD product burndownReality Bites
0
5000
10000
15000
20000
25000
Mar
-03
May
-03
Jul-0
3
Sep-0
3
Nov-03
Jan-
04
Mar
-04
May
-04
Jul-0
4
Sep-0
4
Nov-04
Jan-
05
Mar
-05
Dates
Rem
ain
ing
Ho
urs
TBD product burndown 2TBD product burndown 2Project Burndown
0
5000
10000
15000
20000
25000
Mar
-03
Jun-
03
Sep-0
3
Dec-03
Mar
-04
Jun-
04
Sep-0
4
Dec-04
Mar
-05
Jun-
05
Sep-0
5
Dec-05
Mar
-06
Dates
Rem
ain
ing
Ho
urs
Original plan
Reality
Fixed Scope & Team
Fixed Score
Fixed Budget
Top Related