42

Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple
Page 2: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

Agile Game Development:Agile Game Development:Tales from the TrenchesTales from the Trenches

Noel LlopisNoel [email protected]@convexhull.com

Senior ArchitectSenior ArchitectHigh Moon StudiosHigh Moon Studios

Page 3: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

Coming upAgile DevelopmentOrganization-Wide Agile TechniquesProgramming Agile TechniquesLessons Learned

Page 4: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

PART 1: Agile Development

Page 5: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

MotivationChanging requirements

Finding the fun factor

Wasted effort, avoiding crunch

Unknown technical constraints

Page 6: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

What Is Agile Development?Just-in-time decisionsAdapt to changeMaximize work not done

Page 7: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

What Is Agile Development?

Start

End

Start

End

Start

Initial goal

End

Page 8: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

What Is Agile Development?

0

20

40

60

80

100

Time

% "Fun" Known

DesiredWaterfall

Page 9: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

Scrum

Page 10: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

Extreme Programing (XP)

Page 11: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

PART 2: Organization-Wide Agile Techniques

Page 12: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

Deciding on Priorities“Customer” is the person responsible for the direction of the team.Customer decides what are the most important things to do next (“stories”)Team estimates duration of those stories.Communication between customer and team is essential.

Page 13: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

Short IterationsScrum suggests 30 days. XP 2 weeks. We tried both and we're doing 2-week iterations.Each iteration attempts to create a true "vertical slice"Use results to feed into next iteration

Page 14: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

Short Iterations

3-month 3-month milestonemilestone

2-week 2-week iterationiteration

Page 15: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

Short Iterations

Page 16: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

Who Does WhatPeople pick whatever task they want to work onGreat for morale and spreading knowledge.Integrate domain experts.

Page 17: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

Sheduling

Page 18: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

Team CompositionSmall teams (8-12 people)Collocated in open work environment. This is huge for quick discussions and communication.Originally only programmers. Now totally cross-functional.Scrum of scrums to scale to larger team sizes

Page 19: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

Team Composition

Page 20: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

Sustainable Pace

Page 21: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

Sustainable Pace

Time

Inte

nsit

y

Planning Implementation Alpha Beta Release

Iterations

Page 22: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

PART 3: Programming Agile Techniques

Page 23: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

Pair Programing

Page 24: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

Page 25: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

Pair ProgrammingIs output 2x of what one programmer can do? Not quite.It's a bit less (around 1.7x), but also has other huge benefits:

Much higher qualityMuch higher qualitySpread knowledge/philosophySpread knowledge/philosophyTeam spiritTeam spirit

In the long term is a huge win

Page 26: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

Pair ProgrammingNot everybody likes it, but a very large number of programmers do.Some teams use it almost all the time, some other teams not as much.Another benefit: Intensity and concentration. You never have low moments, little breaks, or anything. You work 8 hours and you end up exhausted!

Page 27: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

Test-Driven Development

Check inCheck in

Writetest

Writecode

Refactor

Page 28: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

Test-Driven DevelopmentQuick idea: test-code-refactor cycle.All code unit-tested. Written by programmers.Design methodology.Much easier to refactor/optimize

Page 29: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

Test-Driven DevelopmentGet a unit-test framework (UnitTest++)Running on the 360 is a bit more challenging, but doable.Need to be able to run a program, capture its output and return code.Xbreboot should really do it.We used the XboxManagerClass API

Page 30: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

Continuous IntegrationMany small, very frequent check-ins (maybe every 3-5 minutes).As soon as any code is checked-in, build is triggered.People are notified right away of any failed buildsUnit tests very useful keeping things stable.We use CruiseControl.Net. It's great!

Page 31: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

Page 32: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

Continuous IntegrationHouse rule: Nobody leaves without making sure his last check-in resulted in a successful build.The faster your builds, the better, so pay attention to logical and physical dependencies (feedback time for normal checkins is around 10-20 seconds).Much slower for Unreal projects.

Page 33: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

Collective Code OwnershipTrue collective code ownership, not "no code ownership".Really relies on unit tests and shared knowledge.

Page 34: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

Automated TestsUnit tests from TDD are only part of all the automated tests.Functional tests: Test whole program or parts of itFully automated. Run them on the build server at least once a day (we have them running every couple of hours).Run them on your target platforms as well.

Page 35: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

Automated Tests

Page 36: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

PART 4: Lessons Learned

Page 37: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

How Is It Working?We're discovering the important stuff firstMuch improved code qualityMore robust buildsPeople are really happy

Page 38: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

What Can Be Improved?Team composition

How many resources are sharedHow many resources are sharedHow to fully integrate people with different How to fully integrate people with different ways of working and thinking (programmers, ways of working and thinking (programmers, artists, designers)artists, designers)

Page 39: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

What Can Be Improved?Team self-organization

Big goal of scrum. Made lot of progress but can Big goal of scrum. Made lot of progress but can be taken a step beyond.be taken a step beyond.Team needs to realize they're empowered to Team needs to realize they're empowered to do whatever it takes to get their tasks done.do whatever it takes to get their tasks done.Sometimes some leadership will still be neededSometimes some leadership will still be needed

Page 40: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

What Can Be Improved?Non-productive time

Scrum recommends 1 day for reviews and 1 day Scrum recommends 1 day for reviews and 1 day for planning.for planning.That's 2 “wasted” days for every 10 working That's 2 “wasted” days for every 10 working days. Even worse with multiple teams.days. Even worse with multiple teams.We recently changed things to minimize down We recently changed things to minimize down time and we do reviews and planning the same time and we do reviews and planning the same day.day.

Page 41: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

Adopting Agile DevelopmentWe have customized a lot of the standard scrum rules to fit game development.Start with standard process, then adapt it.Try it out in small team working on a sub-project.XP was easy adopt without any major changes.

Page 42: Agile Game Development · Non-productive time Scrum recommends 1 day for reviews and 1 day for planning. That's 2 “wasted” days for every 10 working days. Even worse with multiple

August 14-15 2006

ResourcesGames from WithinGames from Withinhttp://www.gamesfromwithin.comhttp://www.gamesfromwithin.com

Agile Game Development Agile Game Development http://www.agilegamedevelopment.comhttp://www.agilegamedevelopment.com

[email protected]@convexhull.com

Questions?