(After 15 years)
Why we fail here:
So what indeed does a developer?
The answer to the question was already pointed out in previous article. We need to understand the domain with all required abstraction that need to be modeled. In order to explore the domain we can use #EventStorming. If we have explored most of the possible requirements, then we can model/design with #EventModeling. This will make everybody on the same page and involve in design process:
Source: eventmodeling.org by Adam Dymitruk
This service-blue print is also on the right level of detail to calculate project size/complexity. Before we do it, let’s find out How implementation from this service blue-print can be so repetitive?
For those familiar with DDD, the answer would be: If you know the detailed DDD model, the implentation is straight-forward. Some might argue that DDD is not required here, I agree, but I’ll leave this for next articles :)
If you are not familiar with DDD, next paragraph is for you :)
I won’t cover DDD here though :) Instead I’ll focus on the concept. There is no magic in IT systems. They proces information. How they do it, can be described with natural language. If you are very carefull with the descriptions, we might explain every implementation detail. It’s just like reading an equesion. The art of writing a poem in natural english that can then translated 1-1 to source code and vice-vera is the art of DDD. So what does it mean?
When someone tells:
With DDD/BDD implementation patterns of your choice, you will be told exactly what files/classes/source-code this natural statement caused to create. They will derive every name (of class, method or even a variable) from the very sentences you used. There isn’t (shoudn’t be) anything more in the code that is hidden from the reader.
In next articles You will read about: