Une partie importante du travail des développeurs consiste à communiquer avec des personnes qui n'écrivent pas de code pour comprendre exactement ce qui doit être fait. Après tout, le manque de communication peut provoquer un retard, un travail incorrect ou même l'échec de l'ensemble du projet.
Étant donné que chaque groupe d'experts a son propre jargon, son propre langage, il sera plus difficile de formuler une exigence de produit que de la mettre en œuvre. Par conséquent, si l'équipe et les développeurs parlent le même langage, cela accélérera et simplifiera considérablement le processus.
Le langage ubiquitaire est un terme utilisé par Eric Evans dans le domaine de conception pilotée par le domaine (DDD) dans la pratique de la création d'un langage commun entre les développeurs, les experts et les autres contributeurs. Il s'agit d'un ensemble commun de termes et de définitions qui sont utilisés par tous les membres de l'équipe dans tous les aspects du processus de conception.
Caractéristiques d'une langue ubiquitaire
- Une condition préalable à la cohérence de la terminologie est qu'elle doit être construite autour d'un modèle de domaine.
- Un langage commun élimine les inexactitudes et les contradictions des experts en la matière.
- Un langage omniprésent n'est pas un langage des affaires imposé par des experts.
- Il se développe au fil du temps plutôt que d'être déterminé entièrement en une seule réunion.
- Les concepts qui ne font pas partie d'une seule langue sont rejetés.
- Le plus important est que la terminologie commune fédère les personnes de l'équipe de projet.
Le processus de création d' une langue omniprésente
Une langue omniprésente se développe toujours, comme toute autre langue naturelle, de sorte que le processus de création d'une langue commune doit être abordé de manière créative.
Dans son livre, Vaughn Vernon suggère d'utiliser les méthodes de création suivantes:
Création d'un glossaire
Vous devez réunir une équipe d'experts et de développeurs et leur demander de créer un document qui suit le langage de l'équipe. Le glossaire contiendra tous les termes et définitions utilisés par les participants au projet. Ce sera votre langage omniprésent contenant des combinaisons de mots fixes.
Création de la documentation
Au lieu d'un glossaire, vous pouvez créer de la documentation avec des diagrammes informels et des concepts logiciels importants.
Créez des diagrammes de domaine physiques et conceptuels
Le langage utilisé par l'équipe vous permet d'accumuler des connaissances et de créer un modèle. Pour le construire, vous pouvez dessiner plusieurs concepts clés sous forme de classes, écrire leurs noms et montrer les relations entre eux. Il sera facile pour chaque membre de l'équipe de comprendre de quoi il s'agit.
La création de graphiques et leur étiquetage pour indiquer des noms et des actions est très utile lorsque le nombre d'éléments concernés est faible.
Tout d'abord, tous les membres de l'équipe doivent être conscients de la nécessité de créer un langage omniprésent. Il est très important de comprendre que la signification de certains termes ou expressions peut être très différente dans le domaine. Il y a une certaine frontière où les concepts d'une langue omniprésente ont une signification contextuelle très spécifique.
Problèmes de l'absence d'une langue omniprésente
Lorsque les développeurs et les experts ne sont pas d'accord avec la terminologie d'un langage omniprésent, plusieurs problèmes peuvent survenir:
Utilisez un nom plus précis
Dans les conversations, vous constaterez peut-être que les utilisateurs parlent du même concept, mais utilisent des mots différents. Il peut s'agir d'argot ou d'une abréviation. Dans le cadre d'un langage omniprésent de votre système, il est préférable de s'arrêter à un seul nom pour que tout le monde comprenne ce qu'il signifie.
Utiliser un terme qui n'a jamais été utilisé auparavant
Dans les domaines d'activité, il existe déjà un vocabulaire établi. Si vous introduisez la terminologie des développeurs, cela va semer la confusion.
La seule situation où l'équipe de développement peut suggérer d'utiliser un terme différent est s'il est accepté par tous les membres de l'équipe.
La phrase « il suffit de renommer quelque chose»
Imaginons une situation où le processus de conception est déjà en cours. Une courte phrase demandant de remplacer, par exemple, le nom d'un champ dans l'interface utilisateur peut entraîner la nécessité de le renommer dans tout le code. Et cela signifie que le développeur perdra du temps et fera face à des risques.
Avantages et inconvénients
Parmi les avantages, il convient de souligner que le temps de compréhension mutuelle entre les développeurs et les clients est considérablement réduit. De plus, le code se concentre uniquement sur la logique métier qui est facile à modifier. Enfin, il est facile de passer à plusieurs technologies sans avoir à se soucier des aspects techniques.
Le seul problème est qu'il faut beaucoup de temps et plusieurs réunions pour approfondir la connaissance du sujet. Mais les avantages tirés de l'utilisation d'un langage omniprésent l'emporteront sur le temps et les efforts consacrés à sa création.