Fotolia

Tip

How user story mapping aids requirements gathering in Agile

Agile requirements are dynamic, not static. Collaborate on user story maps to make sense of frequently evolving customer needs, and put a Scrum Master at the center of it all.

Gathering or generating user stories in an Agile development system is a unique process. Rather than set rigid requirements, as software development organizations did for years, Agile requirements leave room for flexibility and change.

A software development team typically includes product owners, testers, developers, dev directors and customer representatives, each with an active role in the Agile process. Each person helps generate user story ideas for features, as well as requirements and acceptance criteria. Acceptance criteria and many design aspects are subject to change in Agile, and those changes can make it more difficult to track progress and keep team members informed.

User story mapping can help. Developers release code intermittently, or in sprints, which means internal and external users, testers and developers have time to fully consider the design needs of application features. Several aspects come together during requirements gathering, including techniques like story mapping, the Scrum master role and an array of tools that enhance the team's ability to communicate and interact effectively.

Story mapping bridges the communication and understanding gaps between product design, development and management. Typically, the Scrum master manages the story board, and the team uses the story map to communicate and interact. Most importantly, story mapping helps diverse team members work from the same understanding of what stakeholders expect the application's features to be.

Role of the Scrum master

When gathering requirements in Agile development, the Scrum master is not just a personnel manager; she handles outside distractions or external complications that could delay progress. Scrum masters translate product owners' and customers' needs, keeping the team focused on discovery and communication -- not the day-to-day obstacles that arise. In this liaison-like capacity, a Scrum master influences the design and quality of the final product.

Often described as servant leaders, Scrum masters simultaneously enforce policies and keep the team focused on application design. They also encourage team communication and performance. Scrum masters can't simply be cheerleaders or Scrum aficionados; they must actively keep the team on track to reach its goals.

Many software development teams combine the role of Scrum master with that of a development manager or project lead. In that case, the Scrum master must keep her other role from interfering with leadership responsibilities. The Scrum master must remain the center of the whole team.

Story mapping provides an organized and visual map of project state. It covers everything from the general overview to the specific story details.

Why product backlogs fall short

A product backlog comprises future items to work on, listed in priority order. Product design creates user stories and lumps them together in a list; typically it's the product owner or the Scrum master who manages said listing. Many software development tools include a product backlog feature.

Product backlogs work for Agile requirements management, but they don't offer the same level of visualization and understanding as user story mapping. Backlogs fail to provide a high-level overview of the design and team progress, unless you dig into each epic and its associated stories. Product teams and Scrum masters manage backlogs, but the development team often ignores them. It's not easy to visualize the application, its current state and future planned state with a backlog, let alone keep up to date with design changes.

If your development, product and management team members struggle to gain a shared understanding of existing and future application features, consider switching from a product backlog to a story mapping approach.

Product backlog vs. user story maps.
Compare product backlog items and user story maps.

Story mapping techniques

Story mapping enables a team to visually map out user stories and discover feature design through active discussions. With user stories, the team fleshes out the full feature design, from the initial vertical slice that defines the work to be done at each layer of the software to the final feature.

As they write and discuss user stories, the Agile team gathers requirements for the system. For example, a team discovers that certain items are must-haves to meet the customer's needs; those discovery points become requirements. Some requirements are internal, rather than external. Developers might need to alter application code to accommodate changes, which can carry significant design implications. Discuss all the intricate details and integration points to discover the requisite path to a working, high-quality application feature.

Effective story mapping offers active discussion and visualization of steps, stories and requirements or acceptance criteria. Ideally, a development team should build out a full map of a project. Discussion and map building between team members and stakeholders benefits everyone, because it provides an overall layout of the current and planned application functionality. Additionally, story mapping enables the dev team to envision the features or items existing in their backlog and judge item priorities within the full workload.

During story mapping, jot down all relevant thoughts and ideas, then put them up for discussion and consideration. The more ideas on the board, the less each person must remember individually. Each stakeholder can access the story map, as well as add to and update each user story as needed. Most tools that developers use for these projects track actions, creating a history of all changes.

When customers understand the full picture, they can better describe what they need while that code is in development and testing -- where it is far less costly to implement changes than after release.

Story mapping tools

Story mapping tools help developers, the product team, and upper management stay on the same page when gathering requirements.

Story mapping tools help teams visualize user stories, either in a digital or analog form. Digital tools offer abundant data storage, and people can communicate updates and changes automatically and instantly. Distributed teams benefit from digital story maps that are easy to use even across time zones. While localized teams can opt for a manual board and sticky-note process, paper notes can fall off a physical board, and they may even go missing or some troublemaker may rearrange them to the project's detriment.

If you use an Agile software development management tool, such as Microsoft Azure DevOps Server and plugins for Atlassian Jira, it might already include a story mapping feature. But specialty vendor options might include more functionality. Check out these user story mapping tools.

FeatureMap is a mature cloud-based digital user story mapping tool. FeatureMap offers drag-and-drop editing and storage, with an easy-to-read interface.

StoriesOnBoard is a free tool that includes ample cloud data storage. This widely used tool has a reputation for being the most comprehensive user story mapping option available. It offers the ability to add tasks to existing stories, and a prioritization feature.

Upwave is another cloud-based digital user story mapping tool. As with most tools, it includes drag-and-drop sticky notes for documenting stories. It also includes prioritization as well as the ability to assign stories to team members. Upwave has an intuitive text editor and a calendar to track progress.

Easy Agile is one user story mapping plugin for Atlassian Jira. With Easy Agile and Jira, teams don't have to adapt to an entirely new tool. Easy Agile enables anyone on the team to edit, share and update user stories or maps.

Next Steps

What to include in a user story map and how to make the tool

The 7 user story guidelines every Agile developer should know

Dig Deeper on Agile, DevOps and software development methodologies