Lorsque l'on démarre un projet complexe comme celui que nous abordons, il est essentiel de rassembler autant de contexte que possible tout en abordant les connaissances du domaine à partir de zéro et en les explorant avec l'aide d'experts du domaine. Cette activité aide non seulement l'équipe technique à s'aligner sur les objectifs commerciaux, mais crée également une carte globale qui jette les bases d'une prise de meilleures décisions tout au long du cycle de vie du produit.
Pour comprendre le fonctionnement de l'application existante, identifier les différents processus qu'elle exécutait et déterminer comment ils étaient représentés dans le code, tout en établissant un langage commun avec l'équipe précédente et les utilisateurs actuels de l'application, nous avons mené des premières sessions qui n'ont pas été très fructueuses. À un moment donné, nous nous sommes même demandé si nous pouvions avancer sans ces séances et régler les choses par nous-mêmes, malgré le potentiel de perturbations.
Dès le début du projet, en tant que responsable technique, étant donné la complexité du projet et la nécessité pour l'équipe de s'approprier réellement le produit, j'ai poussé à adopter une approche axée sur le domaine à la fois pour le projet et pour l'équipe.
Cette approche nous a permis de placer le domaine au centre du récit, en alignant toute l'équipe autour d'un langage commun (langage omniprésent), ce qui a facilité la communication et permis de cartographier l'état actuel de l'application.
Avec cet objectif en tête, nous avons formé l’équipe initiale et commencé à préparer les sessions EventStorming. Cette méthodologie visuelle nous a aidé à décomposer les processus clés du système et à identifier les événements et entités de domaine pertinents.
Pour faciliter les sessions, nous avons utilisé un modèle Miro qui fournissait des conseils et une légende avec des références clés pour cibler efficacement ces sessions. Si vous envisagez d'organiser une telle session, il est utile que les participants aient une compréhension de base des concepts avec lesquels ils travailleront, soit par le biais d'un travail préalable, soit d'une explication au début de la session.
Pour maximiser l’efficacité de ces séances, nous avons développé un processus structuré divisé en plusieurs phases :
Explorer les événements de domaine (grande image)
Raffinement et analyse
Modélisation de domaine
Documentation et validation
EventStorming nous a non seulement aidé à comprendre le domaine, mais a également servi de point de départ pour appliquer les principes de Domain-Driven Design (DDD) à la fois stratégiques et tactiques.
L'un des aspects les plus importants au cours de la phase initiale du projet a été de décider comment structurer le domaine à un niveau stratégique. La complexité du système, combinée à la nécessité d'aligner les objectifs ...
[Courte citation de 8% de l'article original]