CS 415 - Agile Game Development

Scrum

Reference: Clinton Keith, Agile Game Development with Scrum, Chapter 3.

The Big Picture

Rugby scrum video

A game developed with Scrum makes progress in two- to four-week iterations (sprints) using cross-discipline teams of six to ten people. At the start of a sprint, during the sprint planning meeting, the team selects a number of features (product backlog items, PBIs) from a prioritized list (product backlog). The team then estimates the tasks required to implement each PBI into a sprint backlog. The team only commits to features in a sprint that they judge to be achievable. The team meets daily during the sprint in a 15-minute timeboxed meeting (daily scrum) when they share their progress and any impediments to their work. By the end of the sprint, the team has created a playable game, which won't necessarily pass all the tests necessary to ship (potentially shippable game). The stakeholders (managers, directors, and publisher staff) of the game gather in a sprint review meeting to evaluate whether the goals of the sprint were met and to update the product backlog for the next sprint based on what they've learned.

The Principles of Scrum

Empiricism
Scrum uses an "inspect and adapt" cycle that enables the team and stakeholders to respond to emerging knowledge and changing conditions in real time using actual data. An example of this can be seen in the daily scrum practice, which enables the team to react to daily issues.
Emergence
As we develop a game, we learn more about what makes it fun, what is possible, and how to create it. Scrum practices don't ban designs from being developed up front. They acknowledge that we can't know everything about a game from the start. The sprint review and planning cycle is designed to maximize emergence of features as seen in a working game.
Timeboxing
Scrum is iterative. It delivers value on a regular basis and enables stakeholders and developers to synchronize and micro-steer the project as value emerges. Sprints are an example of a timeboxed practice.
Prioritization
Some features are more important to the stakeholders than others. Rather than approaching the development of a game by "implementing everything in the design document," Scrum projects develop features for a game based on their value to the player who will buy the game. The product backlog is an expression of this principle.
Self-organization
Small, cross-discipline teams are empowered to organize their membership, manage their process, and create the best possible product within the timeboxes. They use the "inspect and adapt" cycle to continually improve how they work together, often through the sprint retrospective meeting.

Scrum Parts

The Product Backlog
It is a prioritized list of the requirements or features (PBIs) for a game, a tool set, or the pipeline for making the game. The product backlog is allowed to change after a sprint. PBIs that weren't anticipated are added. PBIs that are no longer necessary are removed, and the priorities are changed as necessary.
Sprints
A Scrum-developed project makes progress in iterations (sprints). Sprints have a fixed duration (timebox) of two to four weeks.Teams commit to PBIs they can complete within the sprint. A sprint goal is the overall objective of the sprint to which the team commits; it remains unchanged. At the end of the sprint, the team shows a new version of the game to the stakeholders, which demonstrates the sprint goal.
Releases
Releases are a set of sprints meant to bring a game with major new features to a near-shippable state. Releases establish longer-term goals for the team and stakeholders. Releases start with a planning session that establishes major goals for the game. A release plan drives the goals for each sprint.

Scrum Roles

The Scrum team consists of a ScrumMaster, a product owner, and a team of developers.

The team (developers)
The team includes everyone from every discipline necessary to complete the goals that the team commits to for a sprint.
ScrumMaster
The ScrumMaster improves the use of Scrum through coaching, facilitation, and the rapid elimination of anything that distracts the team from delivering value. One of the main responsibilities of the ScrumMaster is to nurture the sense of ownership within the team. Specific responsibilities of the ScrumMaster include:
  • Ensures impediments are addressed
  • Monitors progress
  • Facilitates planning, reviews, and retrospectives
  • Encourages continual improvement
  • Helps stakeholders and teams communicate
Product Owner
The product owner establishes and communicates the vision of the game and prioritizes its features. The product owner is responsible for the following:
  • Managing the ROI for the game
  • Establishing a shared vision for the game among the customers and developers
  • Knowing what to build and in what order
  • Creating release plans and establishing delivery dates
  • Supporting sprint planning and reviews
  • Representing the customers, including the player who buys the game
Examples: Shigeru Miyamoto (Donkey Kong, Mario, Zelda), Will Wright (The Sims, Spore), Sid Meier (Civilization series).
Customers and Stakeholders
Customers and stakeholders define many of the items on the backlog. They work with the product owner to help prioritize the backlog. Although the product owner is a member of a Scrum team, the product owner is considered the "lead customer." This person determines the priority of features on the backlog. The product owner provides a service to the team by being the one voice of all the customers and stakeholders.

New Zealand's All Blacks rugby team performing a haka