CS 415 - Agile Game Development

User Stories

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

The Big Picture

Flappy Bird gameplay video.

User stories describe the requirements for the project. Ideally, we need a method to track and communicate the requirements that

User Stories Defined

User stories express the value of features to a customer and elicit conversation. User stories represent the requirements of the game from the point of view of the user, not the developer. They don't fully describe design details.

A typical format of the user story: As a <user role>, I want <goal> [so that <reason>].

Since teams complete one or more user stories per sprint, they need to be sized appropriately. However, every large feature should not be split into sprint-sized stories at the start of the project because this would create too many stories to be practically managed by the product owner. User stories that are too large to be accomplished in a single sprint are called epics. Sometimes a number of related user stories are gathered together in a theme, which are beneficial for aggregating user stories for estimating.

Level of detail in a user story can be achieved by

Qualities of a good user story (INVEST):

Independent
Stories should be independent from other stories in the order they are implemented. Dependencies create problems that make them hard to prioritize and estimate.
Negotiable
Stories are not contracts or detailed requirements. They are placeholders for conversation between the stakeholders and the team. A story that is too detailed and specific shortcuts those conversations by creating the illusion that all details are known and don't require any dialogue.
Valuable
Stories need to communicate value not only to the player but also to the team developing and marketing the game. The product owner adjusts the priority of user stories on the product backlog by judging their value. Stories not expressed in terms of value are difficult to prioritize.
Estimatable
Stories need to be estimated. This requires knowledge about what and how it will be built. If not enough is known or the scope of the story is too large, then the story cannot be estimated well enough.
Sized appropriately
Stories need to eventually be made small enough to fit into a sprint when implemented. If they are too large, they are disaggregated. A group of small stories can be combined into a larger story more easily managed as a theme (e.g. a group of minor bug fixes).
Testable
The story should be written so that it is verified before the end of the sprint. Without this, the team cannot determine whether they satisfied the stakeholders. This is best achieved using the conditions of satisfaction.

Spikes (or tracer bullets) are special timeboxed user stories that are aimed to add knowledge about the cost of implementing the main story. After the spike, the product owner and the team should better understand the cost of implementing the full feature.

Big advantages of user stories: