About Me

My photo
Rohit leads the Pivotal Labs App Modernization Practice in engineering, delivery training & cross-functional enablement, tooling, scoping, selling, recruiting, marketing, blog posts, webinars and conference sessions. Rohit has led multiple enterprise engagements including ones featured in the Wall Street Journal. Rohit focuses on designing, implementing and consulting with enterprise software solutions for Fortune 500 companies on application migration and modernization.

Friday, March 20, 2020

Top Lessons Learnt on How To Conduct a Remote Event Storming Session

How Does the Domain Driven Design Practice of Event Storming Change in the Virtual World ?

Event Storming (ES) is a fun activity that will reveal the emergent context and subdomains of your complex system and will lay the foundation for re-architecture to the desired future state. ES in the virtual world is a different beast than in the physical world primarily due to the lack of context and the low bandwidth of physical aspect of communication via video. Virtual ES can be made to work with a lot of work and love and care of the participants. Things will go wrong and you will need to be flexible and roll with it. As with ALL things the most difficult part is in starting and doing the first one. It will get better with practice. Leverage Miro and pre-baked dashboards and do your prep of both the facilitators and the practitioners and you will be on your way to deeply discover and explore the complexity of your domain.

More recently thanks to the Corona Virus situation, we had to practice an all remote event storming. Event storming is a tactile in person human collaborative modeling activity which requires a high degree of facilitation to align the technical team and business analysts and domain experts towards a shared pool of understanding of a complex domain. Event Storming facilitation requires a lot of techniques and jedi mind tricks around giving everyone a voice and making all the implicit knowledge explicit on paper. In this specific case we were modeling a batch system on the mainframe. 

What worked 

  • Event Storming (ES) with the right tool DOES work. In this case we use the Miro Canvas collaborative board. Basically an online version of the large wall we need in the real world. Miro worked great considering that we were on it continuously for nearly 30 mins. For a brief 15 min. period it did glitch, but overall it got the job done and worked great.
  • We also leveraged Miro templates as a productivity booster to land a bunch of colored empty stickies. The Brainstorming  template is especially helpful. Someone in the DDD community should publish out an Event Storming Miro Template to encode the lessons learnt. 
  • The silent generation of stickies did work and even though we had done the Event Storming 101 with all the participants the quality of the stickies was not that great. As we gave in-time feedback, the quality of the stickies improved.
  • Always have Video ON. 
  • The preparation we did revealed a big problem in that the participants could not connect to Miro over VPN. Therefore we had to quickly pivot to an alternate way for our participants to access Miro. We figured out all the Miro and Zoom tricks before the sessions started. It is important to do a run through for all participants before the session begins.
  • Having a couple of facilitators is absolutely a must because the facilitators have to do much more of a heavy lift to pull in participants and get the energy flowing in a virtual ES. The facilitators switch roles. The first facilitator is play-by-play and the second facilitator provides the color. 
  • After the Boris exercise of Swift we did a user story map of all the stories following the three happy paths. This worked well to generate all the stories in the backlog. It enabled us to map the stories to the thin flows and define MVPs. 
  • Use ONE Miro Board for each activity. In our Inception we ended up with the following boards 1. OKRs  2. Event Storming 3. Risks 4. Data Flow Architecture 5. Boris and 6. Spring Retro. The entire process took 5 days. 
  • You may want to look at Miro Maintenance windows to ensure there is no blackout period during your ES. Please backup all your boards after every day. 
Remote Event Storming Miro Board

What did not work ?

  • The collaborative aspect of Event Storming where there are simultaneous conversations among the participants was a #fail. I could record only one organic conversation. The rest were facilitated during the walk troughs. This is because in an online setup there is ONLY one channel in a large group activity and number of voices. This contention results in poor bandwidth of communication. 
  • Event Storming went too long. I think we clocked out at 3 hours. Towards the end it became primarily a guided session. I believe we should have given the participants a chance to conduct the walkthrough. If we as the facilitators take a heavy hand then it enables the participants to go into a passive read-only mode instead of a more active do-er role. This is a thin line. 
  • We did not have the business and domain experts for the entire time. This is the #1 reason for lack of flow during the ES. 
  • We did not do the sufficient amount of prep to train all the participants on ES. A half an hour introduction was not enough. We will pay more attention to this and instead of highlighting individual stickies we will showcase a small sample system with multiple stickies including events, external systems, issues and Aggregates.
  • When we started the ES in addition to events our intent was also to generate commands, aggregates, views and users. This created a cognitive overload even though we did this incrementally - from past ES experiences we knew this is too much. 
  • At a minimum all the online ceremonies went 20-40% over the actual time it takes in the physical world and this is primarily due to the lack of context and working with a group of individuals the first time. The storming  and norming process that bonds a group together takes time virtually. There is no way to speed this up other than to take the time. 
  • We did not spend the time to create an icebreaker domain event stickies which may have accelerated the stickie generation. Next time we will seed a few relevant domain events which will get the group going. 
Remote Event Storming Legend

What Did we learn and What will we do differently next time ?

  • Miro Training - We will conduct a dedicated miro training for both facilitators and participants so that everyone is a Miro ninja. The number of times all of us messed up the miro board was non-trivial. 
  • No more than 7 participants in any remote zoom session. When in excess of 7 participants split into multiple breakout virtual rooms and then bring everyone back together to do a summary. Split the business process into high level categories and break into different rooms if over 10 participants. 
  • More facilitated Event Storming - We should have taken a break in between and should have done the front to back and back to front walkthroughs at shorter intervals. 
  • Get dedicated time from the business and domain experts.
  • No session in excess of 90 minutes. 
  • As a facilitator you will need to big screens. My setup of just one laptop and one large screen was sub-optimal. If I were to do this again especially as you get to Boris, you need the ES screen on the left and the Boris screen on the right. Get a bigger work/office table. 
  • For a first time event storm we will ONLY stick to Domain Events, Issues, HOT Spots, External Systems, Aggregates and emergent Sub-domains/Bounded contexts in that order. Commands are mostly useless and should be skipped for ES. Read Models, Views, UI and other notations are useful but ONLY for advanced Event Stormers.  
  • Miro Tips: 
    1. You can lock certain part of the canvas of the Miro Board with locking the frames. When you click on a frame and the context menu shows up, click on the lock icon. That will lock in the frame in place but still allows things inside the frame to moved around. Frames are easier to navigate. They show up on the sidebar menu and you can move them up or down
    2. You can lock most elements, lines, boxes, labels, whatever you want to remain in an anchored location on the canvas.
    3. Use Bulk Mode for folks to add sticky notes. It lets you type a list of stickies then, boom, dump them on the board when you hit Done.
    4. Use labels in the sticky note context menu for adding categorization to notes
    5. Leverage the Iconfinder to add incremental notation and icons to the event storm. Have some fun with it. 
    6. Everyone can same size stickies to be the Small Medium or Large size. Stickies default to different sizes depending upon the users zoom level. Stickies can be resized to S, M or L, by clicking the S, M or L icon in the stick note's context menu. 
    7. Use the cards and dot-voting features of Miro for prioritization and affinity mapping of ideas. 
Workstation Setup
Good luck and hit me up @rkela  (DMs open) if you want 1:1 coaching on how to do this.