Personally, I tend to grasp things better visually. Tell me the directions to your house and, while I'll get there, it will probably take me longer and cause me more frustration than if you had also provided a map. It can also be helpful to create a map of functionality when developing products. In their simplest form, products are bundles of functionality that end users utilize for benefit. Early in the agile product development life cycle it can be very difficult to develop an initial prioritized product backlog of user stories.
The story map is one tool we can use to do create and prioritize our initial product backlog. The story map is a product planning tool to help prioritize features and functionality relative to each other. It will also allow a product owner to think about the product from a user’s perspective, thereby staying in the “what” of the product (which is the responsibility of the Product Owner) and staying out of the “how” of the product (which is the responsibility of the team).
The process of creating the story map will begin with identifying high-level user activities and decomposing the activities into tasks the user will perform. Finally, each user task will decompose into user stories that will ultimately reside in the product backlog. The illustration below provides an example using an email product (click image to view full size).
The story map above provides a wealth of information about the product. First, the highest level outlines user activities such as organize email, manage email, manage calendar, and manage contacts. The next level identifies the user tasks associated with each user activity. For example, the “search email” and “file emails” user tasks are both associated with the “organize email” user activity. The lowest level is the user story level. The “move emails” and “create subfolders” stories are required to enable the “file emails” user task.
The user stories identified in this story map have also been organized into releases. In this case, three releases have been identified. In this way, the user stories have been prioritized. Those user stories in release 1 are higher priority than release 2, which is higher priority than user stories in release 3. Therefore, user story priority can be changed directly by moving a user story from one release to another.
Finally, notice that some user stories list a status in their upper right-hand corner to indicate whether they are done or if the work is in progress (WIP). The story map can be a great planning tool and can also reside as a visible living information radiator that can be updated as needed; at the end of each sprint at a minimum. The definitions of story map levels are outlined in the illustration below (click image to view full size).