Tuesday, May 7, 2024

The Power of Post-Its: Deciphering Business Processes with Event Storming

Have you ever implemented a new feature only to discover, just before release, that some “obvious” information wasn’t shared with you? Or perhaps you’ve worked on a project when no one knew how it aligned with the company’s strategy? Or was there one knowledgeable person, unfortunately on holiday at the crucial moment? Have you ever had to work without any documentation? Or with a codebase that was more misleading than informative? 

If you answered “yes” to any of these questions, I have great news for you - Event Storming is a technique that can help you overcome these obstacles and tackle unfamiliar projects with complex business logic.

Last week, I promised that we would embark on a journey to explore how various techniques, practices, and tools can support you in building high-quality and easily maintainable software. Let’s begin with Event Storming.

Understanding Events

In the context of software development and business domains, an event refers to a significant occurrence, a pivotal moment, or a notable outcome that impacts the system or process. It encompasses both expected and unexpected occurrences, shaping the behavior and state of the application:

Why "Events"?

Upon examining the definition of an ‘Event’, it becomes evident that it encapsulates elements of significance, rarity, occurrence, and consequence. These are the very pillars upon which we construct our software systems. We prioritize the anticipated occurrences and their outcomes, which is precisely why events serve as an invaluable lens through which to understand and support the processes we aim to facilitate.

In the realm of your business domain, discussing all the pivotal and extraordinary occurrences (events) becomes possible. You can navigate through the desired or undesirable outcomes (events) with ease. Events provide an exceptional foundation for this exploration.

Moreover, events are immutable; they are historical facts that cannot be changed—only anticipated or responded to. Recognizing this immutability offers a powerful avenue for advancing discussions with your business stakeholders. 

What the Event Storming is?

Event Storming, a workshop-based method, serves as a compass for discovering, learning, and sharing knowledge about the intricate landscape of a business domain. It unveils the subtle and not-so-obvious aspects that reside within the minds of domain experts. By visualizing these critical elements, Event Storming facilitates the identification of unknowns, questions, and potential obstacles that may arise during software development. And addressing these challenges is more manageable when no design has been created, and no lines of code have been written.

Importantly, Event Storming isn’t confined to situations when building a software is part of the plan. When dealing with complex processes, Event Storming becomes the bridge—a tool that fosters establishing a common language and understanding among all interested parties.

Key Steps

  1. Define the Goal - Clarify the purpose of the Event Storming workshop. Avoid conducting it merely for the sake of the exercise. Instead, set specific objectives aligned with your project or business needs.

  2. Invite right people - Assemble a diverse group of participants who collectively represent different perspectives and expertise. Include those who seek knowledge and those who possess insights into the business domain. Their combined input is essential for a successful session.

  3. Start with the Events - Begin by focusing on the events themselves. Events represent pivotal moments, outcomes, and significant occurrences within the domain. By centering the discussion around events, you lay the groundwork for understanding the system.

  4. Explore, Discuss and Challenge - Engage in open dialogue. This is the opportune time to address problems, obstacles, and opportunities related to the events. Encourage participants to share their perspectives, challenge assumptions, and explore alternative viewpoints.

  5. Summarize and Agree on Next Steps - Validate the outcomes against your initial goal. Ensure that the event storming session has provided valuable insights. List actionable tasks, assign responsibilities, and agree on the next steps for further exploration or implementation.
„The picture that explains everything” – Alberto Brandolini – Introducing EventStorming

What's next?

Next time, I’ll delve into the various types of Event Storming sessions. We’ll explore their nuances, similarities, and unique features. Following that, we’ll dive into practical applications within our business context, uncovering how Event Storming workshops can guide our decision-making process.

Feel free to share your feedback or any questions you might have in the meantime! Until then, see you soon!

No comments:

Post a Comment