Event storming

VoletPratique L’atelier d’Alberto Brandolini. De tout DDD, c’est la pratique au meilleur rapport valeur/effort, et la seule applicable dès la semaine prochaine sans rien changer au code.

Le principe : réunir dans une même pièce les gens qui savent et les gens qui construisent, et modéliser le métier comme une suite d’événements sur un mur, avec des post-its. Pas de diagramme, pas d’outil, pas de notation à apprendre.

L’observation qui le fonde est due à Brandolini :

Il n’est pas nécessaire que le modèle soit juste, il suffit qu’il soit utile. Et surtout : le goulet d’étranglement d’un projet n’est presque jamais la technique, c’est le fait que la connaissance du métier n’est pas partagée.

Ce qu’on y gagne

Quatre livrables, dont le dernier est le plus précieux et le moins attendu.

  • Un langage partagé, construit en direct — voir Langage omniprésent. Deux heures de post-its produisent plus de vocabulaire commun que trois mois de spécifications rédigées.
  • Des candidats contextes délimités, qui apparaissent visuellement comme des zones du mur où le vocabulaire change.
  • Des candidats agrégats et les invariants qui les justifient.
  • Les désaccords entre experts, rendus visibles. C’est le vrai gain. Chaque point de friction repéré sur le mur est un bug évité — ou plutôt un bug qui aurait été découvert six mois plus tard, en production, sans qu’on comprenne pourquoi deux services attendaient deux comportements différents.

Le code couleur

La convention de Brandolini, réduite à ce qui sert vraiment. Les couleurs exactes importent peu ; ce qui compte est qu’une forme de note corresponde à une seule nature de chose.

CouleurÉlémentFormulation
OrangeÉvénement de domaineVerbe au passé : Réservation confirmée
BleuCommande — l’intention qui déclencheVerbe à l’infinitif : Confirmer la réservation
Jaune pâleActeur, rôleClient, Guichetier
Jaune vifAgrégatNom : Réservation, Séance
VioletPolitique, règle de réactionDès que… alors…
RoseSystème externePrestataire de paiement
VertModèle de lecture, information consultéePlan de salle
RougePoint chaud — désaccord, question ouverte, risqueToujours en diagonale

Le post-it rouge est le plus important de la panoplie. Il matérialise « on n’est pas d’accord » ou « personne ne sait » sans bloquer l’atelier, et la liste des points chauds est souvent le livrable le plus actionnable de la séance.

Trois niveaux

Le même format sert trois objectifs très différents, et confondre les trois est l’erreur de préparation la plus commune.

NiveauObjectifParticipantsDurée
Big pictureComprendre tout le métier, trouver les frontièresLarge : métiers, direction, techniqueUne demi-journée à deux jours
Process modellingDétailler un processus précis, avec ses règlesRestreint : experts du processusQuelques heures
Software designDescendre jusqu’aux agrégats et aux commandesÉquipe de développement + un expertQuelques heures, souvent répété

Le big picture se fait une fois, au début, et cadre le reste. Les deux autres se refont autant que nécessaire.

Le déroulé

1. Exploration chaotique

Chacun écrit des événements au passé sur des post-its orange et les colle au mur. Sans ordre, sans se coordonner, tous en même temps, pendant quinze à trente minutes.

Le désordre est volontaire : il évite qu’une personne — souvent la plus haut placée — impose sa vision du déroulement dès la première minute. On obtient un mur saturé, redondant et contradictoire. C’est le résultat attendu.

2. Mise en ordre chronologique

Le groupe organise les événements de gauche à droite selon le temps. Les doublons fusionnent, les manques apparaissent, les contradictions se voient.

C’est l’étape la plus longue et la plus productive : c’est ici que les désaccords de vocabulaire éclatent. Chaque fois qu’une discussion dépasse deux minutes, un post-it rouge est posé et l’on avance.

3. Événements pivots et frontières

On repère les événements qui marquent un changement de phase — Commande validée, Paiement reçu, Colis expédié. Ils découpent la chronologie en grandes étapes, et ces étapes sont les premiers candidats contextes délimités : le vocabulaire change souvent en les franchissant.

4. Commandes, acteurs, systèmes externes

