scrum for video game development

55
Clinton Keith Presented by Scrum for Video Game Development

Upload: clinton-keith

Post on 08-Jul-2015

460 views

Category:

Entertainment & Humor


1 download

DESCRIPTION

Scrum and Agile for Video Game Development

TRANSCRIPT

Page 1: Scrum for Video Game Development

Clinton Keith

Presented by

Scrum for Video Game Development

Page 2: 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

Page 3: Scrum for Video Game Development

© 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)

Page 4: Scrum for Video Game Development

© 2008–2014 Clinton Keith

Why Apply Agile

to Video Game

Development?

Page 5: Scrum for 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

Page 6: Scrum for Video Game 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.

Page 7: Scrum for Video Game Development

© 2008–2014 Clinton Keith

ScrumOverview

Page 8: Scrum for Video Game Development

© 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

Page 9: Scrum for 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.”

Page 10: Scrum for Video Game Development

© 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

Page 11: Scrum for Video Game Development

© 2008–2014 Clinton Keith

The Scrum Team

ProductOwner

ScrumMaster

Developers

Page 12: Scrum for Video Game Development

© 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

Page 13: Scrum for Video Game Development

© 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

Page 14: Scrum for Video Game Development

© 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

Page 15: Scrum for Video Game Development

© 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

Page 16: Scrum for Video Game Development

© 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

Page 17: Scrum for Video Game Development

© 2008–2014 Clinton Keith

The Product Backlog

Page 18: Scrum for Video Game Development

© 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

Page 19: Scrum for Video Game Development

© 2008–2014 Clinton Keith

SprintMilestone

Priority

High

Low

Future Releases

Value

Cost

Risk

Knowledge

The Product Backlog Iceberg

Product Owner

Page 20: Scrum for Video Game Development

© 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

Page 21: Scrum for Video Game Development

© 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.

Page 22: Scrum for Video Game Development

© 2008–2014 Clinton Keith

Sprints

Page 23: Scrum for Video Game Development

© 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

Page 24: Scrum for Video Game Development

© 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

Page 25: Scrum for Video Game Development

© 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

Page 26: Scrum for Video Game Development

© 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

Page 27: Scrum for Video Game Development

© 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

Page 28: Scrum for Video Game Development

© 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)

Page 29: Scrum for Video Game Development

© 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

Page 30: Scrum for Video Game Development

© 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?

Page 31: Scrum for Video Game Development

© 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

Page 32: Scrum for Video Game Development

© 2008–2014 Clinton KeithBurndown Chart

Example Task Board

Page 33: Scrum for Video Game Development

© 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

Page 34: Scrum for Video Game Development

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

Page 35: Scrum for Video Game Development

© 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

Page 36: Scrum for Video Game Development

© 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

Page 37: Scrum for Video Game Development

© 2008–2014 Clinton Keith

Start / Stop / Continue

• Whole team gathers and discusses what they’d like to:

Start doing

Stop doing

Continue doing

Page 38: Scrum for Video Game Development

© 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

Page 39: Scrum for Video Game Development

© 2008–2014 Clinton Keith

Long-Term Planning

Page 40: Scrum for Video Game Development

© 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.

Page 41: Scrum for Video Game Development

© 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

Page 42: Scrum for Video Game Development

© 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.

Page 43: Scrum for Video Game Development

© 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.

Page 44: Scrum for Video Game Development

© 2008–2014 Clinton Keith

Scaling Scrum

Page 45: Scrum for Video Game Development

© 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

Page 46: Scrum for Video Game Development

© 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

Page 47: Scrum for Video Game Development

© 2008–2014 Clinton Keith

Scrum of scrums

Page 48: Scrum for Video Game Development

© 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

Page 49: Scrum for Video Game Development

© 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

Page 50: Scrum for Video Game Development

© 2008–2014 Clinton Keith

Use a Shared Product Backlog

View

Online

View

Single player

Page 51: Scrum for Video Game Development

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

Page 52: Scrum for Video Game Development

© 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

Page 53: Scrum for Video Game Development

© 2008–2014 Clinton Keith

Programmers

Animators

Testers

ScrumMasters

Audio engineers

Page 54: Scrum for Video Game Development

© 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.

Page 55: Scrum for Video Game Development

© 2008–2014 Clinton Keith

My contact info

Clinton Keith [email protected]

www.ClintonKeith.com