TechWorkRamblings

by Mike Kalvas

202511151211 Ubiquitous language

A 202511151148 Domain model is a set of concepts built up in the heads of people on the project, with terms and relationships that reflect domain insight.1

In order to effectively collaborate in a domain, we must share a language for communicating about this mental model. If we put effort into sharing this language everywhere with everyone on the project, we can converge on a single mental model that we all have instead of multiple fragmented models. Having a shared model means there’s less or no translation between people’s mental models and words, resulting in less miscommunication and misunderstanding.

For a ubiquitous language to be effective, it needs to truly be ubiquitous. You can’t just use it in a few technical documents. It needs to be the way that all the people involved on the project speak, write, and even think about the domain model. This reduces the lossy-ness of our communication and ensures that all our models are in sync as the domain evolves.


  1. Evans, E. (2003). Domain-driven design: Tackling complexity in the heart of software. Addison-Wesley.