One word, one meaning
DDD starts with words, not with code. If two people use one word for two different things, the software gets that mix-up too.
You find one probat8 word that has more than one meaning, and you write down one clear meaning for it.
1. The domain
Eric Evans, who named DDD: a domain is “a sphere of knowledge, influence, or activity. The subject area to which the user applies a program is the domain of the software.” — DDD Reference, p. viThe domain is the part of the real world your software is for. For probat8, that is: wind turbines must stop at night when bats fly, so that few bats die.
The people who know this world best are the domain experts: bat biologists, consultants, wind farm companies, authorities. They are often not developers.
DDD says: the software should follow how the domain really works. So developers and domain experts must talk a lot, and they must understand each other.
2. Ubiquitous Language
“Ubiquitous Language is the term Eric Evans uses in Domain Driven Design for the practice of building up a common, rigorous language between developers and users.” — Martin Fowler. Evans adds: “Recognize that a change in the language is a change to the model.” — DDD Reference, p. 4Ubiquitous means “found everywhere”. The Ubiquitous Language is one shared set of words that the team uses everywhere:
- when developers and domain experts talk,
- in documents and tickets,
- on the screen,
- and in the code: class names, function names, tables.
The rule is simple: one word, one meaning. And when the language changes, the code changes with it.
3. probat8 has a word with five meanings
Take the word operator (German: Betreiber). In probat8 it shows up with at least five meanings:
probat8’s own docs call “Betreiber” a “doubly loaded word”. The team saw the problem too.| Where | Word | Means… |
|---|---|---|
| Organizations | operator, Betreiber | a type of organization: the company that runs the turbines |
| Roles on a turbine-year | Betreiber | an outside person who may only upload turbine data |
| Admin panel | operator | internal staff who run the app |
| Admin actions | operator action | a task only that staff may start |
| Thresholds | operator | a comparison sign, like “<” or “≤” |
Now picture a ticket: “Betreiber can’t see the data.” Which one? An operator company? An outside uploader? Your own admin? You must ask, and every question costs time. Worse: someone guesses, and builds the wrong thing.
4. The opposite problem: one thing, many names
It also goes the other way. The thing probat8 calculates (the turbine’s shutdown values for bat protection) has a different name in the docs, in the backend, in the frontend and on the screen. Four names, one thing.
Every time you cross from one part to the next, you translate in your head. That is slow, and it is where bugs hide.
5. How to fix a word
- Collect. Write down every meaning you find, with where you found it.
- Ask a domain expert. What do they mean when they say it?
- Pick one meaning per word. Give the other meanings their own, new words. Example: “operator company” and “data uploader”.
- Use it everywhere. Talk, docs, screen, code. Rename in the code when you can.
Sometimes both meanings are real and both are needed, but in different parts of the system. That is a hint for a Bounded Context: a part of the system where each word has exactly one meaning. That is a later lesson.
6. Practice
What is the domain of probat8?
Who should share the Ubiquitous Language?
A ticket says: “Betreiber can’t see the data.” What is the DDD move?
One thing has four names: docs, backend, frontend, screen. Why is this bad?
A word has two real meanings, both needed, in two different parts of the system. This hints at…
Type the DDD name for “one shared set of words, used in talk, docs and code”.
7. Your real-world task
- Pick one probat8 word that may have more than one meaning: “Betreiber”, “Transfer”, “verify” or “Projekt”.
- Ask one colleague: “What does this word mean to you?” Do not explain first.
- Write one line: the meaning you would pick, and a new word for the other meaning.
Tell Claude the word, the colleague’s answer and your line. The next lesson builds on it.
Martin Fowler: “Ubiquitous Language”. Short and clear.
Want more? Eric Evans’ free DDD Reference (PDF): page vi (Definitions) and pages 3–4 (Ubiquitous Language). It is short but dense, so read only those pages for now.
Something unclear? Ask Claude, your DDD teacher. No question is too small.