Combining User Story Mapping with Domain-Driven Design
In the urge to develop a requested feature developers too often skip the conversation needed to build a shared understanding of the business; instead they favour a technical discussion and to jump straight into implementation, losing an opportunity to learn the domain and to model the software with the concepts from the domain Eriksen Costa claims in a blog post discussing advantages combining User Story Mapping with Domain-Driven Design (DDD).
Costa, CTO at Wikidu, notes that we use different practices, e.g. Test-Drive Development (TDD) and Continuous Integration to build quality into our software systems but that this doesn’t imply that the system automatically will reflect the domain concepts at hand, and he cites Eric Evans from his DDD book:
If programmers are not interested in the domain, they learn only what the application should do, not the principles behind it. Useful software can be built that way, but the project will never arrive at a point where powerful new features unfold as corollaries to older features.
Costa emphasizes that with DDD came a new approach to software development which is not about technology, instead focus is on developers and domain experts discussing to reach a common understanding, and on creating both a model and a common language (Ubiquitous language) describing the domain.
Creating the story map as the first step towards a common understanding is what Costa believes really can help motivating developers adopting DDD. Story mapping can more clearly visualize information about the big picture and help in prioritizing which stories to work with. Making it a collaborative effort will stimulate all involved to participate in the conversations and the developers will get a better understanding of how their work fits in the big picture. He also believes it can build stronger relations between team members and making them more aware of the business goals.
Costa includes a short crash course explaining the basic concepts of User story mapping. Besides Jeff Patton, Gojko Adzic has written extensively about user stories and Impact Mapping, one example being Splitting user stories -- the hamburger method.
Costa final conclusion is that User story mapping can be a simple yet valuable pattern for a DDD adoption in projects dealing with complex domains. Story mapping can help creating a shared domain knowledge among developers and domain experts as well as the initial Ubiquitous language glossary.