The concept of a ubiquitous language—a common domain model—can be interpreted differently depending on the context. Here’s how I see it:
For the Entire Business
An all-encompassing ubiquitous language for an entire business often seems impractical. Different contexts and departments may define the same entities (e.g., “customer”) differently. For a deeper discussion on this, check out:
For an Application
On the other hand, having a ubiquitous language within an application is highly beneficial. This means that all team members—customers, analysts, developers, testers—use the same terms consistently. This practice enhances communication speed and accuracy within the team.
For more insights on the value of a ubiquitous language, consider these resources:
- Eric Evans’s book: Domain Driven Design. Read the relevant chapter on Google Books.
- James Shore’s take
- Kent Beck’s perspective
- A formal definition from Domain Driven Design
- A comprehensive read on ubiquitous language
Thanks to Oscar and Jocke for the stimulating discussion on this topic.