Open mattes3 opened 1 year ago
I am pretty disappointed that this issue wasn't addressed in the May 10 release. Even more disappointed because it has received zero comments since then!
As an iSAQB CPSA-accredited trainer for DDD, I am now forced to teach the distinction between problem space and solution space, although I don't support it. Why don't we simply teach the difference between "domain" and "domain model", instead?
Here is why the distinction is misleading:
In the context of DDD, the domain model is a bridge between the problem space and the solution space. It's a conceptual representation of the business domain, but it also serves as a fou ndation for the technical implementation in the solution space. DDD emphasizes creating a shared language and understanding between domain experts and developers, which further blurs the distinction between these spaces.
In Domain-Driven Design, the creation of a domain model is a collaborative effort between domain experts and developers. It serves as a representation of the business domain and is foundational to both understanding and implementing the software. While some may argue that it leans more toward the problem space because it primarily represents the business domain, others might emphasize its importance in guiding the technical implementation in the solution space. The exact categorization can be a matter of perspective, so why make this distinction at all?
Nick Tune has written a nice article where he discusses the distinction between various DDD concepts. He recommends to avoid the notions of problem space and solution space: https://medium.com/nick-tune-tech-strategy-blog/domains-subdomain-problem-solution-space-in-ddd-clearly-defined-e0b49c7b586c
As a iSAQB CPSA trainer, I'm pretty unhappy with this learning goal in the curriculum.
I welcome your comments on this. Make me change my mind if you think so.
I think, this learning goal could make a much more important and better difference than the one it tries to make. What belongs to "problem" and what belongs to the "solution" is way less important (in my opinion) than the difference between
I borrow from Matthias Verraes here:
Subdomains have nothing to do with bounded contexts, except that a bounded context often results because people from the same subdomain use a certain common language.
Therefore, I propose to make the following changes to this learning goal:
Remove that.
Replace by "The participants understand "model" and "design" and how to build them.
Remove "in the problem space"
Please, rephrase that last point completely, like this:
Finally, I propose to rename this learning goal into: