I've just finished working for a client which has burnt millions on a project to come up with the 'one true domain model' for their business. This was the project's sole deliverable.
What are your thoughts on this? Is a single version of the truth realistic?
The key word here is "model". Any domain model is an abstraction of the key entities and behaviour in the model of a system.
As an example, a traffic management system might have an entity Car, which is indivisible. A driving simulation will have much more structure: components, weight, colour, occupants and so forth.
The point here is that there is no global definition of Car. There is only state and behaviour that you care about for your particular application (or even a part of an application).
No, it's not realistic. Yes, it's a fallacy ;-)
In my opinion, it's the well-known trade-off between re-usability and maintainability. If there is one most important aspect of maintainability, I would say it is: minimizing dependencies. The 'one true domain model' for the whole business obviously creates a lot of dependencies, no matter how clever it is engineered.
I would go for better maintainability.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With