What is Ubiquitous Language?
The ubiquitous language is a concept that is based on the fact that the different actors of a project need a common language that allows them to understand the data model without ambiguity and approximation in order to be able to work correctly together.
In a project team as we understand it here, there are all the people likely to participate in the development of an application. We will therefore find developers and architects, but also users and business experts: as many technical and non-technical profiles. As a result, this often results in misunderstandings related to the terms used to designate the different elements of our model.
The heart of my application is its data model. The data model is business-based. The business is not mastered by the developers or the architects, but by the business experts, who are generally the customers.
This is why it is critical to agree between the production team and the business team on the terms to be used in the model and the code. The best thing is to discuss, argue and define the terms belonging to the ubiquitous language at the beginning of the design phase in order to be able to apply it to the data model and to use it in the code of the application. The code produced will thus be much more expressive.
When a developer talks about the data model and business rules, business experts and even users need to be able to understand exactly and unambiguously what is being said.
Ideally, it should be possible to present the data model of the application to a person totally outside the project, with a non-technical profile: this person must understand how the application works.