Story Mapping Gives Context to User Stories
The Scrum notion of 'backlog' is a single, prioritized list of user stories for the team to implement. This works well for organizing what the team should work on in the near term, e.g. during sprint planning. At the Orlando Scrum Gathering, Jeff Patton described story mapping. This is a way of organizing stories that provides richer context and can help with release planning.
The topic of story mapping isn't a new one for Jeff. He wrote about it in 2005 and again in 2008. During the open space portion of the 2009 Orlando Scrum Gathering, he shared his latest thought on the practice.
Though a story map isn't necessarily a replacement for a product backlog, it is useful to compare and contrast them. The product backlog is essentially one-dimensional. User stories are organized from highest to lowest priority. A story map is two-dimensional, indicating the priority of stories, as well as their relation to each other and the larger goals of the users. The map helps the team to understand how stories fit together to form a releasable product.
The process starts with identifying the users of the system, and the activities they will be doing. In Jeff's 2005 article, he gives the example of software for a retail store. The users' main activities are:
- Create purchase order for vendor
- Receive shipment from vendor
- Create tags for items
- Sell items
- Return items
- Analyze sales
Mike Cohn refers to these as 'epics'. Jeff refers to these as 'the backbone' of the story map. They describe, at a high level, everything that the user needs the system to help them do. These activities are recorded on cards and arranged from left to right in the order that they would naturally occur. Jeff recommends using the order that you would choose if describing the business process to someone unfamiliar with it.
Below each of these activities, arrange the associated user stories, putting the most important ones higher up than the less important ones. Now the backbone has grown ribs. Each story is associated with a user activity, and has a priority. A release plan can be visually represented by drawing a horizontal line from left to right. Stories above the line are in the release, and those below are not. In fact, several releases can be planned this way, dividing the map into horizontal 'swim lanes'.
What tools or techniques do you use to plan releases and keep track of the contexts in which your stories exist? Leave a comment and share.