Laws of Software Engineering · Principle
Principle
Ubiquitous Language
The people who build the software and the people who use it must use the same words to mean the same things. The vocabulary is the design.
How to use it. When users and engineers use different words for the same thing, or the same word for different things, the model is wrong. Listen to the domain experts. Use their words in code, schema, conversation, and documentation. Translation costs are usually a sign that the model needs to change.
How it gets misused. Treated as a naming exercise. Ubiquitous Language is a discipline of modelling. The words reflect the underlying concepts. Renaming variables without rethinking the model is theatre.
Related
- Principle Bounded Contexts Different parts of a system can use the same word to mean different things. Draw an explicit boundary around each meaning and translate at the seam.
- Principle Conceptual Integrity A system designed by one mind, or by a few minds in close agreement, will be easier to use and understand than one designed by committee.
Clusters
- The Code Design cluster - How to write code that survives change.
- The Interface Contracts cluster - What you promise, what you accept, what your users come to depend on.