User Story Mapping for Domain Discovery

User Story Mapping for Domain Discovery

Practices like Domain-Driven Design has put an important spotlight on the criticality of collaboration between IT and the domain experts when building business critical software. Many companies also see the need to get more intimate with their customers, getting a better understanding of their desires and needs, thereby building a much more loyal customer base. This is where service design, user experience research, and agile concepts like user stories shines. Can User Story Mapping help us design software solutions that are not only feasible and valuable, but also usable?

"The best solutions come from collaboration between the people with the problems to solve and the people who can solve them". -Jeff Patton

This is an abridged version of the chapter on User Story Mapping published as part of the free Visual Collaboration Tools book on Leanpub.

Are you in a company that is customer obsessed – or tries to be – and strives to create solutions that focus on the user needs and desires? Maybe you even try to build those solutions together with the customer and their users, involving them in the actual design by building incrementally using mock-ups, pilots, and MVPs? You have probably wondered how on earth you can design and build a viable systems portfolio in such a setting, avoiding the risk of throwing together unfinished components with duct tape, strings, and paper clips, or maybe ending up creating overly complicated solutions to cater for any future need. There is a lot of talk about evolutionary architecture, but how can we tie that in with the customer needs? In order to build sustainable systems, we need to know where the early prototypes are taking us; we need to be able to see further ahead. In short, what can help us do domain modelling in this highly agile world?

User story mapping is a practice that grew out of the agile community as a way of structuring the user stories in a narrative as experienced by the end users of the application you are building, telling the story from their perspective. The insights gained from this visualisation tool, be it product discovery, domain knowledge, delivery planning, and team collaboration, will then be directly connected to this focal point, the user experience.

User stories has become a common way of describing what the user wants in many agile approaches, be it XP where it originated or in the prevalent Scrum framework. Even though it was never meant as a new way of writing requirements, many teams still struggle with large, unstructured, and one-dimensional product backlogs of stories written as a detailed wish-list like requirement documents used to do. It is hard to get a good handle of this list, especially ordering and breaking it up in a good way to maximise the outcome in a sustainable and consistent way. Mapping the stories to the user journey, with all the activities and task performed, opens up a new dimension where it becomes a lot easier to find what needs to be constructed together to make the application usable, split into viable product increments. The design can then be done in an evolutionary manner, where each step can potentially be put in front of users, shortening the essential feedback loop.

A subtle and important effect of doing this mapping and working with it the whole way from inception to software delivery is that the design is explicitly connected with the user interaction. One can no longer just simply gather a long list of requirements from all relevant stakeholders. Everything must be mapped to some user activity, forcing the designers to view everything from the user's vantage point. The user stories concept start making sense then, as it was originally intended; it is about how it is used, not how it is written.

Story mapping is well-suited as a collaborative tool for all stakeholders in the design process, all the way from the initial ideation and inception, creating coherent customer journeys, via the construction phase, to the continuous enrichment and maintenance of the product after the initial deliveries. It covers all three "-ilities" of a product: usable, valuable, and feasible. It makes sense for service designers as it cover large parts of the customer journey and experience (CX and UX); it is great for product discovery, making it easy for product managers to describe the intent and purpose of the product; and it is a great way for technical designers to do domain modelling, creating feasible solutions by bridging the gap between the problem and solution space.

"When engineers think of "the customer" in the abstract instead of as a real person, you rarely get the right outcomes". –Gene Kim, “The Unicorn Project"

Although user story mapping is mainly a product discovery and development tool, it can also be beneficial for domain modelling as it describes the problem space in a very clear and holistic way. When designing technical solutions, the complexity of the problem space is all too often not captured well enough, leading to naive designs based on existing technical solutions or reuse of previous experiences by the architects and technical experts. The designs should instead be driven by a deep understanding of the problem space, for which the story map is a good tool. It gives the designers the necessary outside-in perspective, guided by the user's mental model of the product to be built. This, in addition to the evolutionary design championed by story mapping, enforces an evolutionary approach to the technical design.

Some concrete takeaways from story mapping for a domain modeler:

  • Seeing what data needs to be shown together and saved together, helping to identify bounded contexts.
  • Identifying the ubiquitous language for each bounded context, not only based on the domain expert’s business lingo, but also on the user experience.
  • Identifying data that needs to be transactionally bound and what can be eventually consistent.
  • Finding aggregates, with its data and invariants.

To learn more about User Story Mapping and what else it can be used for, with tips and tricks in how to run a workshop, check out the free Visual Collaboration Tools book on Leanpub. Here you can also can learn more about a number of other great modelling and collaboration techniques like Event Storming, Business Capability Modelling, Domain Storytelling, Business Model Canvas, Example Mapping, Impact Mapping, Wardley Maps, and much more, all written by industry experts with a lot of experience using the tools. By paying a small fee you can also contribute to a good cause, a diversity program in tech.

If you want to learn more about what user story mapping and how they can be used for domain discovery, I do hands-on labs on conferences from time to time.