Mariusz Gil

The good, the bad and the Remote Collaborative Domain Modeling with EventStorming

wroc_love.rb 2022

00:00:15.740 Hello everybody! Thank you for having me at this conference. Before we start, I would like to mention a few things. From my perspective, it’s a huge honor to be here for two reasons: first, I am not really a Ruby guy, so I apologize for that. I usually write PHP code, but I can handle it. The second reason is that this Institute of Computer Science is my alma mater; I graduated from here many years ago. I had the opportunity to teach some students how to use techniques to model software.
00:01:02.699 So, this talk will be about the good, the bad, and the remote aspects of collaborative domain modeling with EventStorming. Yes, EventStorming is mentioned in the title of this talk, but it is not solely about EventStorming itself. There are plenty of presentations that describe what EventStorming is, how to use it, and how to combine it with different approaches like Domain-Driven Design to create meaningful software—software that is easy to evolve and maintain in the long term. However, I would like to focus on the surrounding aspects.
00:01:41.840 For those who are unfamiliar with EventStorming, I will provide a brief definition. As introduced by Andre Margeville, I am a software architect with over 20 years of experience and have worked as a CTO, trainer, and consultant. Over the last couple of years, I’ve primarily used technical approaches such as Domain-Driven Design and EventStorming to refactor old legacy systems for business reasons. I use these techniques every day.
00:02:12.000 I also host a podcast called Battle Design, and I’m curious to know who is familiar with it. Thank you very much! For those who aren’t, you have some homework. This podcast is about software architecture; unfortunately, it’s in Polish, but there are a few episodes in English. If you’re interested, you can check it out.
00:02:53.580 The good part and the spoiler is that there are ways to make this work and how we can use techniques like EventStorming designed to operate off-site in the digital world. Now, I want to discuss the bad aspects. Unfortunately, there are still challenges in this digital landscape, which brings us to the remote aspect, where it can represent both the good and the bad simultaneously.
00:03:12.959 EventStorming, the technique mentioned in the title, can be defined as a way to discuss software problems by analyzing the events within that problem. Instead of creating use cases at the project’s onset or developing a database, you can begin by discussing events that occur in the problem space. You should identify critical business domain events that describe significant changes in that domain and then organize them sequentially. This opens up meaningful conversations around these events.
00:03:44.220 In the EventStorming technique, identifying events is just the beginning. For instance, when the order is created or a customer cancels a payment, you can survey these events with your colleagues or domain experts. By examining the triggers of these events, you can start to analyze what occurred, how it was initiated, and what the subsequent consequences may be. By tracing the timeline, you can visualize how various actions work together, leading to an understanding of the necessary components in your software.
00:05:01.500 This allows developers to extract essential implementation requirements. For example, if certain events must happen in an all-or-nothing fashion, you cannot postpone them or perform asynchronous operations without causing business issues. This perspective on events helps identify critical points of data consistency and integrity and allows for the identification of aggregates, essential for effective software architectures.
00:05:56.340 Contrary to typical EventStorming sessions held in person, the scenario altered in 2020 due to the pandemic. Before then, these sessions were collaborative gatherings, often held in rooms with various participants, all eager to share their knowledge to facilitate software delivery.
00:06:38.160 Due to the pandemic, my communication relied heavily on face-to-face interactions, which proved invaluable for effective conversations. Unfortunately, after March 2020, the dynamics shifted dramatically. Meetings transitioned to online platforms where the energy was reduced; the smiley faces and interactions transformed into discomfort and tension.
00:07:19.620 I used to thrive on the human element during workshops. Conversations would flow effortlessly, but I found myself meeting each virtual session with the question, 'Do you hear me?' Through the lockdown, I attempted to run workshops only to discover that the first meeting was a complete disaster. Participants were muted, and many were reluctant to engage. The intended goals of the first meeting were far from realized.
00:08:01.600 I realized that I had lost a vital tool in my arsenal as a software architect—unrestricted communication. The ability to engage spontaneously—whether through side discussions, gestures, or expressions—vanished in the digital realm. When using platforms like Zoom, the absence of body language hindered interactions. Unlike room settings where individuals could easily switch groups to better engage, online meetings confined us to predetermined breakout sessions.
00:09:43.860 During physical workshops, I could monitor engagement levels, identifying when someone was drifting or disengaging. In digital environments, the lack of cues or context made managing group dynamics challenging. So, I had to adapt my approach, relying solely on structured discussions that sometimes felt restrictive.
00:10:34.400 While reflecting on my experiences with remote workshops, I found that many tools had initiated their evolution to support more effective online collaboration. Due to the pandemic, many platforms started incorporating features based on user feedback, addressing needs that emerged during this transition.
00:11:14.760 In light of these developments, the first piece of advice I want to share is to know your tools. It’s essential to master them—become familiar with all features and shortcuts. The tools you use during workshops should support rather than hinder collaboration. The goal is to simplify the process, making it easier for everyone involved.
00:12:50.160 Simplicity is crucial, especially when dealing with non-technical participants. The toolset should be manageable, similar to the size of the microservices implemented in the system. Avoid overwhelming workshops with an array of unfamiliar tools—aim for a streamlined approach to foster engagement and discussions.
00:13:40.440 Currently, I gravitate towards tools like Miro and Zoom for my online workshops. They offer the flexibility necessary for expressing ideas freely and limit unnecessary constraints often found in tools designed specifically for modeling processes. Visual aids are essential, as one image can communicate more effectively than countless verbal explanations.
00:14:26.080 However, every tool has its limitations. For instance, while Miro allows for free expression and visualizations, other platforms can place restrictions on creativity that stifle the expressiveness of workshop outcomes. Ensuring that everyone is familiar with these tools can help create a productive environment during the sessions without the delays caused by technical difficulties.
00:15:30.720 To manage engagement effectively, sometimes all you need to do is separate the modeling groups into different sessions, allowing for diverse perspectives on a topic. After 10 or 15 minutes, bringing these groups back together can spawn fruitful discussions of varied approaches and insights. Therefore, your backup plan should encompass technical concerns, participant engagement, and clear communication.
00:16:34.620 When you plan for uncertainty, especially in a remote context, always have contingencies for internet disruptions, technical support, and communication channels. These challenges reappear in various scenarios. For instance, if one participant is from a different time zone and struggles to integrate into the session, preparation beforehand can alleviate some of these barriers.
00:19:37.380 Digital workshops provide the unique opportunity to invite participants worldwide, which can encourage a broader range of expertise and input on a project. This reduces the need for costly travels and time-consuming logistics. However, it’s crucial that the control and structure of the workshop be well-planned to maximize the potential value from diverse inputs. This also means fostering and managing collaboration that requires a quiet, structured environment where teams can explore ideas and challenges together.
00:21:26.040 Ultimately, while digital tools can facilitate remote collaboration, the essence of a successful workshop remains the same—encouraging open dialogue, fostering knowledge sharing, and remaining adaptable to shifts within the organization and technological landscape. Following this, effective organization before a session needs to take into account all the individual elements that play a role in the outcome of your workshop.
00:22:19.800 As I mentioned earlier, I was fortunate to work with different groups following these principles, and I found that the outcome is not just the orientation of the discussion but how passionate all participants are about the results. While keeping the core objective upfront, you must gain from each workshop experience, remind everyone of their responsibilities in these projects, and ensure there’s a follow-up planned after the workshop to hold everyone accountable.
00:23:38.700 Now, I realize that extending the outcomes of workshops beyond theoretical discussions means assigning concrete action items to participants. Highlighting their roles and underscoring the importance of their presence and expertise allows them to visualize their impact on the team and its broader goals.
00:24:21.540 As we shift back to offline settings, it's important to maintain the level of engagement cultivated in remote workshops. The ability to adapt dynamically and leverage the strengths of your team members is essential. Whether through agile methodologies or strategic planning, being able to structure these workshops effectively is the key.
00:26:18.840 In conclusion, the essence of my presentation focuses on how digitalization influences our work context through remote collaboration. Although there remain challenges, the opportunities gleaned from our experiences open pathways to new solutions and methods that allow for productivity and creativity.
00:26:37.270 I hope my experiences offer insights into how you can navigate your workshops and leverage both the good and bad aspects of remote collaboration. Thank you very much for your time!
00:36:05.520 In closing, the possibilities surrounding EventStorming resonate with everyone involved, leading to shared accountability and action steps that position the group to produce real change. Identifying the right participants, emphasizing their contributions, and ensuring coordination with the overall project vision will significantly enhance your workshop outcomes and lead to further realistic implementations.