330 likes | 607 Views
Agile Methodology in Game Development: Year 3. Clinton Keith CTO, High Moon Studios. What We’ll Talk About:. Why use Agile? Background on “Agile Methodology” at HMS and in general Overview of “Scrum” Agile Planning We’ll touch on eXtreme Programming
E N D
Agile Methodology in Game Development: Year 3 Clinton Keith CTO, High Moon Studios
What We’ll Talk About: • 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 • Application to game development • What were the lessons/benefits • 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 • Used Scrum in last year of Darkwatch • Helped keep the project on track • Have adopted XP and Agile planning practices on new projects over the last year
Far from Agreement Anarchy Complex Requirements Complicated Simple Close to Agreement Technology Far from Certainty Close to Certainty Wasted Effort Can Come From “Noise”…and it influences what processes we use Preproduction - Agile Production - Lean Source: Strategic Management and Organizational Dynamics by Ralph Staceyin Agile Software Development with Scrum by Ken Schwaber and Mike Beedle.
What is Agile Development? The Agile Manifesto: • Individuals and interactions over processes and tools; • Working software over comprehensive documentation; • Customer collaboration over contract negotiation; • Responding to change over following a plan;
Scrum • Scrum is commitment-oriented • Scrum is results-oriented • Scrum is disciplined
Origins of Scrum • “The New New Product Development Game” in Harvard Business Review, 1986. • 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 (Sprint) Tasks NPC New version of the game Camera Review and Planning Prioritized Game Features Gfx (Product Backlog)
The Scrum Cast ProductOwner ScrumMaster Team Customers
Product Backlog 24 hours Daily Scrum Meeting 30 day Sprint Backlog tasks expanded by team Sprint Backlog Potentially Shippable Product Increment Product Backlog As prioritized by Product Owner Estimated for planning Broken down into stories that can fit in a sprint
Sprint Backlog Sprint Backlog broken out by team Sprint Sprint Goals New Game (Vertical Slice) Product Backlog
No changes to the goals allowed during a Sprint in effect Change Sprint Tested Game User Stories
Sprint Review and Planning Sprint Backlog broken out by team Sprint Sprint Goals New Game (Vertical Slice) Product Backlog Review and Planning
Daily Scrum 24 hours Daily Scrum Meeting Sprint Backlog broken out by team 30 day Sprint Sprint Backlog New Game Product Backlog As prioritized by Product Owner
Task Mon. Tues. Wed. Thurs. 3 Code the widget 8 0 0 16 Create widget asset 16 10 4 16 Test middle tier 8 16 4 Write widget tester 8 8 0
Sprint Backlog Burndown Chart Drag works against velocity Slope = Velocity Dropped Story
Scaling Scrum - The Scrum of Scrums Functional Leadership Support services Teams
Other Agile Practices • Agile Planning • eXtreme Programming (XP)
Agile Planning • You can’t plan away uncertainty • 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 High Sprint Release Value Cost Priority Future Releases Risk Knowledge Low
eXtreme Programming (XP) Alpha/Beta Cost Of Change Development Design Time
TDD Pair Programming ContinuousIntegration Refactoring UnitTesting Automated Build and Test SourceControl XP Builds on Good Practices
Agile Game Development • Lessons learned • Benefits • Where to go for more info?
Lessons LearnedGetting Started • Start small • One Scrum team doing a prototype would be ideal • Do what the book says from the start • Company dysfunctions can creep in otherwise • …but Scrum is meant to be modified (eventually) • Agile planning is harder to start than thought • But XP was easier • Coaching was critical • Onsite and CSM • Publisher buy-in wasn’t difficult • Get them into reviews and planning
Normal Velocity Lessons Learned… Overtime Velocity Overtime value is limited but intensity is raised • Old Habits Die Hard • Over-design • Delayed integration • Seating by discipline • Command and control Waterfall Project End Iterations Testing needs to be pushed Waterfall Project Start
Benefits • Improved… • Productivity • Reliability of build • Quality of game • Morale • Ownership • Team work • Communication • Enables low-cost executive awareness • Which means you don’t have to work hard to find out what’s going on
Where to go for more info? • www.agilegamedevelopment.com • Books • Mailing lists • AGD Blog