02. Techniques de l'EventStorming

🧩 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).

alt text

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).

Domain Event
Un Event ou Domain Event est un fait significatif qui s’est produit dans le système, formulĂ© au passĂ©, reprĂ©sentant un changement d’Ă©tat. Il reprĂ©sente des faits qui se sont produits, indique des changements importants dans le domaine et forme l’Ă©pine dorsale de la narration mĂ©tier.

Les événements métier racontent une histoire compréhensible par le métier.

BigPicture - step 1

02. Commands / Persons

On ajoute ensuite les commandes et les acteurs sur ces commandes.

Command
Une commande, c’est une intention exprimĂ©e par un utilisateur ou un système, qui demande qu’une action soit exĂ©cutĂ©e. Chaque commande dĂ©clenche (souvent) un Ă©vĂ©nement, si les conditions mĂ©tier sont respectĂ©es.
Actor
Un acteur ou personne est quelqu’un qui agit sur le système et prend des dĂ©cisions. En gĂ©nĂ©ral, les personnes sont positionnĂ©es sur les commandes dont elles sont Ă  l’origine.

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.

BigPicture - step 3

03. External Systems

On peut ensuite ajouter les systèmes externes.

External System
Les systèmes externes sont les systèmes maintenus par d’autres Ă©quipes ou organisations. Ces systèmes sont les logiciels qu’on ne modĂ©lise pas dans le processus actuel.

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.

BigPicture - step 4

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

Policy
Une policy est une règle métier ou un comportement automatique déclenché par un événement. Elle agit comme une réaction logique à un événement, et peut conduire à une commande ou un autre événement.

Dans notre histoire, on identifie - Ă  travers les policies - les règles qui existent lorsqu’un Ă©vĂ©nement se produit.

Process Modeling - step 04

Une policy peut également servir à introduire un comportement conditionnel dans la description du processus.

Policy if then else

05. Read model

Read Model
Un Read Model (ou information) est une vue optimisée pour la lecture, créée à partir des événements métier. Il sert à afficher les données dont un utilisateur ou un système a besoin, souvent via des écrans, APIs, dashboards, etc.

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.

Process Modeling - step 5

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

Aggregate
Un agrégat est un concept destiné à être transformé en code — sous forme de classes ou de fonctions. C’est essentiellement une machine à états, c’est-à-dire quelque chose qui suit un cycle de vie.

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)

Software Design - step 06

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

Software Design - step 06

Résumé des post-its utilisés

Software Legend

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).

Software Design - step 06

En savoir plus : organiser un workshop pour découper un monolithe en microservices

Last modified June 3, 2025: illustration (7d67a00)