Now more than ever, digital transformation is critical to the survival of businesses today and the most crucial element of this revolution is the modernizing of legacy applications. Because these applications often act as catalysts towards a company’s strategic goal, the need to modernize these has never been higher on the road to achieving greater competitive advantage, business resilience, and investments that grow the business further.
Owing to the fact that app modernization requires a great deal of financial commitment and is a risky endeavor, companies need to focus on what they stand to gain from modernizing their applications apart from the thought of incurring the great cost or the risk that these efforts will not yield the desired business value.
Fortunately, there are methods to ensure greater success when embarking on an ambitious application modernization program: Event Storming and Domain Driven Design.
What is Event Storming?
Event Storming is a workshop-based method created by Alberto Brandolini in the context of Domain-Driven Design. Compared to other methods, it is extremely lightweight, intentionally requires no support of a computer, and is intended to quickly identify what is happening within the domain of a software program.
The result is expressed in the form of sticky notes on a wide wall. The business process is ‘stormed out’ as a series of domain events which are denoted as orange stickies. The basic idea was to bring together software developers and domain experts so they can learn from each other. This exercise is meant to be fun in order to make the learning process easier. The name was chosen to underscore the domain events and the method works similar to brainstorming or agile modeling’s model storming.
What is Domain-Driven Design?
Domain-driven design (DDD) is the concept that the structure and language of software code should match the business domain. Domain is the subject area to which the user applies a program is the domain of the software. A software’s domain governs its context, the setting in which a word or statement appears that determines its meaning. To illustrate this concretely, if a financial software processes loan applications, it might have classes such as LoanApplication and Customer, and methods such as AcceptOffer and Withdraw.
How to lead a productive event storming session
The need for modernizing an application is a primary use case in software development. To bring that application to a modern state, event storming will deal with breaking down legacy software applications and creating smaller micro services (or a series of smaller applications). Event storming will enable development teams to build comprehensive business flows in hours instead of weeks. The session will normally give participants an understanding of processes, mutual domain understanding, and a foundation to begin domain-driven design approaches.
1. Make the environment conducive for the event storming session.
Apart from clearing the space of tables and chairs so that participants can move freely, the vacant wall will hold up the butcher’s paper where the team can draw context bounds.
You will need the following materials to conduct this session effectively:
A wall
Sticky notes. At least three colors are needed and you’ll want one color each to represent domain events, external factors, and hotspots (areas of ambiguity or conflict)
Sharpies or felt-tipped markers
Masking tape
A roll of butcher paper
A poster board with quick reference instructions
Stickers or small bookmark sticky tabs
2. Establish basic rules. Determining a basic set of foundational rules and guidance will give teams the flexibility they need to model their business flows.
It helps to establish that the event storming session will be open and collaborative, with all participants engaged or that the session will be interested in modeling business flows by using the most basic business elements call “domain events” which simply pertain to something meaningful that happens in the domain like “sent invoice” or “updated contact details”.
3. Start domain event modeling.
Starting with modeling domain events is ideal because it is more constant than other possible variables and only change significantly when the business itself changes. If your team is after more reliable solutions, event storming with business domains is the way to go. The end-result should be a wall filled with sticky notes.
4. Possible benefits and results of the exercise.
After the exercise, your team will arrive at one of three possible outcomes: 1. a solution; 2. discover that the problem is other than what was initially expected; and 3. discover that the problem is inherently unsolvable. But regardless of the outcome, the benefits of event storming include an acceleration of processes. A domain-focused approach is usually one of the benefits of event-storming, replacing the weeks of effort and resources dedicated to an approach that turns out to be not viable. Additionally, the domain-focused approach teaches participants to learn more about the domain in terms of its industry, language, and problems – all of which lead to more relevant solutions.
Simply put, event storming yields a visual map that achieves transparency in business flows, alignment of goals, mutual understanding, and a domain-driven approach.