What is Event Modeling about?
Event Modeling is a method used to model how an information system works through the prism of its interactions with users and other systems. The tool was introduced in 2019 by Adam Dymitruk, an expert in software development and BDD (Behavior-Driven Development). His goal was to provide a global and multidimensional view of an information system to make it more predictable, flexible, and reliable.
More precisely, Event Modeling is built around a sequence of events, linked by commands, processes, and interfaces with users. To illustrate the system interactions, the method involves wireframing to design commands and views with which different types of users can interact.
How to run an Event Modeling workshop?
Before running an Event Modeling workshop, you need to carry out some preliminary works:
- Document the Personas involved.
- Collect their expectations and their irritants,
- Map their journey across the system, for example, with a high-level User Story Mapping,
- Define business goals and indicators that you will use to measure progress.
Based on this information, Adam Dymitruk recommends running the workshop by going through 7 steps :
- List events: The first step is brainstorming with your team to list all events involved in the system.
- Determine the chronology of events: Then, you should sort those events out by chronological order and place them on a horizontal axis. This timeline is the skeleton of the model.
- Draw the wireframes: With wireframes or simple mockups, represent the users' interfaces, either to enter some inputs in the system or to see the information. Note that should also mention processes that the system has to process to execute the system, particularly if the system involves external systems that process and communicate data.
- Identify the commands: In this fourth step, you should precisely write the data and state that the user enters in the system as inputs. Every command should be related to an interface.
- Define the views: The fifth step is similar to the previous one, but here you should describe views shown to the users. As you do for the commands, every view should be related to an interface.
- Arrange events and wireframes: A system generally involves several types of personas as well as other systems. That is why you should draw lines to distribute events and wireframes vertically depending on the persona and the external system they interact with. It will help you identify scenarios and possible dependencies more easily.
- Elaborate scenarios and decide what features to implement: Once you have completed the model, you can determine features and user stories to implement by grouping events, commands, and views together. It will directly feed your product backlog.
Some tips from a Consultant in Software Craftsmanship and Agile Development
Emmanuel Lehmann, as a Consultant in Software Craftsmanship and Agile Development at Axa, has been using Event Modeling for the last few years. From his experience, he has established a bunch of good practices to make the most of this workshop:
- Build a User Story Mapping before and after the Event Modeling workshop. Before, outline the system's narrative flow from the users' perspective, and, after, prioritize user stories as you were considering an MVP and its following versions.
- Do not get lost in details by trying to define rules related to the scenarios. This work can be performed afterward through an Example Mapping, for example, with a Three Amigos workshop.
- At the sixth step, Arrange events and wireframes, identify events that involve external systems as this can require some work by other teams. Identifying dependencies also allows you to think about system resilience (“Resilience by Design”).
- Leverage Event Modeling as a single source of truth for both development and design teams. It will prevent you from wasting time engaging business owners to talk about the same topics several times.
Some major resources to learn about Event Modeling
- Adam Dymitruk’s article that introduces this tool: Event Modeling: What is it?
- An interview of Adam Dymitruk who comments on the method and brings interesting insights: Interview with Event Modeling Founder - Adam Dymitruk