Today I would like to discuss with you following issue with an average customer – I want everything for tomorrow in the lowest (fixed) price. Do you know that? I saw it so many times. Would you like to work with such customer? Rather not. But if you have to, what can you do to make it a pleaser and convince the client to spend more money then it was planned.
Let’s start from the scratch – requirements. Usually they are not very precise (or they do not exist) – Please give me a system which will let me sell the cars. OK, but please specify the details. Details? What details? Sounds familiar? Unknown or not precise requirements can be a project killer. Especially when your customer does not understand (or even worse does not know) own business processes.
So what are the options? In any scenario we have to involve customer into discussion to gather the knowledge. How we can do that? Fairly simple idea is asking the question (from general idea to details). However how to ask them to avoid confusions, have same vocabulary and get fast answers?Event storming cames with help. It is a technique based on brainstorming (with workshop where domain experts attends – assumption here is that we have multiple domains in our project).
In the first stage each participant writes on a sticky note an event which is present in the system (e.g. issue an invoice, create an order, put an item into cart etc). In next one everything is getting structured. As helpers we are adding notes in various colors representing actors, external systems, risks etc.
It is worthy to use this approach when system already exists (or we are planning to replace existing system with new one). If we are going into greenfield it might be too many questions without answer which will cause that workshop will not provide us expected result.
If you want to learn more about event storming check this repo
https://github.com/mariuszgil/awesome-eventstorming for more valuable information.