EventStorming
EventStorming Workshop March 7th. 2017, Cincinnati, OH

EventStorming

In life, to paraphrase an old bumper sticker, "Events Happen"

  • The lawn was mowed.
  • The car was repaired.
  • The pizza arrived.

Team design and planning

EventStorming is a team design and planning approach created by Alberto Brandolini. 

It relies on our innate ability to notice, name, and discuss events, and extends that into an approach for software design. No extra technology background required.

EventStorming is useful to get the "Big Picture" when starting a project or feature set. EventStorming also works well for "Retrospectives" and even "Detailed Design”.  The results of EventStorming can be used to plan your Story Mapping exercises.

EventStorming has the benefit of establishing a common language between Domain Experts and Developers. It creates a system design skeleton that is understandable and usable by a broad range of stake holders. A Domain-Event is something that happened in the system that is interesting to a Domain Expert. For Example

  • Request Email Received
  • Inventory Depleted
  • Package Shipped

EventStorming is also a natural way to introduce advanced software architecture and design approaches, like Command Query Response Separation (CQRS), Domain Driven Design (DDD)

CQRS is a way to provide users a refined view of the information required for decision making that is distinct from the information input into the system. The two directions of information flow are often very different. Handling the flows separately can aid in building complex systems.

DDD is a way of refining, categorizing, and communicating a teams understanding of the domain. DDD also provides concepts for implementing a shared model with lower coupling and higher cohesion. So that systems are easier to understand.

Separately or together CQRS and DDD make building large complex systems more sustainable. CQRS and DDD are powerful, but often difficult to explain. That is why they are not used as widely as they could be.

EventStorming is a breakthrough because it provides a natural way to introduce DDD and CQRS without the buzz words and additional study. These two techniques are part of EventStorming without even needing to be specifically explained during the workshop. An EventStorming facilitator can guide a team of business and technical professionals toward better design discovery.

EventStorming begins by asking the Domain Experts to identify Domain-Events. Domain-Events are defined as things that the Domain Expert is interested in, written in past tense.

  • Item added to Cart
  • Calendar Month Ended
  • Customer entered the store

From there a EventStorming workshop moves to adding other details like processes, commands, views, aggregates, and contexts.

In the end the "Big Picture" EventStorming proves a deep understanding of the flow of information though the entire system. Which is a great aid in better communication, planning, and implementation.

Contact me if you want to talk more about how EventStorming can benefit your project.


Indeed introducing DDD is really hard if you want to start with practice instead of conceptual definition that confuse or block immediate progress. With EventStorming I feel I have found something that is worth a try. Many thanks!

Interesting approach. Thanks for sharing it, Mark.

Excited to see your presentation tonight.

Like
Reply

Hi Mark Windholtz I just read about tomorrow EventStorming meeting here http://www.agilecincy.org/upcomingevents/2017/5/17/june-meeting-introduction-to-event-storming.html Awesome! Alberto Brandolini will be in Denver (Colorado) in September for the DDD Denver Conference. It could be a great occasion to learn about EventStorming from Alberto himself! :-) http://exploreddd.com/speakers/alberto-brandolini.html

Like
Reply

Went through 2-hour process w/ Mark last week - very valuable. Not sure if we were doing it perfectly right, but by thinking of all events (human or machine) we developed several new user stories that we hadn't been thinking of beforehand. Highly recommended!

To view or add a comment, sign in

More articles by Mark Windholtz

  • A Story of Focus and Frustration in Software Development

    Many new software product teams go through 3 phases: Feature-Focus, Quality-Focus, Value-Focus. To improve it's…

    7 Comments
  • Context in Context

    Bounded Context and Phoenix Context exist in separate contexts [ related article: Domain Driven Design & Elixir example…

  • Domain Driven Design & Elixir example

    Introduction I had a conversation with the good folks at Elixir Wizards about Domain Driven Design. It was a lot of…

    2 Comments
  • TDD workflow: Detroit or London

    [ Extract from longer article: Testing: Cable and Chain ] How do we build code that is decomposed into Pure and Impure…

  • Testing: Cable and Chain

    SlideShare ~ ~ ~ The Problem with Developer Testing ~ ~ ~ Maybe developer testing is more trouble than it's worth…

  • The End of Object-Oriented Programming

    Part 1: Impedance Mismatch In The Rime of the Ancient Mariner, by Samuel Taylor Coleridge, the sailor complains:…

    12 Comments

Others also viewed

Explore content categories