What is Event Modeling?
Event Modeling is a method for showing how an information system works based on how users and other systems interact with it. The concept was introduced in 2019 by Adam Dymitruk, software development and BDD (Behavior-Driven Development) expert, as a way to create a blueprint for making information systems more predictable, flexible, and reliable.
More concretely, Event Modeling represents a sequence of events linked together by user interactions and their related inputs (commands) and outputs (views). The method uses wireframes to document all of these system interactions across different user types.
How to run an Event Modeling workshop
Some foundational work is required before running an Event Modeling workshop:
- Document all of the Personas involved;
- Collect the expectations and irritants of all Personas;
- Map their journeys across the system via high-level User Story Mapping;
- Define business goals and the KPIs that will be used to measure progress.
Once you’ve got all of this pre-work in order, Dymitruk proposes 7 key steps for running a successful Event Modeling workshop with your team:
1. Identify all events
Conduct a brainstorm to list out all events involved in the system.
2. Establish their chronological order
Organize the events in chronological order along a horizontal axis. This “timeline” will become the foundation for the model.
3. Create the storyboard
Using either wireframes or simple mockups, start diagramming users' various interactions across the system. This should include the processes executed by the system, especially those involving external systems.
4. Identify the inputs (commands)
Document all instances where users input data or information into the system, allowing them to alter the system's state.
5. Identify the outputs (views)
Document all of the outputs that result from the inputs actioned by users in the previous step.
6. Organize events into “swim lanes”
Once you’ve identified the user interactions that take place across a system, it’s time to establish how that information flows within the system itself. The best way to do this is to put each event into “swim lanes” that can be managed by separate teams autonomously. Not only does this help more clearly identify the owners of different steps within an event, but it also makes it easier to see where potential dependencies may exist across the system.
7. Elaborate the scenarios with features
The last step in this process is to use this model you’ve developed to identify all of the features and user stories that you’d like to implement by grouping events, commands (inputs), and views (outputs) together. This will naturally feed into your product backlog.
Event Modeling workshop best practices
Emmanuel Lehmann, Software Craftsmanship and Agile Development consultant at AXA Insurance, has been using Event Modeling quite a bit over the last few years. Based on his experience, a few best practices are worth taking into account for a successful workshop:
- Build User Story Maps before and after the workshop. Before the workshop, outline the system's narrative flow from the users' perspective. After the workshop, prioritize user stories as they relate to an MVP (and its subsequent versions).
- Do not get stuck in the weeds by attempting to define every rule imaginable related to the different scenarios. This work can be performed later via Example Mapping during a Three Amigos workshop.
- During Step 6 (from the list above), be sure to identify any events that involve external systems, as this can bring to light any dependencies that will require work by other teams. Thinking about dependencies early on also allows you to better establish a system’s resilience (i.e., “Resilience by Design”).
- Use Event Modeling as the single source of truth for development and design teams. This will help avoid wasting time talking about the same topics over and over again.