Friday, April 24, 2009

Scrum Master for Games Course in Massachusetts

There's less than two weeks to go before Mike Cohn and I give our "Certified ScrumMaster for Video Game Development"course in Cambridge Massachusetts. We still have seats available.

Mike Cohn is the author of User Stories Applied for Agile Software Development and Agile Estimating and Planning. Mike is a founding member of both the Agile Alliance and the Scrum Alliance. He was also our agile/Scrum coach at High Moon Studios.

If you are interested in knowing more, please visit the course site (click on the banner ad below).

Tuesday, April 07, 2009

Book: Agile Game Development with Scrum

I've been working on a book for the last year. The working title is:
Agile Game Development with Scrum

I hope to have it done by the end of summer. It will be published by Prentice-Hall as part of Mike Cohn's Signature Series books. I'm very proud to have the book be a part of the series!

The first draft is complete and second draft chapters are being posted on the book's website:
I am looking for not only feedback, but also your stories of adopting agile in your studio or working with agile game development teams! I want this book to be a reference for the industry. If you have stories to tell, they may be included as sidebars with full credit given.

There is also a LinkedIn discussion group forming. If you have problems joining it, send me a message:

View Clinton Keith's profile on LinkedIn

I put off writing this book for years. I've never enjoyed writing big documents, but I have loved the experience of writing this book! Hopefully that will come through to the readers.

Publisher side product owners

Product owners for a video game project using Scrum are usually a member of the development team. The reason for this is that unlike projects outside the game industry, product owners are needed to provide a much higher level of subjective feedback. Does the control of the player feel right? Is a mechanic “fun enough”? This feedback requires daily engagement with the team.

However, in some cases the publisher will require that product ownership be placed in the hands of someone on their staff. This could be an executive producer or someone who works directly with a licensee. In some cases this makes sense. If a licensee wants to maintain oversight or the publisher wants to make sure that their franchise is well tended, then product ownership at the publisher level makes sense.

Unfortunately this usually means that the team loses the day-to-day involvement of product owner. This can lead the project down bad paths. These projects can lead to “iterative and incremental death marches” when there is a reckoning between what the game provides and what the license or franchise owner sees much later.

A solution is to divide up the Product Owner roles. With this solution, a publisher product owner and a developer product owner would divide and share the role. The figure below shows the arrangement between the two.

The publisher product owner would have the following duties:
  • Own the product backlog. They would have the final say on the PBIs and their priorities. They would focus on the larger release sized epics and not the sprint sized stories that are manipulated between sprints.
  • Establish the release goals. Identify the "Big Hairy Audacious Goals" for the release.
  • Attend release reviews and planning. Attendance is a must. This role won’t work if they can’t sit with the team for at least one or two days between releases.
  • Call for release dates and manage the release plan (the potential set of sprint goals). The release plan has some flexibility by definition. The publisher product owner needs to be involved in any changes are made to the release plan and dates.
  • Is the “one voice” for all the publisher side customers such as sales, marketing, executives and licensees.
The developer product owner has the following duties:
  • Attend the release reviews and planning sessions.
  • Works with the team to refine the sprint goals during sprint planning.
  • Available daily to work with the teams to refine the understanding of sprint goals.
  • Remains the “one voice” for the development team.
The key to making this work is that both product owners need to be “on the same page” with the vision for the game and understand their duties. The entire organization from a tester at the studio up through the executive staff at the publisher need to have the same vision for the game.

Wednesday, April 01, 2009

Hardening Sprints and Dead Frogs

Teams will often schedule a "hardening sprint" at the end of a release. The purpose of the hardening sprint is to add a level of polishing and testing to the game that doesn't normally occur every sprint. An example of a hardening sprint task is to conduct an eight hour smoke test of the game to catch any problems that don't occur when the game is played for a few minutes.

Unfortunately the hardening sprint can end up becoming a dumping ground for work that should be done every sprint. This should be avoided as it postpones the team and customers from evaluating the value features that should be emerging every sprint.

I like to think of a hardening sprint the same way I think about detailing a car. I have a couple of sons, so I’m often cleaning out rocks and once living organisms they collect and forget weekly. Every month I’ll pull out the shop vacuum, rags and hose to give it a quick cleaning.

Every several months I’ll treat myself to getting the car detailed. I’m always amazed at how the detailers will clean out every nook and cranny in the interior. They even clean out the dirt from areas as obscure as the folds of the boot at the base of the shifter. Of course a week later all evidence of this cleaning is gone.

I don’t polish the shifter boot once a week. I don’t have the time or the need to clean to that level so frequently. On the other hand, I don’t put off cleaning out the rocks and wildlife from my car for the detailers. I don't think they'd appreciate cleaning out mummified frogs.

A hardening sprint at the end of the release is like having your car detailed. It’s important that it only be thought of as the extra bit of polishing detail that you don’t do every sprint. It shouldn’t be a dumping ground for bugs, tuning and stand-in asset work that should be tackled every sprint.

So don't leave the dead frogs for the hardening sprints!