agile and scrum for video game development

35
Scrum for Video Game Development 1

Upload: mike-cohn

Post on 11-May-2015

2.113 views

Category:

Business


1 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Agile and Scrum for Video Game Development

Scrum for Video Game Development

1

Page 2: Agile and Scrum for Video Game Development

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

Page 3: Agile and Scrum for Video Game Development

© Mountain Goat Software, LLC

What is Scrum?One of the agile processes

Iterative and incremental

Produces demonstrable working software every two to four weeks

Results- and commitment-oriented

Not a silver bullet

Has a long history of success on a wide variety of projects, including video game development

3

Page 4: Agile and Scrum for Video Game Development

© Mountain Goat Software, LLC

Why Scrum for game development?Reduce wasted effortMinimize crunch periodsFind the fun faster

Time

% o

f “Fu

n” K

now

n

DesignPre-production

E3 demo

Production

Beta

4

Page 5: Agile and Scrum for Video Game Development

© Mountain Goat Software, LLC

Project noise level

Simple

Complex

Anarchy

Complicated

Technology

Req

uire

men

tsFar from

Agreement

Close toAgreement

Clo

se t

oC

erta

inty

Far

from

Cer

tain

ty

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

Page 6: Agile and Scrum for Video Game Development

© Mountain Goat Software, LLC

The Scrum project community

Programmer Programmer

Artist

Programmer

Tester

Tester

Animator

ArtistThe team

Internaldirector

Publisherproducer

Product Owner

ScrumMaster

Anyone(not an

authority role)

6

Page 7: Agile and Scrum for Video Game Development

© Mountain Goat Software, LLC

Scrum 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 results

ProductOwner

Ensures that the team is fully functional and productiveEnables close cooperation across all roles and functions and removes barriersShields the team from external interferencesEnsures that the process is followed. Participates in daily scrum, sprint review and planning meetings

ScrumMaster

Cross-functional, seven plus/minus two ideally full-time membersSelects the sprint backlogHas the right to do everything within the boundaries of the project guidelines to reach the sprint goalOrganizes itself and its workDemos work results to the Product OwnerTeam

7

Page 8: Agile and Scrum for Video Game Development

© Mountain Goat Software, LLC

Scrum

Swim

Crouch

Jump

Sprint2-4 weeks

Jump

Sprint goal

Sprint backlog

Incrementallyimproved game

Productbacklog

FlySwim

Fly

Crouch

24 hours

8

Page 9: Agile and Scrum for Video Game Development

© 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

High Moon Studios

9

Page 10: Agile and Scrum for Video Game Development

© 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

Page 11: Agile and Scrum for Video Game Development

© Mountain Goat Software, LLC

A sample product backlogBacklog 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 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

Page 12: Agile and Scrum for Video Game Development

© Mountain Goat Software, LLC

The product backlog iceberg

Sprint

Release

FutureReleases

Priority

12

Page 13: Agile and Scrum for Video Game Development

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

the backlog item

13

Page 14: Agile and Scrum for Video Game Development

© 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

Page 15: Agile and Scrum for Video Game Development

© 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

Page 16: Agile and Scrum for Video Game Development

© Mountain Goat Software, LLC

The sprint cycle

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

16

Page 17: Agile and Scrum for Video Game Development

© Mountain Goat Software, LLC

Product owner describes prioritiesTeam breaks product backlog items (features) into tasksTeam commits to some amount of work

Sprint planning meeting

Three questions:What did you do yesterday?What will you do today?What’s in your way?

A commitment between peers, not a management status meeting

Daily scrum

17

Page 18: Agile and Scrum for Video Game Development

© Mountain Goat Software, LLC

Team demonstrates what was accomplished2-hour prep time ruleNo PowerPoint!Anyone can attend

Sprint review meeting

Focus on continuous improvementLook back at the last sprint and ask what would we like to:

Start doingStop doingContinue doing

Sprint retrospective

18

Page 19: Agile and Scrum for Video Game Development

© Mountain Goat Software, LLC

A sprint backlogTasks

Create close punch animations for attackers

Create close punch animations for responders

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

