agile development methodsS1512i1

Download Report

Transcript agile development methodsS1512i1

Agile Methodology in Game
Development: Year 3
Clinton Keith
CTO,
High Moon Studios
What We’ll Talk About:
o
o
o
o
o
o
Why use Agile?
Background on “Agile Methodology” at HMS and in general
Overview of “Scrum”
Agile Planning
We’ll touch on eXtreme Programming
The results of using Agile at High Moon
o Application to game development
o What were the lessons/benefits
o
o
Where to go for more info?
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 effort
Especially in Production
History of Agile at High Moon
o
Used Scrum in last year of Darkwatch
o
o
Helped keep the project on track
Have adopted XP and Agile planning
practices on new projects over the last
year
Wasted Effort Can Come From “Noise”
…and it influences what processes we use
Far from
Agreement
Requirements
Anarchy
Complex
Preproduction Agile
Close to
Agreement
Simple
Production - Lean
Close to
Certainty
Source: Strategic Management and
Organizational Dynamics by Ralph Stacey
in Agile Software Development with Scrum
by Ken Schwaber and Mike Beedle.
Technology
Far from
Certainty
Knowing the product value
100
80
% Value
Known
60
Desired
Actual
40
20
0
Time
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
o
o
Scrum is commitment-oriented
Scrum is results-oriented
Scrum is disciplined
Origins of Scrum
o
“The New New Product Development
Game” in Harvard Business Review,
1986.
o
o
o
Studied companies that were able to rapidly
develop successful products
Borrows the term from Rugby in which the ball
gets moved up field by the entire team.
Adopted for Software Development and
used since mid 90’s
Overview
Daily
Meeting
(Scrum)
30 day cycle
Tasks
NPC
Camera
Gfx
(Sprint)
New version of the game
Prioritized Game Features
(Product Backlog)
Review and Planning
The Scrum Cast
Product
Owner
Scrum
Master
Team
Customers
Product Backlog
24 hours
Daily Scrum
Meeting
30 day
Sprint Backlog
Backlog tasks
expanded
by team
Sprint
Product Backlog
As prioritized by Product Owner
Estimated for planning
Broken down into stories that can fit
in a sprint
Potentially Shippable
Product Increment
Sprint Backlog
Sprint Backlog
broken out by
team
Sprint
Sprint Goals
Product Backlog
New Game
(Vertical Slice)
No changes to the goals allowed
during a Sprint in effect
Change
User Stories
Sprint
Tested Game
Sprint Review and Planning
Sprint Backlog
broken out by
team
Sprint
Sprint Goals
Product Backlog
New Game
(Vertical Slice)
Review and Planning
Daily Scrum
24 hours
Daily Scrum
Meeting
Sprint Backlog
broken out by
team
30 day
Sprint
Sprint Backlog
Product Backlog
As prioritized by Product Owner
New
Game
Task
Mon.
Tues.
Wed.
Thurs.
Code the widget
8
3
0
0
Create widget asset
16
16
10
4
Test middle tier
8
16
16
4
8
8
0
Write widget tester
50
40
30
20
10
0
Mon
Tues
Weds
Thurs
Sprint Backlog Burndown Chart
800
Drag works against velocity
700
Slope = Velocity
600
500
400
300
200
100
0
Dropped
Story
The War Room
Scaling Scrum - The Scrum of Scrums
Functional
Leadership
Support
services
Teams
Other Agile Practices
o
o
Agile Planning
eXtreme Programming (XP)
Agile Planning
o
You can’t plan away uncertainty
o
o
o
o
o
o
You have to execute to reduce uncertainty
Planning is spread out over the entire project
Shifts the emphasis from “the plan” to planning
Shifts from “completion of activities” to “delivery
of features”
Creates plans that are easily changed &
encourage change
Plans are focused on releases of the game.
Works well for pre-production. Production
should be predictable.
Release Planning
Sprint
High
Release
Value
Priority
Future
Releases
Cost
Risk
Knowledge
Low
Release Planning
600
500
400
300
200
100
0
-100
-200
-300
eXtreme Programming (XP)
Alpha/Beta
Cost
Of
Change
Development
Design
Time
W aterfall
XP
XP Builds on
Good
Practices
TDD
Pair
Programming
Continuous Integration
Refactoring
Unit Testing
Automated Build and Test
Source Control
Agile Game Development
o
o
o
Lessons learned
Benefits
Where to go for more info?
Lessons Learned
Getting Started
o
Start small
o
o
Do what the book says from the start
o
o
o
But XP was easier
Coaching was critical
o
o
Company dysfunctions can creep in otherwise
…but Scrum is meant to be modified (eventually)
Agile planning is harder to start than thought
o
o
One Scrum team doing a prototype would be ideal
Onsite and CSM
Publisher buy-in wasn’t difficult
o
Get them into reviews and planning
Lessons Learned…
Normal Velocity
Overtime Velocity
Overtime value is limited
but intensity is raised
Old Habits Die Hard
• Over-design
• Delayed integration
• Seating by discipline
• Command and control
Week 1
Week 2
Week 3
Week 4
Week 5
Waterfall Project End
Iterations
Testing needs to be pushed
Waterfall Project Start
Benefits
o
Improved…
o
o
o
o
Productivity
Reliability of build
Quality of game
Morale
o
o
o
o
Ownership
Team work
Communication
Enables low-cost executive
awareness
o
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.com
o
o
o
Books
Mailing lists
AGD Blog
Questions?