Sunday, 30 August 2015

Event Storming: my rookie mistakes

This week, I was happy to be asked by the teams to organize a second Event Storming session after our first successful experience last week (details posted in my previous post here)

Motivated but still a rookie in that field, I asked my mate Radwane (radwane_h) to help me to co-animate this new session. Indeed, we planned to experience more advanced event storming concepts like Commands, Actors, Aggregates etc. and I was happy to leverage on his Event Storming experience for such journey.

This session didn't went as I expected and I thought it could be helpful -for any new Event Storming organizer- to share here few lessons learned.

"Where is our wall?!?"

It started with a first difficulty: the audience was not prepared at all to face another empty wall... Indeed, since we don't have any war-room for the project (but the ability to use nice meeting rooms here and there), I had to trash the previous tablecloth after our first session. This seemed logical to me. After all, and as I repeated many times to the audience the week before: "Event storming is not about producing a new model/deliverable. It's mostly a live brainstorming to efficiently distill business flow among various actors, to identify key concepts & get rid of ambiguities." (all of this being useful to impact our code & other official artifacts in a second step).

Yeah, this sound logical to me. Indeed, most of the posts on Event Storming you can find on the internet advocate for restarting from scratch every time. It allows you to master the flow, but also to let the door open for better approaches (the first "solution" being not always the best option). This may require more effort during the first round(s), but this is a way to prepare our mental models to save time later.

As a consequence I intended this friday to make us zoom on a central part we identified the week before, involving 2 bounded contexts and few ambiguities in between (at least in my mind ;-). But facing the hostility of some of the actors (harms crossed, frowned eyebrows): I didn't succeed to motivate them to rework on the same topic without our previous wall with stickies on it as a support. One said to me: "If we don't start with the previous wall. We are loosing our time here!". Of course I had the pictures of the previous wall on my phone, but I was afraid to turn it into a lonely exercise if I had to transcript them to the wall (with potential disengagement of the audience).

Even now, I'm deeply convinced that it would have take us less than 10 or 15 minutes to put back all the stickies for this subpart of our business flow and I still blame myself for not having convinced all of them to do it.

But the audience was not ready for such reboot

It was like if I made them loosing their precious time (I think our Event Storming session came after few days of other different workshops without precise goals or obvious results; thus the impatience and the fidgets).

Anyway. Facing the astonishment of 12 people in front of me (and an empty wall ;-), I finally asked them which topic they wanted to choose for the hour and a half to come. After few seconds of awkward silence and minutes of collective hesitation... we picked a topic that we didn't studied at all during the first round. Something that I will refer here as the "Onboarding" (I can't say more here for non-disclosure reasons). That was interesting, but as we event stormed I detected an overall disengagement from the audience (around 12 people). Excepting 2 very active contributors, the rest of the audience was stood up too far from the wall with stickies, behind a table that can't be moved. They were trying to contribute to the debate but were somehow helpless and disengaged more and more.

I realized -too late- that we picked a topic with almost no domain expert for it in the room... Sad Panda.

In those conditions, the benevolent help of my friend Radwane was a kind of waste (I was sorry for him). He helped me and the audience, but that was still an Event Storming without domain experts in the room... (for this topic I mean).

The only positive outcome here was that we all realized we knew almost nothing about this "Onboarding" process (important pre-requisite for the rest of the project). We also identified some domain experts to be interviewed on the business-side, and found other stakeholders related to this process that we put on yellow stickies (handful for the months to come).

half of our wall: we discovered few things anyway

Nonetheless, I was truly disappointed having detected annoyance from some domain experts. I felt that I've lost an opportunity to make us work on the core topic for the weeks to come.

I would wrap this debriefing by few observations I've made to myself last friday:

  1. Even if I'm not able to get back with the gigantic tablecloth of the previous session, I'll bring some prints of the pictures I took on my phone. This will allow us to quickly and collectively reboot our session even with people reluctant to redo the whole thing from scratch (it's sometimes hard to think out of the 'efficiency' box)
  2. Before starting to Event Storm with 12 people, I think I'll check first if we have at least one domain expert in the room for this topic... ;-)

Hope this help.


  1. Hi Thomas,
    There is an unresolved caveat around what to do of the past event-storming.
    I normally unroll-fold everything, and take picture. So that we're safe that we don't forget anything.
    In practice, we use it only when it's an immediate follow up. Most of the time it is just needed to make us feel safe.

    So, people realised they didn't need it, only afterwards. In this way I played it safe.

    It takes a little time to re-do it, but it make sense to re-do it only reducing the scope from overall vision, to current development scope in a zoom-in fashion, or eventually calling an explicit timebox to set up the baseline.

    When it comes to the focus, there is something you said that wast turned the wrong way around: what was the purpose of the second meeting? Looked like people were gathered, and the goal was decide afterwards... :-/

    1. Thanks for your feedback. To answer to your question: our initial objective for this second session was to continue to work on the previous topics, but to zoom on parts (not yet defined though) by enlarging our Event Storming toolset with Commands, Actors, and Aggregates (we only dealt with Domain Events during our first session).

      I had a particular domain "zoom" to suggest when we started. I also initially thought we could vote or pick-a-zoom collectively (from the previous area published as pics within the previous internal minutes). Nonetheless, I wasn't prepared for this refusal related to the absence of our previous wall.

      Reading your answer on the google+ Event Stormers group, I think I understood what I missed here (the emotional part).

      Thanks for having shared your tips and tricks ;-) Much appreciated