Page 20: Agile and Scrum for Video Game Development

© Mountain Goat Software, LLC

Reciprocal commitmentsThe team commits to delivering some amount of functionality

The business commits to leave priorities alone during the sprint

20

Page 21: Agile and Scrum for Video Game Development

© Mountain Goat Software, LLC

No changes during a sprintWhat the team commits to—and what the product owner agrees to—during sprint planning should be what is delivered

We start with vague requirementsOur understanding of those requirements is

However, keep in mind that...

21

Page 22: Agile and Scrum for Video Game Development

© Mountain Goat Software, LLC

Abnormal terminationsIf change cannot be kept out of a sprint...

The sprint may be abnormally terminated

An 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

Page 23: Agile and Scrum for Video Game Development

© Mountain Goat Software, LLC

Burndown chartsPrimary method of tracking progress

A burndown chart shows how much work is left as of various dates

Two types

Release burndown

Sprint burndown

23

Page 24: Agile and Scrum for Video Game Development

© Mountain Goat Software, LLC

A sprint burndown chart

0

200

400

600

800

1,0004/

29/0

2

5/6/

02

5/13

/02

5/20

/02

5/24

/02

Hou

rs

24

Page 25: Agile and Scrum for Video Game Development

© Mountain Goat Software, LLC

Hou

rs

40

30

20

10

0Mon Tue Wed Thu Fri

TasksCreate punch animations

Fix camera bouncing off walls

Polish audio

Tune attack percentage in AI

Mon8

16

8

12

Tues Wed Thur Fri4

12

16

7

11

8

10

16 8

50

25

Page 26: Agile and Scrum for Video Game Development

© Mountain Goat Software, LLC

Task boards

As a user, I... 8 points

Story To DoIn

ProcessTo

Verify DoneCode the... 9

Code the... 2

Animate the... 8

As a user, I...5 points

Code the... 8

Code the... 4Model 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

Page 27: Agile and Scrum for Video Game Development

© Mountain Goat Software, LLC

Burndownchart

Tasksto do

Productbacklog

Completedtasks

27

Page 28: Agile and Scrum for Video Game Development

© Mountain Goat Software, LLC

28

Page 29: Agile and Scrum for Video Game Development

© Mountain Goat Software, LLC

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)

Spri

nt 1

Spri

nt 2

Spri

nt 3

Spri

nt 4

Spri

nt 5

Spri

nt 6Release 1

Spri

nt 7

Spri

nt 8

Spri

nt 9

Spri

nt 1

0

Spri

nt 1

1

Spri

nt 1

2

Release 2

29

Page 30: Agile and Scrum for Video Game Development

© Mountain Goat Software, LLC

Scrum of scrums

30

Page 31: Agile and Scrum for Video Game Development

© Mountain Goat Software, LLC

Scrum of scrums of scrums

31

Page 32: Agile and Scrum for Video Game Development

© Mountain Goat Software, LLC

Augment with orthogonal teams

Beyond a certain team size, augment the team structure with orthogonal, virtual teams

Programming team

Audio team

AI team

Informal or semi-formal at best

Meet periodically

Discuss and resolve issues related to their specialty

May want to work off their own team backlog

32

Page 33: Agile and Scrum for Video Game Development

© Mountain Goat Software, LLC

Programmers

Animators

Testers

ScrumMasters

Audio engineers

33

Page 34: Agile and Scrum for Video Game Development

© Mountain Goat Software, LLC

Upcoming public classesDate What Where

February 26-27 February 28 Agile Estimating and Planning

Seattle

April 8-9April 10 Agile Estimating and Planning

Dallas

June 3-4June 5 Agile Estimating & Planning

Reston, VA(DC area)

July 29-30July 31 Agile Estimating & Planning

San Diego

European class ses in London, Oslo, Stockholm in 2 2008

Register atwww.mountaingoatsoftware.com

34

Page 35: Agile and Scrum for Video Game Development

© Mountain Goat Software, LLC

Mike Cohn contact [email protected]

www.mountaingoatsoftware.com

(303) 810-2190 (mobile)

35