Chapitre 14
14 - Event Storming & CRC Cards
14 - Event Storming & CRC Cards
Chapitre 14 : Event Storming & CRC Cards
Introduction
L'Event Storming, créé par Alberto Brandolini, est une technique de modélisation collaborative qui réunit experts métier et développeurs autour d'un même mur pour modéliser un domaine. Les CRC Cards complètent cette approche en permettant de définir les responsabilités et collaborations des objets du domaine.
14.1 Event Storming
14.1.1 Présentation
L'Event Storming (Brandolini, 2014) est un atelier de modélisation où les participants collent des post-its sur un mur pour représenter le comportement d'un système.
Diagramme en cours de génération...
Pourquoi l'Event Storming ?
- Découvrir les Domain Events (DDD)
- Aligner métier et technique
- Identifier les bounded contexts
- Réduire les incompréhensions
- Favoriser la collaboration
14.1.2 Les 3 types d'Event Storming
Diagramme en cours de génération...
| Type | Durée | Participants | Objectif |
|---|---|---|---|
| Big Picture | 2-4h | 10-20 | Cartographier le domaine complet |
| Process Modeling | 4-8h | 5-10 | Modéliser un processus spécifique |
| Software Design | 2-4h | 3-5 | Concevoir les agrégats et événements |
14.1.3 Les cartes Event Storming
Diagramme en cours de génération...
| Carte | Couleur | Signification |
|---|---|---|
| Domain Event | 🟠 Orange | Quelque chose qui s'est passé |
| Command | 🔵 Bleu | Action déclenchée par un acteur |
| Actor | 🟡 Jaune | Personne, rôle ou système |
| Aggregate | 🩷 Rose | Groupe cohérent d'objets |
| Policy | 🟣 Violet | Règle métier automatique |
| External System | 🔴 Rouge | Système tiers |
| Read Model | 🟢 Vert | Affichage de données |
14.2 Big Picture
14.2.1 Objectif
Le Big Picture donne une vue d'ensemble du domaine, idéal pour :
- Découvrir le périmètre du système
- Identifier les bounded contexts
- Repérer les dépendances entre services
- Aligner toutes les parties prenantes
14.2.2 Déroulement
Diagramme en cours de génération...
14.2.3 Exemple Big Picture — E-commerce
Diagramme en cours de génération...
14.3 Process Modeling
14.3.1 Objectif
Le Process Modeling détaille un processus spécifique avec :
- Les événements dans l'ordre chronologique
- Les commandes qui les déclenchent
- Les acteurs impliqués
- Les règles métier (policies)
- Les systèmes externes
14.3.2 Structure d'un Process Modeling
Diagramme en cours de génération...
14.3.3 Exemple Process Modeling — Réservation hôtelière
Diagramme en cours de génération...
14.4 Software Design
14.4.1 Objectif
Le Software Design se concentre sur l'implémentation technique :
- Définir les agrégats (DDD)
- Spécifier les Domain Events
- Détailer les commandes validées
- Concevoir les projections (CQRS)
14.4.2 Exemple Software Design
Diagramme en cours de génération...
14.5 CRC Cards
14.5.1 Présentation
Les CRC Cards (Class-Responsibility-Collaboration) ont été introduites par Kent Beck et Ward Cunningham pour l'enseignement de la conception orientée objet.
Diagramme en cours de génération...
14.5.2 Format CRC Card
┌─────────────────────────────────────┐
│ Classe: Commande │
├─────────────────────────────────────┤
│ Responsabilités : │
│ - Créer une commande │
│ - Ajouter des articles │
│ - Calculer le total │
│ - Valider le statut │
│ - Appliquer les réductions │
├─────────────────────────────────────┤
│ Collaborations : │
│ - Client (obtenir infos) │
│ - Panier (copier articles) │
│ - Paiement (valider) │
│ - Livraison (déclencher) │
│ - Notification (confirmer) │
└─────────────────────────────────────┘
14.5.3 Utilisation des CRC Cards
Étapes :
- Identifier les classes candidates (noms du domaine)
- Définir les responsabilités de chaque classe
- Identifier les collaborations entre classes
- Simuler des scénarios en "jouant" les cartes
Exemple de simulation CRC :
Diagramme en cours de génération...
14.6 Domain Storytelling
14.6.1 Présentation
Le Domain Storytelling (Hofmann, Lehmann) est une technique de modélisation collaborative qui raconte des histoires du domaine avec une notation visuelle.
Acteurs : 🟢 Personnes / Systèmes Activités : 🟡 Actions Objets de travail : 📄 Documents / Données
14.6.2 Notation
[Client] → "consulte" → [Catalogue]
[Catalogue] → "affiche" → [Liste produits]
[Client] → "sélectionne" → [Produit]
[Produit] → "ajouté à" → [Panier]
14.6.3 Exemple Domain Storytelling
Diagramme en cours de génération...
14.7 Facilitation d'ateliers
14.7.1 Rôle du facilitateur
Le facilitateur garantit le bon déroulement de l'atelier :
Diagramme en cours de génération...
14.7.2 Checklist de préparation
| Tâche | Responsable | Délai |
|---|---|---|
| Définir l'objectif de l'atelier | Facilitateur | J-14 |
| Inviter les participants | Organisateur | J-14 |
| Préparer le matériel (post-its, feutres) | Facilitateur | J-7 |
| Préparer la salle / outil en ligne | Support | J-1 |
| Envoyer le contexte aux participants | Facilitateur | J-3 |
| Animer l'atelier | Facilitateur | J |
| Synthétiser les résultats | Facilitateur | J+3 |
14.7.3 Atelier en ligne
Pour les ateliers à distance :
| Outil | Usage |
|---|---|
| Miro | Tableau blanc collaboratif |
| MURAL | Post-its virtuels |
| Microsoft Whiteboard | Collaboration Office |
| Lucidchart | Diagrammes et post-its |
| Stormboard | Spécialisé Event Storming |
14.7.4 Écueils et conseils
| Écueil | Solution |
|---|---|
| Participants silencieux | Questions ouvertes, tours de table |
| Discussions hors-sujet | Parking lot pour idées hors scope |
| Trop de détails trop tôt | Commencer par Big Picture |
| Conflit entre participants | Reformuler, recentrer sur les faits |
| Fatigue | Pause toutes les 45 minutes |
14.8 Synthèse
Diagramme en cours de génération...
Références
- Alberto Brandolini — Introducing EventStorming (Leanpub, 2014)
- Kent Beck, Ward Cunningham — CRC Cards (OOPSLA, 1989)
- Stefan Hofmann, Martin Lehmann — Domain Storytelling (2020)
- Event Storming Official
- Domain Storytelling