29
.
04
.
2024
10
.
10
.
2022
Visuality
Event Storming

Our journey to Event Storming

Michał Łęcicki
Ruby Developer

As you may have noticed, or not, for some time we are talking a lot about Event Storming. This workshop technique amazed us at the first sight and we successfully incorporated it into our work standards. But it was a bumpy ride. Let me tell you the whole story.

Before...

Since the very beginning of Visuality, we have shared many values described by Alberto Brandolini. One of them is the beauty of personal contact. Whenever we start a new project, we try to meet our client and the project team in person. We travel to their office or invite them to our mansion. This is a great occasion to see how communication works and gain more information about the project or product. We organize a workshop meeting. We ask many questions and clients describe the most important parts of their business. Such meeting includes also developers who can get details about technicalities.

Event Storming people

Unfortunately, we've always felt that those sessions are not enough. First, at the beginning of the relationship with the new client, we simply don't know their business. Thus, we don't know what we don't know. A bunch of right questions won't be asked. Second, people from the client side tell us only what they know or think. We don't have a chance to see their business from different perspectives. Typically, after such workshops, we know only the surface of a client's product. It's very visible in first sprints - developers feel often lost and lots of effort is put into describing tickets in a detailed way.

A change was needed

We started improving the process of gathering information. In the beginning, our CTO, Mariusz, introduced a more workshop-like style to the meetings. Using a whiteboard for drawing or designing things came naturally. But it wasn't enough.

Event Storming Mariusz thinking

At this moment Event Storming enters the scene. The method was mentioned in many courses, always in a very positive light. So we decided to try it out. We read about it, discussed it, made notes, and eventually performed a few internal ES sessions. It was a blast. So we prepared to use it in production, with real clients.

…and now

The technique created by Alberto Brandolini belongs to a different league when it comes to the amount of gathered knowledge. What is Big Picture Event Storming?

  • gather key people in one room: managers, developers, representatives from different departments
  • visualize all business processes on sticky notes and put them on the wall
  • debate about all uncertainties and make events ordered
  • profit.

I don't want to describe how exactly the Event Storming session looks like (you can read about it here or watch it here). Instead, I want to focus on how we use it and what profits we see.

New formula

