Modeling Systems Using EventStorming
Greiciane Galeoti
Application Developer | MBA Student in Software Engineering | Certified Scrum Master | Azure AI
Welcome to the latest "Tech Transition: Woman Power" edition. This newsletter spotlights emerging trends and innovative methodologies within the technology sector. We aim to empower women in tech by providing insights, strategies, and practical knowledge to navigate and thrive in this dynamic field.
In today's "TECH TRENDS SPOTLIGHT" series, we explore a powerful method for modeling complex systems: EventStorming. This collaborative approach revolutionizes how teams understand, design, and improve their systems, making it a must-know technique for tech professionals.
Understanding EventStorming
Introduced by Alberto Brandolini in 2013, EventStorming combines brainstorming and domain-driven design to uncover and model the flow of business events within a system.
One of the best approaches to defining your system's future vision is to understand the domain through event-storming sessions.
What is EventStorming?
EventStorming is a workshop format that helps teams quickly explore complex business domains by focusing on domain events—significant occurrences that change the system's state. This approach encourages active participation from various stakeholders, including domain experts, developers, and business analysts, to create a comprehensive and visual system representation.
The Core Phases of EventStorming
EventStorming is divided into several phases, each with specific goals and activities. The primary phases are:
Big Picture Workshop
The Big Picture Workshop is EventStorming's initial phase. It aims to explore the entire business domain without delving into technical details. This phase is essential for understanding the context and identifying major events, key players, and significant interactions within the system.
Preparation
Workshop Structure
1. Kick-off: Introduce the participants, outline the workshop goals, and set the stage for collaborative exploration.
2. Chaotic Exploration: Participants freely brainstorm and place orange sticky notes representing domain events on the wall. This phase may seem chaotic, but it is crucial for capturing a wide range of events. Start by identifying major events in the system. These are pivotal moments that change the state of the system.
3. Enforcing the Timeline: Organize the chaotic map chronologically to provide a clearer system flow narrative. This should be an inclusive and brainstorming activity.
4. Identifying Actors: Identify the key actors (people or systems) involved in the events and their interactions.
5. Commands and Policies: Commands are actions that cause events to happen, while Policies are business rules or conditions that influence when and how events occur (it’s easy to pick up policies since they mostly start with the word ‘whenever’).
6. Highlighting Problems and Opportunities: Discuss and highlight pain points, inefficiencies, and opportunities for improvement within the system.
6. Focusing on Specific Problems: Narrow to specific problems worth solving, setting the stage for more detailed exploration in subsequent phases.
Example: Online Retail Store
Playing with Value
Understanding value creation and destruction is crucial in EventStorming. To match system design with value maximization, participants investigate how various occurrences affect the value for stakeholders and the business. This phase helps identify the most valuable areas to focus on and potential improvements that can bring significant benefits.
Modeling Software Systems: Design-Level EventStorming
After establishing the Big Picture, the focus shifts to Design-Level EventStorming. This phase involves a more detailed and technical exploration of specific features or problems identified in the Big Picture Workshop. System developers and other tech-related professionals might benefit from designing reliable, scalable solutions.
Scope and Focus
Design-Level EventStorming narrows its scope to specific features or problems. The goal is to design practical solutions, often starting from scratch or building on the Big Picture Workshop artifact.
Workshop Structure
1. Identifying Key Events: Identify key events related to the specific feature or problem. Use orange sticky notes to represent these events.
2. Discovering Aggregates: Identify aggregates and clusters of events managed as a unit. Focus on responsibilities and the information required to fulfill them.
3. Defining Commands and Policies: Identify the commands that trigger events and the policies (business rules) that influence when and how events occur.
4. Designing Interactions: To create a coherent and efficient system, map the interactions between events, commands, and aggregates.
Example: Improving Payment Processing
For example, the Design-Level Eventstorming workshop can concentrate on enhancing the "Payment Completed" event, building on the earlier example of an Online Retail Store.
By structuring the EventStorming session this way, the team can visually design and optimize the payment processing workflow, identifying key interactions and areas for improvement. This approach ensures a shared understanding among all stakeholders, leading to a more efficient and robust system design.
Differences Between Big Picture Workshop and Design-Level EventStorming
Scope:
Participants:
Output:
Benefits of EventStorming
EventStorming offers several advantages:
EventStorming vs. Brainstorming
Though the term "storming" suggests otherwise, EventStorming is unrelated to a Brainstorming session's original purpose.
Eventstorming?and?Brainstorming?are both collaborative techniques for generating ideas and solving problems, but they serve different purposes and follow distinct methodologies.
Purpose and Focus:
Structure and Methodology:
Tools and Visuals:
Outcome:
By understanding the differences between EventStorming and Brainstorming, teams can choose the appropriate technique based on their needs.
Use Brainstorming to generate creative solutions and a wide array of ideas. Opt for?EventStorming?when you need to model and understand complex systems comprehensively, especially in the context of software development and business process improvement.
Both techniques have their unique strengths and, when used effectively, can significantly enhance problem-solving and innovation within teams.
Books and Further Reading
For those interested in diving deeper into EventStorming, the following books are excellent resources:
EventStorming is a transformative approach to modeling systems that fosters collaboration, clarity, and efficiency. By embracing this methodology, organizations can unlock new levels of understanding and innovation in their system design processes.
We encourage you to try EventStorming in your next project and share your experiences. However, take notice that for practical implementation, consider attending workshops or seeking guidance from experienced practitioners in EventStorming to maximize its benefits.
It is critical to be knowledgeable and flexible as we investigate and implement new technology and approaches. The "TECH TRENDS SPOTLIGHT" series aims to provide you with the knowledge and tools to navigate these changes successfully.
Thank you for joining us in this edition of "Tech Transition: Women Power." Stay tuned for more insights and trends in the world of technology. Connect with us on LinkedIn and join the conversation. Let's continue to learn, grow, and innovate together.
???Comment below with your thoughts, experiences, and suggestions about this edition.
??Share this article with colleagues and friends, encouraging them to join the movement.
??Subscribe?to our newsletter,?"Tech Transition: Women Power,"?for more insights, tips, and stories on navigating the tech industry with balance and empowerment.
Best,
Greiciane Galeoti
#EventStorming #SystemModeling #Innovation #Collaboration #LeanThinking #BusinessStrategy #UserExperience #Netflix #IBM #Leadership #TechTrendsSpotlight #WomanInTechTransition #TechTransition #TechForSocial #TechTrends #RemoteWork #Hybrid #SuccessStory #TechCareer #CareerTransformation #CareerChangeAt40 #EmbraceChange #Resilience #ScrumMaster #ProductOwner #WebDeveloper #Developer #AgileSuccess #ContinuousLearning #SCRUM #Agile #ProfessionalDevelopment #CareerTips #WomenInTech #Women #TechTransitions #Brazil