Ubiquitous Language (UL)

Ubiquitous Language (UL)

I have been interacting with clients for years and each client in their respective industry is always a learning curve. It would be an insult to your client if you assume you understand their industry as well as they do, they are running the business while you are simply there to facilitate automation based on their existing knowledge.

As Software Developers we must never forget that our clients are not interested in our software, the language its written in or which patterns & principles we used. They are interested in what it can do for them and which problems it solves within their respective business domain.

The problem is always translating the business domain to the code domain in an effective manner and understanding what your client is talking about.

Enter the Ubiquitous Language (UL)…

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.

This is a common and business orientated language; the primary goal of the language is to mitigate misunderstandings and bad assumptions. Concretely the Ubiquitous Language (UL) is a vocabulary of domain-specific terms sharer by all parties involved in the project.

Domain specific terms translate the business domain to the code domain.

“A simple definition of a ubiquitous language is to come up with terms that’ll be commonly used when discussing a particular subdomain.” – Steve Smith

This includes but is not limited to nouns, verbs, adjectives, idiomatic expressions and even adverbs. Once defined the language should be used in all forms of written and spoken communication thus becoming the universal language of the business.

In other words a common terminology helps making sense of the user requirements and maintenance of the software. This UL is not static and is continuously updated and refined as the project matures.

It would be advisable to add an “APPENDIX x, Ubiquitous Language” to your specification document or the client’s collaborations tool, such as their wiki or intranet.