One of the key objectives of a project inception is to collect requirements collaboratively. But, many times, it is difficult to decide where to start and what to focus on. Story mapping is an engaging activity where all participants are involved in the process of building the product backlog on a wall, versus writing a dull 100-page requirement document.
Story mapping was invented by Jeff Patton and introduced to me by Chirag Doshi and I find it very effective and useful tool to capture requirements during inception.
Building a story map
Story mapping is a top-down approach of requirement gathering and is represented as a tree. Story mapping starts from an overarching vision. A vision is achieved via goals. Goals are reached by completing activities. And to complete an activity, users needs to perform tasks. And these tasks can be transformed into user stories for software development.
Story Map Structure: Goals > Activities > Tasks > Stories
Lets take an example of an online store application’s one of the goal ‘Find product’ and build a branch of a story map to understand it better,
To achieve goal ‘Find product’ there are multiple ways such as ‘Browse through product category tree’, ‘Free text search’, ‘Promoted products’. Lets take one approach ‘Browse through product category tree’ to build our story map,
now to complete activity of reaching a required product, user needs to do perform certain tasks,
now this tasks can be converted to user stories for software development,
like this continue to deep dive each branch of the story map starting from goals and build the whole story map. In my experience building full story map takes from 3 days to 2 weeks based on project size and complexity.
For your reference, here is a sample branch of story map from real project,
and full story map after 5 days of activities looked like following,
Now we learned how to build story map, lets look at the advantages of it.
Advantages of story mapping
- Visual presentation of the product backlog (big picture) brings all the stakeholders on same page, in terms of scope and complexity. It also indirectly provides a view of project size.
- Requirements captured in a physical format fosters collaboration and builds shared understanding.
- Since inception is usually a time boxed activity, the story map approach helps to deep dive and focus on important features of the application. Marking ‘nice to have’ features as ‘out of scope’ during deep dive sessions, helps the team save time.
- Interestingly, having all stories laid out on the wall assists the team to perform relative sizing of the stories quickly.
- Story map structure helps with prioritisation and allows for easy slicing of the backlog into releases and carve out MVP. Slicing can be done vertically or horizontally, such as few features or more features with MVP in each feature.
- Story map can be transformed to agile project management tools like Mingle as product backlog.
Enrich story map with more information
Sometime we need more information to be captured with story map e.g. nice to have stories, follow up questions, alternative approaches... This is like enriching the story map with more information. Following are few of the use cases of same,
- Use different colors to represent different levels in story map e.g. Orange for Goals, Blue for Features, Green for Epics and Yellow for Stories.
- Put wireframe next to the relevant area of story map.
- Use stickers like dots or stars to represent special notations:
- Marking out of scope features are important for shared understanding
- Identifying alternatives help to capture rich user experience and low cost alternative solutions
- Use small sticky to capture notes, assumption, follow-ups or questions
Alternative ways of structuring story map
In story mapping, defining a structure is important and then refine it as needed. The objective is to start with some structure in mind and evolve from it. Sometime it takes 2-3 iteration to get the structure right.
One alternative structure is based on ‘User Journeys’. User driven approach helps to identify requirements from user perspective e.g. buyer, seller, administrator etc. The map is then structured as User > Goals > User Journeys > Actions > Stories.
Another alternative, especially useful for NFRs (non-functional requirements) can use:
NFR > Requirement > Story.
Large projects may require up to 6 levels in a story map. However for smaller projects, 3 levels are usually sufficient.
Preparing for story mapping exercise
Now that you are convinced about using story map for your next gig, lets look at what you need to get ready for the activity:
- A large Conference room with empty wall space for full duration of inception.
- Different color stickers, one for each level.
- Thick marker pens (1.5mm thick permanent marker) 10+ nos - to read stickies from far.
- Stickers (dots or stars) - to enrich story map with more information.
- Use magic charts/whiteboard in case walls are not a good surface for stickies.
- A good camera to take photos of the wall.
While doing story mapping I ran into challenges and found ways to overcome those. Following are tips to avoid those traps and help you run the story mapping successfully.
- Story mapping is a discovery phase for products requirements, follow principal of capturing everything with alternatives to avoid long running discussions.
- Prioritise deep dives frequently to avoid spending time on less relevant topics.
- Tidy up and rearrange stickies frequently before it grows big and becomes very difficult to manage. Keep good walking space near walls. e.g. NFR story map wall photo shown above :-)
- While working with stickies, remember to remove stickies carefully to avoid folds, so it stays on the wall for the whole duration of the activity, and is readable in photographs.
Story mapping is an effective inception tool to create a product backlog in a visually structured way. It helps in building a shared understanding, identify gaps in the backlog, see interdependencies, perform better relative sizing. Further, it can also help in slicing and release planning activities.
- Book User Story Mapping by Jeff Patton
- Read more on capturing non-functional requirements using story map
Many thanks to Gurpreet for review and valuable feedback.
If you have tried story mapping on your project, please share your learnings, thoughts, photos using comments.
Disclaimer: The statements and opinions expressed in this article are those of the author(s) and do not necessarily reflect the positions of Thoughtworks.