Again, we try to meet the client in person and organize a workshop (although it's also possible to make it remotely). We invite more people - not only managers but also developers, QA, and people from other departments. We spend one or two days on Big Picture Event Storming, which is led by one of our consultants. This is no "one more meeting". We gather in one room and use tons of sticky notes. And we have lots of conversations and arguments. Eventually, we gain a deep understanding of the business and its most problematic places.

Event Storming board cards

The biggest benefits:

  • no preparation is needed from the client's side. Just one room (or online tool), colorful sticky notes, a blank wall, and key people. That's it and we can start.
  • huge exchange of information. I can't compare it to any other workshop (or non-workshop) technique. Potentially, each discussion about problematic sticky notes reveals new information about the system. Or, provides the background behind the debated problem.
  • a common understanding of the business domain. It's more than knowledge about certain features or bugs. It's learning which are vital parts of the business and what is the unique value of the company. Without it, developers could introduce correct code that won't reflect the business domain. With it - they can build software that is 100% tailored to business needs.
  • flexibility. Each ES starts with a certain goal, but how you achieve it is up to the participants. Workshops have proposed flow, but it isn't mandatory. So Event Storming can evolve into drawing diagrams or context mapping sessions. Or even writing pseudo-code solutions.
  • spreading the culture of openness. Event Storming efficiency is based on the number of questions and answers exchanged between people. Simply put: workshops need straight communication. If you are not afraid to ask evident questions to your CTO during ES, you will not hesitate to do it later too.

Few challenges

There are some things you need to be aware of when doing Event Storming:

  • Find the right person to lead the workshop session. While participants don't need to know anything about Event Storming, a competent leader is a must-have. The skilled moderator needs to have a plan for every workshop. He or she needs to know how to interact with attendees. And of course - how to facilitate the whole process to make all discussions productive.
  • Be ready for talking. Stereotypical software developers want to just sit in front of their computers and hit fancy keyboards. ES forces them to step out of their comfort zone and talk to real people. And talk a lot, sometimes about difficult topics. So you can imagine it's not easy for everyone.
  • Prejudices. From our experience, we can tell that people from IT don't trust workshop techniques much. Everyone (at least once in their life) experienced a boring, time-wasting workshop. That's why kicking off the Event Storming session is very important.

To sum up

Considering all mentioned factors, Visuality uses Event Storming whenever possible. Initially, we schedule an ES workshop with our new clients. But we also do workshops for long-running projects. Or, we even do workshops for already finished projects ( aka retrospective Event Storming). In all cases, we see that the time and effort spent on Event Storming are worth it.

Michał Łęcicki
Ruby Developer

Check my Twitter

Check my Linkedin

Did you like it? 

Sign up To VIsuality newsletter

READ ALSO

Writing Chrome Extensions Is (probably) Easier Than You Think

14
.
11
.
2023
Antoni Smoliński
Tutorial
Frontend
Backend

Bounded Context - DDD in Ruby on Rails

17
.
03
.
2024
Paweł Strzałkowski
Ruby on Rails
Domain-Driven Design
Backend
Tutorial

The origin of Poltrax development - story of POLTRAX (part 2)

29
.
11
.
2023
Stanisław Zawadzki
Ruby on Rails
Startups
Business
Backend

Ruby Meetups in 2022 - Summary

14
.
11
.
2023
Michał Łęcicki
Ruby on Rails
Visuality
Conferences

Repository - DDD in Ruby on Rails

17
.
03
.
2024
Paweł Strzałkowski
Ruby on Rails
Domain-Driven Design
Backend
Tutorial

Example Application - DDD in Ruby on Rails

17
.
03
.
2024
Paweł Strzałkowski
Ruby on Rails
Domain-Driven Design
Backend
Tutorial

How to launch a successful startup - story of POLTRAX (part 1)

14
.
11
.
2023
Michał Piórkowski
Ruby on Rails
Startups
Business

How to use different git emails for different projects

14
.
11
.
2023
Michał Łęcicki
Backend
Tutorial

Aggregate - DDD in Ruby on Rails

17
.
03
.
2024
Paweł Strzałkowski
Ruby on Rails
Domain-Driven Design
Backend
Tutorial

Visuality at wroc_love.rb 2022: It's back and it's good!

14
.
11
.
2023
Patryk Ptasiński
Ruby on Rails
Conferences
Ruby

Our journey to Event Storming

14
.
11
.
2023
Michał Łęcicki
Visuality
Event Storming

Should I use Active Record Callbacks?

14
.
11
.
2023
Mateusz Woźniczka
Ruby on Rails
Backend
Tutorial

How to rescue a transaction to roll back changes?

17
.
03
.
2024
Paweł Strzałkowski
Ruby on Rails
Backend
Ruby
Tutorial

Safe navigation operator '&.' vs '.try' in Rails

14
.
11
.
2023
Mateusz Woźniczka
Ruby on Rails
Backend
Ruby
Tutorial

What does the ||= operator actually mean in Ruby?

14
.
11
.
2023
Mateusz Woźniczka
Ruby on Rails
Backend
Ruby
Tutorial

How to design an entity - DDD in Ruby on Rails

17
.
03
.
2024
Paweł Strzałkowski
Ruby on Rails
Domain-Driven Design
Backend
Tutorial

Entity - DDD in Ruby on Rails

17
.
03
.
2024
Paweł Strzałkowski
Ruby on Rails
Domain-Driven Design
Backend
Tutorial

Should I use instance variables in Rails views?

14
.
11
.
2023
Mateusz Woźniczka
Ruby on Rails
Frontend
Backend
Tutorial

Data Quality in Ruby on Rails

14
.
11
.
2023
Michał Łęcicki
Ruby on Rails
Backend
Software

We started using Event Storming. Here’s why!

14
.
11
.
2023
Mariusz Kozieł
Event Storming
Visuality

First Miłośnicy Ruby Warsaw Meetup

14
.
11
.
2023
Michał Łęcicki
Conferences
Visuality

Should I use Action Filters?

14
.
11
.
2023
Mateusz Woźniczka
Ruby on Rails
Backend
Tutorial

Value Object - DDD in Ruby on Rails

17
.
03
.
2024
Paweł Strzałkowski
Ruby on Rails
Domain-Driven Design
Backend
Tutorial