Why You Should Be Using Event Storming
I have been using Event Storming across my teams for a while now, and so far, it has proved to be the most powerful tool for solution design and discovery. If you are using domain-driven design or are trying to model a particularly complex problem, then Event Storming is especially powerful!
In this article, I will talk you through some of the benefits I have found when using Event Storming in practice and explain how you can run your workshops to supercharge your teams.
Event Storming at a High LevelBefore we get into the nitty-gritty, let’s look at Event Storming from a high level.
Traditionally, when we designed software systems, we would begin by focussing on a data model and then build an app around it. Unfortunately, as software engineers, this is something that we are inherently programmed to do. We would often get attached to these data models and bend our apps and even our requirements around them to make them fit.
Let’s save some time and skip to the outcome: we end up building something that does not match our requirements and is not fit for purpose.
This old way of doing things does not work (most of the time). This is why techniques such as domain-driven design, code-first data modelling, and Event Storming came along to the rescue! First, these techniques focus on the problem space and desired behaviours of our system, then look at how we model this in a data/database model at the very end of the design process. Rather than ‘finding a problem for a solution,’ we are designing our system around the specific requirements for the problem we are trying to solve.
In an Event Storming workshop, the first thing we do as a team is focus on all of the Events that could occur across our desired app. Next, we focus on how these Events occur, how they are linked together, and the Actors that would be involved. The last thing we look at is the data structures (Aggregates) we would need to model and build the app.
0 Comments