Clinton Keith CTO, High Moon Studios Agile Methodology in Game Development: Year 3.

33

Transcript of Clinton Keith CTO, High Moon Studios Agile Methodology in Game Development: Year 3.

Clinton KeithCTO,High Moon Studios

Agile Methodology in Game Development: Year 3

What We’ll Talk About: o Why use Agile?o Background on “Agile Methodology” at HMS and in

generalo Overview of “Scrum”o Agile Planningo We’ll touch on eXtreme Programmingo The results of using Agile at High Moon

o Application to game developmento What were the lessons/benefitso Where to go for more info?

o Q&A

This is about what we experienced, not the “Right Way” to make games

Why Adopt Agile?

To find the fun first!Especially in Pre-Production

Reduce wasted effortEspecially in Production

History of Agile at High Moono Used Scrum in last year of

Darkwatcho Helped keep the project on track

o Have adopted XP and Agile planning practices on new projects over the last year

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.

Wasted Effort Can Come From “Noise”…and it influences what processes we use

Preproduction - Agile

Production - Lean

Knowing the product value

0

20

40

60

80

100

Time

% Value Known

DesiredActual

What is Agile Development?The Agile Manifesto:

o Individuals and interactions over processes and tools;

o Working software over comprehensive documentation;

o Customer collaboration over contract negotiation;

o Responding to change over following a plan;

Scrum

o Scrum is commitment-orientedo Scrum is results-orientedo Scrum is disciplined

Origins of Scrum

o “The New New Product Development Game” in Harvard Business Review, 1986.o Studied companies that were able to

rapidly develop successful productso Borrows the term from Rugby in which

the ball gets moved up field by the entire team.

o Adopted for Software Development and used since mid 90’s

Gfx

Overview

Camera

NPC

30 day cycle

Prioritized Game Features

Tasks

New version of the game

DailyMeeting

(Product Backlog)

(Sprint)

(Scrum)

Review and Planning

The Scrum Cast

Team

Scrum

Master

Customers

Product

Owner

Product Backlog

30 day

Sprint

24 hours

Product BacklogAs prioritized by Product Owner

Sprint Backlog

Backlog tasksexpandedby team

Potentially ShippableProduct Increment

Daily ScrumMeeting

Estimated for planning

Broken down into stories that can fit in a sprint

Sprint Backlog

Sprint

Product Backlog

Sprint Goals

Sprint Backlog broken out by

team

New Game(Vertical Slice)

No changes to the goals allowed during a Sprint in effect

SprintUser Stories Tested Game

Change

Sprint Review and Planning

Sprint

Product Backlog

Sprint Goals

Sprint Backlog broken out by

team

New Game(Vertical Slice)

Review and Planning

Daily Scrum24 hours

Product BacklogAs prioritized by Product Owner

Sprint Backlog

NewGame

Daily ScrumMeeting

Sprint Backlog broken out by

team

30 day Sprint

0

10

20

30

40

50

Mon Tues Weds Thurs

8

16

8

Mon.

8

Tues.

8

16

10

0

Wed.

0Write widget tester

4Test middle tier

4Create widget asset

0Code the widget

Thurs.Task

3

16

16

Sprint Backlog Burndown Chart

0

100

200

300

400

500

600

700

800

Dropped Story

Slope = Velocity

Drag works against velocity

The War Room

Scaling Scrum - The Scrum of Scrums

Teams

Support services

Functional Leadership

Other Agile Practices

o Agile Planningo eXtreme Programming (XP)

Agile Planningo You can’t plan away uncertainty

o You have to execute to reduce uncertaintyo Planning is spread out over the entire

projecto Shifts the emphasis from “the plan” to

planningo Shifts from “completion of activities” to

“delivery of features”o Creates plans that are easily changed &

encourage changeo Plans are focused on releases of the

game. Works well for pre-production. Production should be predictable.

Sprint

Release

Priority

High

Low

Future Releases

Value

Cost

Risk

Knowledge

Release Planning

Release Planning

-300

-200

-100

0

100

200

300

400

500

600

eXtreme Programming (XP)

WaterfallXP

Design

Development

Alpha/Beta

Time

CostOf

Change

XP Builds on Good Practices

TDD

ProgrammingPair

Refactoring

Unit Testing

Automated Build and Test

Source Control

Continuous Integration

Agile Game Development

o Lessons learnedo Benefitso Where to go for more info?

Lessons LearnedGetting Started

o Start smallo One Scrum team doing a prototype would be ideal

o Do what the book says from the starto Company dysfunctions can creep in otherwiseo …but Scrum is meant to be modified (eventually)

o Agile planning is harder to start than thoughto But XP was easier

o Coaching was criticalo Onsite and CSM

o Publisher buy-in wasn’t difficulto Get them into reviews and planning

Lessons Learned…

Overtime value is limited but intensity is raised

Week 1 Week 2 Week 3 Week 4 Week 5

Old Habits Die Hard• Over-design• Delayed integration• Seating by discipline• Command and control

Testing needs to be pushed

Waterfall Project End

Waterfall Project Start

Iterations

Normal Velocity Overtime Velocity

Benefitso Improved…

o Productivityo Reliability of buildo Quality of gameo Morale

o Ownershipo Team worko Communication

o Enables low-cost executive awarenesso Which means you don’t have to

work hard to find out what’s going on

Where to go for more info?

o www.agilegamedevelopment.como Bookso Mailing listso AGD Blog

Questions?