Devant chaque événement, on place la commande qui l’a provoqué (bleu), et qui l’a émise (jaune pâle) ou quel système externe (rose). Le motif de base se lit alors :

   ┌─────────┐   ┌──────────────┐   ┌──────────┐   ┌──────────────────┐
   │ Acteur  │──►│  Commande    │──►│ Agrégat  │──►│   Événement      │
   │ Client  │   │ Confirmer la │   │Réservation│  │   Réservation    │
   │         │   │ réservation  │   │          │   │   confirmée      │
   └─────────┘   └──────────────┘   └──────────┘   └──────────────────┘
                                                            │
                                                            ▼
                                                   ┌──────────────────┐
                                                   │ Politique        │
                                                   │ « dès qu'une     │
                                                   │ réservation est  │
                                                   │ confirmée, alors │
                                                   │ créditer… »      │
                                                   └──────────────────┘

5. Politiques

Chaque fois qu’un événement en déclenche un autre sans intervention humaine, on place un post-it violet formulé « dès que … alors … ».

Ces politiques sont exactement les gestionnaires d’événements de domaine du futur code. Les repérer ici évite de les découvrir enfouies dans un service six mois plus tard.

6. Agrégats

On regroupe les commandes et les événements qui portent sur la même chose, et on nomme cette chose : c’est un agrégat candidat. Les invariants apparaissent naturellement, parce qu’ils sont ce qui justifie de refuser une commande.

C’est ce qui alimente directement la méthode décrite dans Agrégats — la liste des règles et le tri entre cohérence immédiate et différée.

Les règles qui font que ça marche

Tout le monde écrit, en même temps. Un atelier où une personne tient le marqueur devient une présentation. La simultanéité est ce qui fait remonter ce que les gens discrets savent.

Les événements sont au passé. Contrainte apparemment cosmétique, en réalité structurante : elle interdit de décrire des intentions et des fonctionnalités, et force à parler de ce qui arrive réellement.

Personne ne dessine de flèche au début. Les flèches sont des décisions de conception déguisées. Elles arrivent à l’étape 5, pas avant.

Les désaccords deviennent des post-its, pas des débats. Une discussion de dix minutes à huit personnes coûte plus cher qu’elle ne rapporte. Rouge, et on continue.

La personne qui peut dire non est dans la pièce. Sans elle, on produit un modèle qui sera invalidé plus tard — c’est-à-dire du travail perdu doublé d’une perte de crédibilité.

Le mur est illimité. Le manque de place pousse à synthétiser trop tôt. Un couloir vaut mieux qu’une salle de réunion ; en distanciel, une toile infinie est indispensable.

Aspects pratiques

Pour une quinzaine de participants : un mur d’au moins huit mètres, du papier kraft, des post-its de six couleurs en grande quantité, un marqueur par personne. Les marqueurs fins sont à éviter — ce qui n’est pas lisible à trois mètres n’existe pas.

Le facilitateur ne modélise pas : il fait respecter le format, relance les zones silencieuses et coupe les discussions. C’est un rôle à plein temps.

En distanciel, une toile infinie — Miro, FigJam, un tableau blanc partagé — fonctionne, à trois conditions : des sessions plus courtes, deux heures maximum ; un facilitateur qui donne explicitement la parole, car la simultanéité s’organise mal à distance ; et un modèle de tableau préparé à l’avance avec les couleurs déjà définies.

Tip

Le premier atelier est toujours décevant pour ses organisateurs et instructif pour ses participants. Le mur est brouillon, le format mal tenu, la moitié du temps passée à discuter du sens de « validé ». C’est normal, et ce n’est pas un échec : cette moitié de temps est précisément le travail utile. La pratique s’installe au troisième atelier.

Après l’atelier

Le mur est un artefact jetable — c’est même un point important de la méthode. Ce qu’il faut en extraire, le jour même :

  • la liste des points chauds, avec un responsable pour chacun ;
  • le vocabulaire retenu, et les termes explicitement écartés ;
  • les frontières de contexte candidates ;
  • les agrégats et leurs invariants ;
  • les politiques, qui deviendront des gestionnaires d’événements.

Une photo du mur ne remplace rien : elle est illisible dans trois semaines. Il faut transcrire, et c’est le seul moment où produire un document en vaut la peine — un canevas de contexte délimité est un bon réceptacle.

Références