Domain models are a useful way for technologists to model the business or domain they use. Domain modeling describes all of the objects, actors, and relationships in the system.
I have found that it is not common for people to create domain models anymore, and instead use shortcuts to put the model in code or in the data model. The code and the data model have a different purpose. By putting the domain model in the code it melds the technology, architecture, and domain. This creates a domain model that is brittle and impossible to visualize.
To help me understand how the technologists view the domain, I create my own domain model. I draw an abstract model by analyzing the relationship of features in the system’s user interface. I use various shapes for the objects and actors and lines to show the relationships among the shapes.
After drawing this picture, I begin to learn more about how the technologists view the domain. Using this diagram, I can ask questions and clarify if this is the way the system is built.
I have used this technique successfully to identify mismatches between the real domain and the way the system has been architected. In some cases it is straightforward to fix and in other cases it was a legacy we had to live with.
In any case, having a tool to analyze how the technologists see the domain helps in communicating the design, requirements, and work to be done.
Happy drawing!
Copyright 2015 Frictionless Design LLC