Ubiquitous Language¶
A Ubiquitous language is built on the model, making that model integral to all communication between domain experts and engineering.
Many project challenges arise when the language used is fractured.
Domain experts often use their own very familiar terms that may have great nuaunce and abstraction.
Engineering team members tune their language to solving design and coding challenges within the domain.
Communication limitations and time pressures constrain understanding, driving a gap between domain experts and engineering languages.
The terminonlogy of day-to-day discussions is disconnected from the terminology embedded in the code.
Language can often differ between informal speech and more formal writing of documents, even when communicated from the same person.
Defining a versatile language that is universally defined and understood builds a solid foundation to build and evolve solutions effectively.
Defining language¶
Use the model as the backbone of a language
Commit the team to exercising that language relentlessly in all communication within and across teams, especially the resulting source code and design documentation.
Use the same language in diagrams, writing and speech.
Enhance language¶
Experiment with alternative ways to express the language, reflecting alternative models.
Conversations should seek to resolve all confusion of terms used, as society has always sought to do.
Accept that a change in the language constitutes a change to the model.
Domain experts should block to terms that inadequately convey domain understanding.
Engineers should be observant for ambiguity or inconsistency which drives complexity in the design.
Experiment with the model during disussions of the model.
Describe scenarios out loud uisng the elements and interactions of the model, combining concepts in ways allowed by the model. Find easier ways to say what you need to say, then take thouse new ideas back down to the diagrams and code.