Five tips to improve your domain model

Insight

  • Domain modelling

Our senior consultant Stijn Vannieuwenhuyse shares 5 tips for designing domain models with the business in mind.

Business and engineering teams misunderstand each other all the time. These misunderstandings become costly when they turn into code, so we model to bridge the communication gap and limit the misunderstandings.

But most of the time, it’s the developers who own the model. If your business doesn’t have ownership over the model, you lose some of the value from modelling.

According to Eric Evans, a domain model is:

"A system of abstractions that describes selected aspects of a domain and can be used to solve problems related to that domain"

Here are 5 practical tips for architects designing domain models with the business in mind.

  1. A good model is shared and understood by the business (without effort)

The model is often created by the development team, but when it's hidden behind the engineering door, you lose some of its value.

Ownership of the model needs to be shared. That means that the business needs to validate the model. They need to understand the model. The model needs to be logical to them. It needs to make sense to them. There should be no layer of translation. Therefore, a good model is not only shared with the business but also understood and owned by the business.

  1. A good model makes the problem manageable

The goal is not to have a complete or precise model but rather one which makes our problems manageable. A model succeeds when it reduces the team’s cognitive load. And we can do that by only keeping things in the model that help us reason about things.

  1. A good model lets you do things you couldn’t do before

Introducing abstractions can help us solve problems that reality can't. Let's take the example of meeting someone. Without the abstraction of minutes, hours, and days, we'd only have sunrise, sunset, and seasons, which are too imprecise to coordinate a meeting. The abstraction of time let's solve coordination problems we couldn't do with just our observable reality.

  1. A good model compresses meaning

A good model provides the necessary vocabulary needed to describe problems and solutions concisely.

Less explanation is needed, so there are fewer misunderstandings. There might be a bit of a learning curve during the first time you come across these abstractions and use these terms but conversations in the future become a lot smoother.

  1. A good model sharpens your thinking

The discipline of modelling allows you to reason about decisions you've made and opens up new questions and different ways to interpret and approach the problem. A good model therefore, sharpens your thinking and allows you to deepen your understanding of the problem and how you go about solving it.

These are just a few things to keep in mind in your next modelling session. Contact us if we can help introduce these ideas into your teams.