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:

Based on this information, Adam Dymitruk recommends running the workshop by going through 7 steps :

  1. List events: The first step is brainstorming with your team to list all events involved in the system.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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:

Emmanuel Lehmann portrait
Emmanuel Lehmann Consultant in Software Craftsmanship and Agile Development at Axa

Some major resources to learn about Event Modeling