Upload
clinton-keith
View
460
Download
1
Tags:
Embed Size (px)
DESCRIPTION
Scrum and Agile for Video Game Development
Citation preview
Clinton Keith
Presented by
Scrum for Video Game Development
© 2008–2014 Clinton Keith
Clinton Keith
Veteran Video Game Developer with
over 20 years of professional g
ame
development experience
Introduced the Video Game
Industry to Agile, Scrum and Lean
Trained and coached at over 80
studios since 2008
Author of “Agile Game Development
with Scrum
© 2008–2014 Clinton Keith
What is agile?• It’s a method for developing products using short
iterations
• Each iteration is like a short project in itself
• Uses “inspect and adapt” practices to adjust the project plan
• It focuses on adding features in a value prioritized way, rather than a resource prioritized way
• It’s a mindset for how to address uncertainty and change and how to respond to how fun your features are (or not)
© 2008–2014 Clinton Keith
Why Apply Agile
to Video Game
Development?
© 2008–2014 Clinton Keith
WaterfallAtari/Nintendo
Design
E3 Demo
PreproductionProduction
Alpha/Beta
Find the Fun First• The video game industry has a long history of
iterating to find the fun• As costs and team sizes grew, we focused more on
ship dates and budgets• As a result, quality is compromised and risks aren’t
explored
% of fun found in in development
Individuals and interactions Process and Tools
Working game
Publisher/Stakeholder collaboration
Responding to change
Design documentation
Fixed scope, schedule and budgets
Following a plan
over
over
over
over
The Agile Manifesto (for game development)We are uncovering better ways of developing games by doing it and helping others do it. Through this work we have come to value:
That is, while there is value in the items on the right, we value the items on the left more.
© 2008–2014 Clinton Keith
ScrumOverview
© 2008–2014 Clinton Keith
What is Scrum?• A framework to enable rapid and iterative
development
• A focus on not only improving our games, but the methods we use to make them and the environment we make them in
• Produces a demonstrable working & improved game every one to three weeks
• Team commitment and result oriented
• Not a silver bullet
• Has a long history of success on a wide variety of projects, including video game development
© 2008–2014 Clinton Keith
Scrum for Video Games
Chris UlmChief DesignerHigh Moon Studios
“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.”
© 2009-2014 Clinton Keith
Product backlog
Scrum Daily Scrum
Sprint planning Sprint
review
Sprint backlog
Improved Game
Sprint goal
SwimFly
Crouch
Jump
Sprint 1-‐3 week Time-‐box
Sprint Retrospective
© 2008–2014 Clinton Keith
The Scrum Team
ProductOwner
ScrumMaster
Developers
© 2008–2014 Clinton Keith
Product Owner Duties
•Maintains the product backlog•Continuous prioritization and refinement
•Conveys a shared vision•Represents the customers and shareholders
•Participates in all Scrum meetings•Accepts or rejects sprint results
© 2008–2014 Clinton Keith
The ScrumMaster Duties
•Remove impediments•Protects the team•Ensures all Scrum artifacts exist•Facilitates Scrum meetings•Support and guide the PO role•Coaches & guides the team on agile/Scrum principles
© 2008–2014 Clinton Keith
The Team Duties
•Organized around release goals•Plans the sprint backlog•Commits to sprint goal with Product Owner•Does everything necessary to achieve sprint goal•Removes most impediments•Manages the sprint backlog•Attends all sprint meetings
© 2008–2014 Clinton Keith
Why do this?• Fun (quality) can’t be fully planned & scheduled
• We have to “find it”
• Creative knowledge workers do best when:
• They have some ownership of the work
• They are learning & growing as crafts-people
• Not assembly-line workers
• They are part of a team with good chemistry
• They are not overwhelmed to the point of compromising quality
© 2008–2014 Clinton Keith
Apprentice• 3-12 months• Daily Scrums• Iterations• Roles
Journeyman• 12-24 months• Faster integrations• Better testing• Release planning
Master• Never ends• Self organization• 100% customization
The Adoption Roadmap
Continu
ous im
provem
ent
Definitionof
Done
Trust &Ownership
© 2008–2014 Clinton Keith
The Product Backlog
© 2008–2014 Clinton Keith
Product backlog
• The requirements
• A list of all desired work on the project
• Ideally expressed such that each item has value to the users or customers of the product
• Prioritized by the product owner
• Reprioritized at the start of each sprintThis is the
product backlog
© 2008–2014 Clinton Keith
SprintMilestone
Priority
High
Low
Future Releases
Value
Cost
Risk
Knowledge
The Product Backlog Iceberg
Product Owner
© 2008–2014 Clinton Keith
“As a <user role>,I want <goal>so that <reason>.”
Use this template
User Stories
One or more sentences in the everyday language of the end user that captures
what the user wants
© 2008–2014 Clinton Keith
Some sample user storiesAs a player I want punches, reactions and blocks synchronized, so that fighting looks natural and realistic
As a player I want to know which of my friends are playing this game
As a content creator, I want the asset validation process to recompile scripts so that I know if some of them reference deleted assets.
© 2008–2014 Clinton Keith
Sprints
© 2008–2014 Clinton Keith
Sprints• Scrum projects make progress
in a series of sprints
• During the sprint, the team does
• Animation
• Coding
• Testing
• Level design
• and so on
• After each sprint, game can be played / demoed
This is the sprint
© 2008–2014 Clinton Keith
Always deliver
• You must have a potentially demoable / playable game at the end of each sprint
• Do not miss the end of the sprint
• The deadline is sacred
• Functionality may vary
© 2003–2011 Clinton Keith
Team commitment• The team picks the work they’ll do in a sprint
• Which items
• How many
• The team commits to the product owner to complete what they select
• It’s a team commitment, not a set of individual commitments
• Has authority to do whatever is needed to meet this commitment
• Demonstrates to the product owner the completed work at the sprint review
© 2008–2014 Clinton Keith
Scrum meetings
Spri
nt R
etro
spec
tive
Daily Scrums Spri
nt R
evie
w M
eetin
g
Spri
nt P
lann
ing
Mee
ting
Spri
nt P
lann
ing
Mee
ting
• Body Text with a bullet and
© 2008–2014 Clinton Keith
1 2 3 4 5
6 7 8 9 10
+1
Sprint planning
Sprint review and
retrospectiveSprint
planning
A Typical 2- Week Sprint Calendar/Cadence
M T W T F
© 2008–2014 Clinton Keith
Sprint Planning Meeting• Team selects items from the product backlog they can
commit to completing
• Sprint backlog is created• Tasks are identified and each is estimated (1-16 hours)
• Collaboratively, not done alone by the ScrumMaster
• Very high-level design is considered
As a player I want punches, reactions and blocks synchronized, so that fighting looks natural and realistic
Create close punch animations (12 hours)Tune attack percentage in AI (4)Remap controls so attacks are on free buttons (4)Tune block and reaction animations to be same length (2)
© 2003–2011 Clinton Keith
Managing the sprint backlog• Individuals sign up for work of their own choosing
• Work is never assigned
• Estimated work remaining is updated daily
• Any team member can add, delete or change the sprint backlog
• Work for the sprint emerges
• If work is unclear, define a sprint backlog item with a larger amount of time• Break it down later
• Update work remaining as either• More is known
• Items are worked on
© 2003–2011 Clinton Keith
A sprint backlogTasks
Create close punch animations for attackers
Create close punch animations for responders
Adjust fight navigation
Fix camera bouncing off walls
Polish audio
Mon
8
16
8
12
8
Tues
4
12
16
0
8
Wed Thur
8
4
0
0
8
4
Fri
0
0
0
0
8
0Tune attack percentage in AI 8 8
4
10
16
0
8
8
New task!
More time?!
Crunch?
© 2008–2014 Clinton Keith
Task Boards Contain the Sprint Backlog
As a user, I... 8 points
Story To DoIn
ProcessTo
Verify DoneCode the... 9
Code the... 2
Test the... 8
As a user, I... 5 points
Code the... 8
Code the... 4 Code 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
© 2008–2014 Clinton KeithBurndown Chart
Example Task Board
© 2008–2014 Clinton Keith
Burndown charts• A common method of tracking progress
• A burndown chart shows how much work is left as of various dates
0
200
400
600
800
1,000
4/29
/02
5/6/
02
5/13
/02
5/20
/02
5/24
/02
Everyone answers 3 questions
What did you do yesterday?1
What will you do today?2
Is anything in your way?3
• These are not status for the ScrumMaster• They are commitments in front of peers
© 2008–2014 Clinton Keith
The Sprint Review
• Team presents what it accomplished during the sprint
• Typically takes the form of a demo of new features or underlying architecture
• Informal• 2-hour prep time rule
• No slides
• Whole team participates
• Invite the world
© 2008–2014 Clinton Keith
Sprint Retrospective
• Periodically take a look at what is and is not working
• Typically 15–30 minutes
• Done after every sprint
• Whole team participates
• ScrumMaster
• Product owner
• Team
• Possibly customers and others
© 2008–2014 Clinton Keith
Start / Stop / Continue
• Whole team gathers and discusses what they’d like to:
Start doing
Stop doing
Continue doing
© 2008–2014 Clinton Keith
Releases - DefinitionSp
rint
1
Spri
nt 2
Spri
nt 3
Spri
nt 4
Spri
nt 5
Spri
nt 6
Release
Spri
nt 7
Spri
nt 8
Spri
nt 9
Spri
nt 1
0
Spri
nt 1
1
Spri
nt 1
2
Release
© 2008–2014 Clinton Keith
Long-Term Planning
© 2008–2014 Clinton Keith
Release planning on long projects
• On a multi-year game, break the total project into a series of shorter interim internal “releases”
• Three months is a good horizon
• For each release, establish one or a few BHAGs (Big Hairy Audacious Goals)
• “Epic” user stories work well for this, such as:
• As a player I want online multiplayer so I can connect to the internet and play against other players online.
• As a player I want to engage enemies in hand-to-hand combat.
• As a player I want to drive a car around the city.
© 2008–2014 Clinton Keith
A likely sequenceSp
rint
1
Spri
nt 2
Spri
nt 3
Spri
nt 4
Spri
nt 5
Spri
nt 6
Har
deni
ng S
prin
t
Release 1
Spri
nt 7
Spri
nt 8
Spri
nt 9
Spri
nt 1
0
Spri
nt 1
1
Har
deni
ng S
prin
t
Release 2
© 2008–2014 Clinton Keith
Managing Releases• Scope, schedule and cost
are managed by frequently measuring true progress against the plan.
• True progress is based on scope delivered with quality
• The plan has to reconciled with the emergence of what we learn is making the game great.
© 2008–2014 Clinton Keith
Agile is Better at Hitting Fixed Dates
"Implementation of a true Agile Scrum has greatly transformed the teams to become much more predictable than we ever had been prior. With our fixed dates, this predictability has been invaluable as it has greatly helped with proper scoping and priority"
- Brian Graham, Director of Product Development, EA, Madden NFL 2006 - 2009
• Agile addresses value, cost, risk and quality up front
• As opposed to addressing those aspects at the end of a project and having the answers delay or compromise the game.
• Agile embraces empirical process control
• Frequent metrics inform stakeholders early on cost, schedule and scope progress against targets, which help them make timely decisions.
© 2008–2014 Clinton Keith
Scaling Scrum
© 2008–2014 Clinton Keith
Scalability• Most games require more than one Scrum team to build.
• Scrum is designed to be scaled
• Scalability comes from teams of teams
• Factors in scaling
• Logical division of work
• Team size
• Team dispersion
© 2008–2014 Clinton Keith
Practices for Scaling• Scrum-of-Scrum Meeting
• Representatives from each team meet on a regular basis to address dependencies and inter-team issues.
• Aligning Sprint dates
• Sharing a common backlog
• Using a hierarchy of Product Owners
© 2008–2014 Clinton Keith
Scrum of scrums
© 2008–2014 Clinton Keith
Running the scrum of scrumsAttendees
• Each team sends an individual contributor• If four or fewer teams, it’s OK to send a
ScrumMaster also• Rotate based on whose skills are needed most
Agenda• Everyone answers four questions• Attendees discuss the product backlog
for the scrum of scrums
Frequency• Some say daily• I usually do these MWF or TuTh• These are problem-solving meetings• Not time-boxed to 15 minutes
© 2008–2014 Clinton Keith
Share start and end dates
Team 1 Team 1
Team 2Team 2
Team 3 Team 3FinishFinish StartStart
Team 1 Team 1
Team 2Team 2
Team 3 Team 3
• Don’t stagger sprints like this:
• Synchronize sprint starts instead
© 2008–2014 Clinton Keith
Use a Shared Product Backlog
View
Online
View
Single player
A hierarchy of product owners
Visionaries for global/local products
All members of their teams
Game PO works with feature/functional
product owners to establish vision and priorities for their
teams
© 2008–2014 Clinton Keith
Augment with Community of Practice Teams
• Beyond a certain team size, augment the team structure with virtual teams
• Programming team
• Audio team
• AI team
• Informal or semi-formal at best
• Meet periodically
• Discuss and resolve issues related to their specialty
• e.g how to solve common AI problems
© 2008–2014 Clinton Keith
Programmers
Animators
Testers
ScrumMasters
Audio engineers
© 2008–2014 Clinton Keith
Reference MaterialEssential books for agile practitioners:
Agile Game Development with Scrum, Clinton KeithAgile Estimating and Planning, Mike CohnUser Stories Applied, Mike CohnSucceeding with Agile, Mike CohnLean from the Trenches, Henrick KnibergAgile Project Management with Scrum, Ken SchwaberAgile Retrospectives, Ester Derby & Diana Larsen Innovation Games, Luke Hohmann
Websites:
www.clintonkeith.com - My website, which contains numerous resources for applying Scrum and agile to video game development.
agileatlas.org - The Agile Atlas - This website, supported by the Scrum Alliance, contains the definition of Scrum taught by SA trainers and is the basis for the CSM exam.
www.scrumalliance.org - The Scrum Alliance - The non-profit organization that owns the Scrum certifications.
www.mountaingoatsoftware.com - Mike Cohn’s website, which contains numerous resources for applying Scrum and agile practices.