The Ubiquitous Language (UL) is a strategic pattern 🧩 coming with Domain-Driven Design (DDD). It aims to align people’s — all stakeholders — understanding regarding the business domain(s) implied. 👨💼👩💼
For instance, the business analyst could use the term “User” 🧑, the marketing person “Customer”, and the developer “Client” — all talking about the same thing!
And you know — ultimately— the final product is based on the developer’s understanding. 💻
Having a Ubiquitous Language will help to tackle any misunderstanding. Discovering or defining your Ubiquitous Language could be challenging and requires domain experts 🕵️ around to make the “rich domain model” clear to everyone.
Once identified, it should be used by everybody, from everywhere — marketing documents 📄, code (classes, events, etc.), user interface and any communication.
Furthermore, be clear, sometimes the same term can be used in two different contexts (domain/bounded) but with different meanings. From the code perspective, it should be distinct “entities” living in their context. ❗️
Workshops like EventStorming 🌩️, could help identify your Ubiquitous Language and more with other DDD strategic patterns — it will soon be a post on my blog. 📝
Don’t forget clear communication 🗨️ is often the key to any collaborative project.
Does the domain drive your developments?
- Book Domain-Driven Design: Tackling Complexity in the Heart of Software, d’Eric Evans (the blue book).