Embarking on a voyage at the crossroads of software development and business strategy, we introduce you to the dynamic world of event storming. This powerful workshop technique, deeply rooted in the principles of Domain-Driven Design (DDD), serves as a versatile tool for collaboration, exploration, and visual modeling. It has emerged as a pivotal resource for untangling complexities and streamlining processes.
Yet, in a world where remote work has become the norm, event storming, traditionally an interactive and engaging in-person product workshop, faces unique challenges. In this article, we will embark on a journey to delve into the intricacies of event storming, decoding both its in-person and remote iterations. Join us as we uncover the core essence of event storming and explore its multifaceted facets. We will also shed light on the key elements necessary for a successful adaptation to the online landscape. Get ready to navigate this fascinating terrain as we equip you with insights into the art and science of event storming.
What is event storming?
Event storming is a dynamic workshop technique stemming from the principles of domain-driven design (DDD). At its core, it serves as a collaborative approach to modeling complex business processes and software systems. The methodology, pioneered by Alberto Brandolini, thrives on the interactive participation of stakeholders from diverse backgrounds, including business, software development, and user experience.
EventStorming is an immersive and inclusive practice designed to untangle the complexities of a domain or system through visual modeling. It brings together cross-functional teams in a shared space, typically utilizing a large wall and sticky notes. The central idea is to foster open communication, encourage exploration, and harness collective intelligence to create a comprehensive and shared understanding of the domain.
The process begins with the creation of the Big Picture, a high-level overview of the domain or system, capturing key events and their relationships. Through a series of guided steps, participants collaboratively contribute to the visual representation, using sticky notes to mark events, commands, and relevant details. This unstructured yet guided exploration helps uncover hidden complexities, identify bottlenecks, and align the team's understanding.
Event storming recognizes the importance of physical presence and real-time interactions. The traditional in-person workshops thrive on the energy generated by face-to-face discussions, body language, and the shared experience of mapping out a complex landscape. The workshop is characterized by its fluidity, allowing for emergent insights, open discussions, and the serendipity of collaborative problem-solving.
That said, the transition to a remote work environment, as discussed in the provided context, has introduced challenges to the event storming process. The loss of physical proximity, body language, and the immediacy of in-person interactions poses impediments to the seamless flow of ideas and insights. Despite these challenges, EventStorming persists as a valuable technique, albeit with necessary adjustments and considerations for the online landscape.
What is domain-driven design?
Event storming domain driven design (DDD) is a holistic and strategic approach to software development, stressing the importance of aligning the software model with the real-world business domain it represents. Coined by Eric Evans in his seminal book "Domain-Driven Design: Tackling Complexity in the Heart of Software," DDD seeks to bridge the gap between the technical intricacies of software development and the complex nature of business.
DDD centers around the concept of a "domain". The domain represents the specific area or industry for which the software is being developed. Whether it's finance, healthcare, e-commerce, or any other field, the domain encapsulates the critical business processes, rules, and knowledge that the software aims to capture and support.
One of the key tenets of DDD is the collaboration between technical and domain experts throughout the development process. Contrary to traditional approaches which may isolate developers from domain specialists, domain-driven design encourages an ongoing, iterative dialogue. This collaboration is crucial in creating a shared understanding of the domain, uncovering hidden details, and ensuring that the software model accurately addresses the real-world business aspects.
DDD introduces a set of concepts and patterns to aid developers in building software that keeps in line with the specific domain. Some of these include:
- Ubiquitous language: DDD advocates for the use of a common language shared by both technical and non-technical team members. This ubiquitous language ensures that terms used in the software model mirror the language used by domain experts, fostering clearer communication and reducing the risk of misunderstandings.
- Bounded contexts: DDD recognizes that different parts of a complex system may have distinct meanings for the same terms. Bounded contexts help delineate these different interpretations, allowing developers to create focused models that address specific aspects of the overall domain.
- Aggregates and entities: DDD introduces the concepts of aggregates and entities to model business objects with consistency and transactional boundaries. Aggregates include a cluster of entities and ensure that they are treated as a single unit during changes.
- Value objects: DDD recognizes that not all objects are entities with a distinct identity. Value objects, representing concepts without identity, help in modeling aspects of the domain where identity is not crucial.
- Repositories: Repositories provide a mechanism for accessing and persisting domain objects. They act as a connector between the domain model and the underlying data storage.
By adhering to these DDD principles, developers aim to create software that's not just technically sound but also reflects the complexity and richness of the business domain. The ultimate goal is to build a digital product that is flexible, adaptable, and resilient to changes in the business landscape.
Advantages of event storming
Event storming, as a dynamic and collaborative workshop approach to Domain-Driven Design (DDD), offers lots of advantages that make it a valuable tool for software development. The method fosters real-time collaboration, promotes a shared understanding of the domain, and provides a visual representation that aligns with DDD principles.
Real-time collaboration
Event storming is great at bringing together stakeholders from diverse backgrounds – ranging from business experts to software developers – into a joint and interactive setting. This real-time collaboration ensures that all perspectives are considered, creating a holistic understanding of the domain. Unlike traditional methods that may segregate these roles, event storming breaks down silos, enabling direct communication and knowledge exchange.
Ubiquitous language formation
A cornerstone of DDD, the concept of a ubiquitous language is effectively put into practice during an event storming session. Participants collaboratively define and improve a shared vocabulary that bridges the gap between technical and non-technical team members. This results in a clear and consistent language that is used throughout the development process, mitigating the risk of misinterpretations and misunderstandings.
Visualizing complexity
Event storming provides a visual representation of the entire business flow, making it easier for participants to grasp the complexities of the domain. The use of sticky notes, a large modeling surface, and a timeline approach allows for a dynamic and evolving visualization. This visual aspect aids in uncovering hidden intricacies, dependencies, and potential bottlenecks within the business processes.
Encouraging open dialogue
The workshop format of event storming encourages open dialogue and active participation. Shareholders are empowered to voice their insights, ask questions, and challenge assumptions. This open discourse enriches the understanding of the domain and promotes a culture of continuous learning and improvement.
Adaptability to remote settings
Acknowledging the challenges posed by remote work, event storming demonstrates adaptability by leveraging digital tools to facilitate collaboration. While acknowledging the limitations of remote sessions compared to in-person workshops, the process can still capture the essence of collaborative modeling. Techniques like Mob Modelling and explicit facilitation help overcome some of the hurdles associated with remote interactions.
Iterative and incremental modeling
Event storming supports an iterative and incremental modeling approach. By focusing on key events and essential concepts first, the workshop allows teams to gradually refine and expand their understanding of the domain. This iterative nature aligns with the principles of Agile development, where continuous refinement is valued over rigid upfront planning.
Quick exploration of solutions
In the context of process modeling and software design, event storming facilitates a quick exploration of potential solutions. The collaborative game metaphor encourages participants to experiment with different models, providing a platform for creative problem-solving. This rapid exploration can lead to valuable insights and uncover innovative approaches to addressing challenges within the domain.
Effective use of time
Event storming, especially in the process modeling and software design formats, optimizes time use. By focusing on critical blockers and leveraging the groundwork laid in previous Big Picture workshops, these sessions are designed to be efficient and time-bound. The emphasis on fluency over active facilitation allows teams to delve into cooperative game strategies without the need for constant guidance.
Most popular event storming recipes
EventStorming, a versatile workshop methodology, shows its true potential through various recipes designed to achieve specific objectives within the domains of Big Picture exploration, Process Modelling, and Software Design. Each recipe serves as a guide, tapping into the collaborative power of participants to uncover insights, model processes, and design software solutions effectively.
Big picture
Objective: The big picture event storming recipe aims to provide a complete view of an organization's processes, interactions, and key domain events. It serves as a foundational step for subsequent focused workshops.
Ingredients:
- Large modeling surface: A spacious canvas, physical or digital, to accommodate the breadth and depth of organizational processes.
- Diverse participants: Involvement of stakeholders from various departments and roles to capture a comprehensive understanding.
- Event storming grammar: Adherence to the principles of event storming, emphasizing pivotal events, commands, and domain events.
- Time-boxed exploration: A structured approach, allowing participants to delve into critical aspects without getting lost in details.
Process:
- Chaotic exploration: An initial phase where participants collaboratively place sticky notes representing events, commands, and processes on the modeling surface without strict structure.
- Emergent structure: As patterns and connections emerge, the facilitator guides the transition from chaos to a more structured representation, highlighting pivotal events and key flows.
- Timeline approach: A temporal sequence is established, emphasizing the order of events and interactions, providing a narrative flow.
Outcome: A visual big picture that encapsulates the organization's landscape, fostering shared understanding and setting the stage for more focused exploration.
Process modelling
Objective: Process modeling event storming zeroes in on specific processes or workflows within the organization, allowing participants to collaboratively sketch and refine intricate procedures.
Ingredients:
- Focused scope: identification of a particular process or workflow that demands attention, often arising from the Big Picture workshop.
- Interdisciplinary team: inclusion of participants with expertise in business, service design, and software to provide diverse perspectives.
- Collaborative game metaphor: the essence of a team-oriented approach, treating the modeling session as a cooperative game.
Process:
- Collaborative game dynamics: participants engage in brainstorming, forward modeling, reverse modeling, and other strategies, adapting based on emergent needs.
- Visible legend: ensuring that the event storming grammar and rules are transparent to all participants, minimizing misunderstandings.
- Mob modeling discipline: time-boxed leadership rounds, allowing individuals to take the lead in improving the design with focused contributions.
Outcome: A detailed process model that unveils the intricacies of the targeted workflow, promoting shared strategies and insights for optimization.
Software design
Objective: Software design event storming focuses on the collaborative modeling of software solutions, incorporating the principles of Domain-Driven Design and bringing about a shared understanding among technical and non-technical stakeholders.
Ingredients:
- Scoped duration: a time-boxed session, often around 90 minutes, to maintain focus and efficiency in discussing technical aspects.
- Software-centric participants: involvement of individuals with software development expertise, emphasizing software design decisions and solutions.
- Explicit separation of issues: distinguishing between software-only issues and those relevant to non-technical stakeholders.
Process:
- Ubiquitous language formation: emphasis on defining and refining a shared vocabulary that removes any communication boundaries between technical and non-technical participants.
- Collective naming: creating a visible list of terms or a dictionary to ensure consistency in the language used during software design discussions.
- Iterative exploration: uncouraging participants to find multiple solutions, fostering creativity and continuous refinement of the software model.
Outcome: A collaborative software design artifact that captures the essence of technical decisions, ensuring a shared understanding among both technical and non-technical team members.
Event storming examples
To finish our discussion of event storming, here’s a series of real-world scenarios where it can play a pivotal role in driving a deeper understanding of various domains. These event storming examples span diverse industries, showcasing the flexibility and applicability of this workshop approach.
- E-commerce order processing: unraveling the journey of an order, from placement to fulfillment.
- Customer onboarding: mapping the steps involved in bringing a new customer onboard.
- Inventory management: understanding the intricacies of managing and tracking inventory levels.
- Payment processing: exploring the events and commands in a payment processing system.
- Healthcare patient journey: visualizing the various stages a patient goes through within a healthcare system.
- Project development lifecycle: mapping the lifecycle of a software development project from ideation to deployment.
- Travel reservation system: uncovering the events and interactions in a travel reservation system.
- Customer support workflow: modeling the workflow of customer support interactions and issue resolution.
- Supply chain logistics: analyzing the events and processes involved in supply chain logistics.
- Employee onboarding: mapping the steps involved in onboarding new employees within an organization.
Take the next step: join our product workshop
Ready to transform your vision into a tangible, value-driven product? At RST Software, our product workshops are designed to comprehensively guide you through the process of defining the scope and cost of your digital project.
We aim to help you reduce business risks, as well as make sure your product aligns with user needs and is technologically feasible. Take the next step towards innovation and join our product workshop today. For more details and to reach out to us, visit this contact form page.