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:

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:

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

Some major resources to learn about Event Modeling