In software development, the details of the business problem is often overshadowed by the allure of technology. With a vague understanding individual views and assumptions end up in code, an expensive feedback loop.
Software development is not merely a battle against technological challenges; it is fundamentally a journey through the intricacies of human interaction. As industry professionals, our most daunting task often lies in incorporating your key stakeholders into the software design process. The key to unraveling this complexity is not found in code but in our ability to foster shared understanding and effective teamwork. In the talk “Gather your party before venturing forth” three modeling formats are introduced, stemming from the Domain Driven Design Community, to further aid forming a shared understanding through collaboration and co-creation. In short;
- Domain Storytelling:
Concept: This approach revolves around crafting domain stories that detail how actors within a process interact with each other. It’s a method that transforms abstract requirements into tangible narratives, ensuring all team members are on the same page.
Implementation: Using a simple pictographic language, domain storytelling captures the essence of interactions, highlighting key actors, actions, and outcomes.
- Event Storming:
Overview: Originating from the event-driven architecture realm, event storming focuses on identifying and ordering key business events along a timeline. It’s a powerful tool for dissecting processes and uncovering hidden complexities.
Practical Use: By engaging various stakeholders in the creation of an event timeline, event storming fosters a shared understanding of business processes, revealing potential areas of disagreement and complexity.
- Event Modeling:
The Approach: This method integrates closely with UI/UX design, aligning system changes with user experience, concentrating on system states and their transformations over time.
Application: Event modeling excels in environments where design drives development, allowing teams to visualize the impact of state changes in the UI and backend systems cohesively.
Navigating the Path of Collaboration:
There is no lack of tools in the team's tool belt. Choose the tool that gives the best value. While each method offers unique advantages.
Of these three domain storytelling stands out for its simplicity and its self explanatory approach. Where you could communicate your understanding/view for mutual understanding among team members.
But when used as a real workshop format all three formats share the same challenge - facilitation (Improve, Envision, Explore, Design). You could practice in safe environments with low expectations, but running workshops with stakeholders needs experience to meet expectations. So there is no coincidence there is training and books on facilitating for all these formats.
The Journey Ahead: Keeping Designs Alive:
One of the greatest challenges in using these collaboration methods is maintaining their relevance over time, when desired. It is essential to continually update these 'blueprints' to reflect changes and feedback, ensuring they remain accurate representations of the system and its processes.
As we embark on our software development journeys, the emphasis on collaboration and shared understanding becomes increasingly important. These insights remind us that in the realm of software development, gathering your party with clear, collaborative strategies is vital before venturing forth into the complexities of coding and design.