This post is a part of the series:
After setting up a high-level scope for the system, we need to focus on uncovering more detailed requirements.
There are many approaches and techniques for discovering requirements. And we are not going to use them. Recently I have stumbled upon Event Storming, and I want to try it out.
Given the nature of the system - we have a match made in heaven.
Following definition at eventstorming.com:
EventStorming is a flexible workshop format for collaborative exploration of complex business domains.
In short, you have a virtually unbounded surface to model, and you use sticky notes to describe the event flow of the system. You use stickies of different colors to indicate different kind of artifacts: events, commands, external systems, policies, etc.
I'm not yet in a position to describe it with my own words so I recommend you to go to the Resources section of eventstorming.com.
It took me dozen of articles and videos to grasp it :)
What I find appealing, is that it works well with Domain Driven Design (DDD) and provides a quick (according to the authors) way to discover complex domains.
While Diakheiripi system is not very complicated, it is also not a CRUD system which makes it a good target practice :)
Before we could think about the workshop, we need more details about the requirements I introduced in the previous post.
I'll dedicate my next post to this topic entirely so I can always refer back to it whenever I need it. Also, I'll write requirements in the form of scenarios, close to BDD style specifications - so we can easily use them down the road.
Go here to read the requirements.
Domain Driven Design basics
When the idea of a workshop came to my mind, I reached several people and found out they never heard of DDD. While I can't teach them DDD fast, I think I'll be able to give a quick intro to bring everyone on the same page. I target just enough knowledge to get into Event Storming. Well, you don't need to know DDD to do it, but I want to get a Domain model as a result of the workshop.
It will also go as a separate post for future reference.
Go here to read quick DDD intro.
So I'm going to grab a few of my colleagues, shop for all necessary equipment (loads of sticky notes 📝). Book us some time and do it.
I promise to write a follow-up post on how it went.