liveBook · Manning

Ubiquitous language

As explained in Architecture Modernization: Socio-technical alignment of software, strategy, and structure

A ubiquitous language is a shared, precise vocabulary used consistently by domain experts and software developers within a bounded context.

A ubiquitous language is a shared, precise vocabulary that domain experts and software developers use consistently within a bounded context. It helps people discuss the domain directly rather than translating between business speak and IT speak. Clearer terminology can improve collaboration, simplify code, and expose assumptions that a technical rewrite alone would leave untouched. section 8.6 section 12.5

Build the language through conversations about real work. In an EventStorming workshop, business and software experts can examine a process together and question names that hide important differences. Domain Storytelling offers another way to explore scenarios and improve the conceptual domain model. Neither technique requires settling every disagreement immediately; visible differences can guide the next question. section 8.6 section 7.4.1

When the same name hides different events

An airline event initially appeared to mean the same thing at multiple points in a timeline. Asking whether the same things could happen afterward revealed that its effects differed one day before a flight and six months before it. Distinct event names made that difference explicit. section 7.4.1

Practical questions for refining the vocabulary:

  • When two events share a name, can the same things happen after each one? If not, name the difference. section 7.4.1
  • When two events look alike, do they represent different perspectives or a possible boundary between subdomains? section 7.4.1
  • Which ambiguous terms still require translation between users, domain experts, and developers? Revisit them through ongoing discovery rather than treating the vocabulary as finished. section 6.3.4 section 8.6

The practice can grow alongside modernization. A gigs-platform team established direct stakeholder communication while incrementally moving from a legacy monolith toward bounded contexts. In another organization, developers’ tactical modeling created a need for shared language, which led to collaborative modeling and discussions about subdomains. A single top-down rollout is not a prerequisite. section 12.5 section 17.4

How Architecture Modernization: Socio-technical alignment of software, strategy, and structure covers it

How deep it goes
Explains its collaborative value and offers naming heuristics, but does not prescribe a formal vocabulary-management procedure.
Examples
Uses airline events with different temporal effects and organizational examples of language emerging during incremental or bottom-up modernization.
What you can do after
Practice/perform terminology clarification in collaborative modeling and use the resulting language for direct stakeholder communication.
How it connects
Connects to bounded contexts, domain-driven design, EventStorming, Domain Storytelling, and subdomains.

Also explained in

Compare how 4 books explain ubiquitous language →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Architecture Modernization: Socio-technical alignment of software, strategy, and structure. The section links point to the parts of the book it draws on.