L’ubiquitous language : un concept clé dans le développement de solutions transport ou CRM
Développer un CRM sur mesure nécessite une communication claire entre l’équipe technique et les parties prenantes, notamment lorsqu’il s’agit de définir précisément les termes du domaine métier. L’Ubiquitous Language, ou Langage Ubiquitaire, est une méthode visant à établir un vocabulaire partagé, compris de tous, pour assurer une compréhension mutuelle et éviter les malentendus. Ce langage commun est souvent essentiel pour garantir que les solutions techniques répondent bien aux attentes fonctionnelles. Voici quelques exemples concrets de son utilité et des conseils pour le mettre en pratique.
Exemple 1 : « Commande » et « Livraison »
Lors d’un projet pour une PME spécialisée dans le transport, les termes « commande » et « livraison » ont nécessité une définition commune.
- Point de vue du client : Pour eux, une « commande » incluait toute demande enregistrée, indépendamment de son état. La « livraison » représentait simplement l’étape finale de cette commande, c’est-à-dire l’envoi au client final.
- Point de vue de l’équipe technique : Dans le système, la « commande » ne devait être enregistrée qu’à partir d’un certain niveau de complétion et de validation. Quant à la « livraison », elle comprenait de multiples sous-étapes logistiques (emballage, préparation, transfert au transporteur) qui devaient être intégrées dans le CRM comme autant de statuts différents.
Après discussion, un consensus a été trouvé en structurant la commande en plusieurs états détaillés. Cela a permis de refléter le processus réel sans confusion, en clarifiant aussi le suivi des livraisons.
Exemple 2 : « Prospect » et « Contact »
Dans une autre situation, une entreprise de services souhaitait gérer ses prospects de manière précise, mais le terme même de « prospect » n’avait pas la même signification pour tous.
- Point de vue du client : Ils considéraient un « prospect » comme toute personne avec qui un premier échange avait eu lieu, même de façon informelle, par exemple lors d’un salon professionnel.
- Point de vue de l’équipe technique : Ici, le terme « prospect » était interprété comme une opportunité qualifiée, c’est-à-dire un contact ayant déjà manifesté un intérêt spécifique et pour lequel des informations de contact complètes étaient disponibles.
Un alignement a été réalisé en distinguant « contacts » et « prospects » pour structurer le CRM. Seuls les prospects qualifiés étaient inclus dans les statistiques et suivis actifs, tandis que les contacts restaient accessibles dans la base de données sans générer de charge inutile pour l’équipe commerciale.
Utiliser l’ubiquitous language : mode d’emploi
Pour mettre en place un Ubiquitous Language efficace, voici trois étapes clés :
- Définir ensemble les termes : Au début du projet, il est essentiel d’organiser une ou plusieurs sessions de découverte pour clarifier les termes importants. Ces sessions permettent de lever les ambiguïtés dès le départ.
- Documenter un glossaire commun : Consigner ces définitions dans un document accessible à toute l’équipe et aux clients. Un glossaire intégré dans les outils de gestion de projet favorise la cohérence et peut être enrichi au fur et à mesure.
- Maintenir le glossaire à jour : Avec des projets complexes, le langage évolue. Revoir régulièrement les termes et leur définition permet de prévenir les incompréhensions et de garder une communication fluide.
L’impact de l’ubiquitous language
Grâce à l’Ubiquitous Language, les non-techniciens peuvent exprimer leurs besoins de façon plus claire, et les développeurs gagnent en précision dans la traduction de ces besoins en fonctionnalités. Dans un projet pour une start-up, les définitions précises de termes comme « leads », « conversion » et « pipeline » ont permis de concevoir un CRM répondant exactement aux attentes de l’équipe commerciale, sans surcharge de données ni de traitement.
Quand l’ubiquitous language va plus loin : Domain-Driven Design (DDD)
Le Domain-Driven Design (DDD) repose sur l’idée que le développement logiciel doit être centré sur le domaine métier, et l’Ubiquitous Language est une composante clé de cette approche. Ce langage omniprésent est un vocabulaire commun, élaboré en collaboration entre développeurs et experts métier, et utilisé dans toutes les discussions, documents et dans le code lui-même.
Il vise à aligner la compréhension technique et métier pour réduire les malentendus. L’Ubiquitous Language s’inscrit au cœur du modèle conceptuel de DDD. Ce modèle, qui décrit les concepts, relations et règles du domaine, repose sur des termes partagés et précis. Par exemple, dans un domaine bancaire, des termes comme « compte », « transaction » ou « découvert » doivent être définis de manière claire et uniforme. Cette cohérence garantit que toutes les parties prenantes parlent la même langue, qu’il s’agisse de concevoir, de développer ou d’expliquer une fonctionnalité.
En DDD, l’Ubiquitous Language transcende la simple communication. Il se reflète directement dans le code : les noms des classes, des méthodes ou des modules doivent correspondre aux concepts du domaine. Cela renforce la lisibilité et facilite l’évolution du logiciel.
En résumé, l’Ubiquitous Language est l’outil central pour relier les concepts métier au code, faisant du DDD une approche véritablement collaborative et orientée domaine.