02. Techniques de l'EventStorming
Categories:
🧩 Cet article fait partie d’une série sur l’EventStorming
Dans le développement logiciel, la compréhension fine du métier est souvent le point de friction principal entre les experts métier et les équipes techniques. C’est là qu’intervient l’EventStorming, une méthode de modélisation collaborative puissante qui permet de visualiser, d’explorer et de structurer les processus métier complexes de manière efficace et intuitive.
Les 3 formats d’EventStorming
Au fil des années, trois grands types d’ateliers ont émergé :
- Big Picture EventStorming : cartographier tout un domaine ou un ensemble de processus métier.
- Process Modelling EventStorming : se concentrer sur un processus spécifique.
- Software Design EventStorming : modélisation orientée vers la conception logicielle, souvent couplée au DDD (Domain-Driven Design).
Big Picture
Le format Big Picture EventStorming est le plus vaste. Il mobilise souvent 25 à 30 participants issus de tous les niveaux de l’organisation. L’objectif est d’explorer l’ensemble d’une ligne métier, du début à la fin.
💡 Tip : Scénario Global
Utilise un scĂ©nario “system-wide” pour aligner tous les participants et rĂ©vĂ©ler les opportunitĂ©s d’amĂ©lioration Ă travers les dĂ©partements. Il doit couvrir tout un “customer journey”.
01. Domain Events
Les participants racontent les événements majeurs qui jalonnent les processus de leur organisation, en les positionnant chronologiquement. Cela se traduit par des Domain Events (post-its oranges).
Les événements métier racontent une histoire compréhensible par le métier.
02. Commands / Persons
On ajoute ensuite les commandes et les acteurs sur ces commandes.
Notre histoire s’enrichit Ă travers les commandes, qui rĂ©sultent souvent d’une action d’un acteur et dĂ©clenchent des Ă©vĂ©nements mĂ©tier.
03. External Systems
On peut ensuite ajouter les systèmes externes.
Notre histoire continue d’Ă©voluer, certains systèmes externes sont identifiĂ©s. Ces systèmes jouent un rĂ´le dans l’apparition d’un Ă©vĂ©nement mĂ©tier.
Process Modeling
Après le format Big Picture, le second format s’appelle Process Modeling. Il vise un niveau de granularitĂ© plus fin, tout en restant du cĂ´tĂ© mĂ©tier – on ne descend pas encore dans la conception logicielle.
On y modĂ©lise un processus spĂ©cifique, de bout en bout, en y ajoutant plus de rigueur sur l’utilisation des Ă©lĂ©ments de la Big Picture et en ajoutant de nouveaux Ă©lĂ©ments (policie et read model)
Ce format permet :
- D’analyser un processus existant en profondeur,
- D’explorer des variantes ou des scénarios alternatifs,
- De concevoir de nouveaux processus à partir de l’expérience terrain,
- D’identifier les goulots d’étranglement, risques, ou opportunités d’automatisation.
Il est particulièrement utile dans les contextes de transformation opérationnelle ou d’amélioration continue.
04. Policies
Dans notre histoire, on identifie - Ă travers les policies - les règles qui existent lorsqu’un Ă©vĂ©nement se produit.
Une policy peut également servir à introduire un comportement conditionnel dans la description du processus.
05. Read model
Ici, le read model Order Summary est un Ă©cran qu’on prĂ©sente Ă l’acheteur et qui lui permet de vĂ©rifier sa commande avant d’exĂ©cuter le paiement.
Software Design
Le dernier format s’appelle Software Design. Il fait le lien entre les Ă©vĂ©nements du mĂ©tier et leur implĂ©mentation logicielle potentielle. On y introduit des Ă©lĂ©ments supplĂ©mentaires dans la grammaire (les aggregates, et les contextes bornĂ©s). Cela permet d’augmenter la prĂ©cision de la discussion, tout en conservant un fort ancrage mĂ©tier.
Ce format est particulièrement pertinent pour :
- Concevoir une architecture logicielle alignée sur le métier,
- Identifier les interfaces entre domaines,
- Définir des limites de responsabilité claires,
- Éviter les couplages inutiles,
- Préparer la modélisation orientée DDD.
Il s’agit du format le plus technique, mais il garde une forte valeur collaborative en maintenant le dialogue constant entre experts métier et développeurs.
06. Aggregates
Dans notre scénario, voici les agrégats que nous pourrions ajouter :
- Payment - Si le paiement devient un processus complexe à part entière
- Shipment - Pour gérer finement les livraisons (multi-colis, tracking)
- ProductInventory - Pour intégrer la gestion de stock (en lecture/écriture)
En pratique, un aggregate est une classe métier qui fait autorité sur un sous-domaine. Pour les agrégats, on met l’accent sur le comportement, pas sur les données - dans l’esprit de la programmation orientée objet. Toutes les règles métier doivent être appliquées et garanties par cet agrégat.
De la commande Ă l’Ă©vĂ©nement
Que ce soit un aggregate ou un external system, ces “morceaux de software” servent souvent Ă transformer une commande en event
Résumé des post-its utilisés
Nous avons essayĂ© de rester proches du standard, notamment en ce qui concerne le nom et la couleur des post-its. Cependant, il est important de comprendre qu’il est possible de prendre beaucoup de libertĂ©s avec ces conventions.
Voici un exemple présenté par Nick Tune lors d’un atelier :
- Le context, qui représente un aggregate, a la même couleur qu’un external system.
- Le read model est appelé query, car ici le premier event effectue un appel vers le second pour obtenir des informations (read model).
En savoir plus : organiser un workshop pour découper un monolithe en microservices