Diagramme de flux cumulé
Le diagramme de flux cumulé (CFD, de l'anglais cumulative flow diagram) est un graphique en aires empilées. Il porte, jour après jour, le nombre cumulé d'éléments de travail parvenus dans chaque état d'un flux: prêt, réalisation, en revue, terminé. Un jour donné, la hauteur d'une bande compte les éléments présents dans son état. À une hauteur donnée, la distance horizontale entre deux courbes mesure le temps que les éléments ont mis à passer de l'une à l'autre. Le diagramme donne les métriques de flux: l'en-cours, le débit, le délai total et le temps de cycle. La loi de Little les relie et explique pourquoi une équipe qui réduit son en-cours raccourcit ses délais. David J. Anderson en a fait un graphique de pilotage de la méthode Kanban, et Donald G. Reinertsen l'emploie pour surveiller les files d'attente du développement de produits.
Objectif
Le diagramme de flux cumulé est le graphique de l'historique d'un flux de travail: il montre où le travail s'accumule et combien de temps il met à le traverser. Un tableau kanban ou un tableau des tâches montre l'état du travail un jour donné. Le diagramme aligne ces relevés jour après jour: chaque colonne devient une bande, chaque jour un point sur l'axe du temps.
L'équipe y lit quel état renforcer, où poser ou resserrer une limite d'en-cours et quel délai annoncer à un demandeur. Le livrable est le diagramme tenu à jour et un relevé des métriques sur une fenêtre de quelques semaines: en-cours moyen, débit, délai total, temps de cycle et leur vérification par la loi de Little.
Le burndown et le burn-up comparent l'avancement d'un sprint ou d'une livraison à un périmètre engagé et à une échéance: l'équipe finira-t-elle ce qu'elle a promis? Le diagramme de flux cumulé lit un flux continu sur n'importe quelle fenêtre, indépendamment des sprints. Il demande où le travail attend.
Usage
Quand l'utiliser
- Flux continu sans itération fixe: support applicatif, demandes de changement, instruction de dossiers.
- Plaintes sur les délais sans cause désignée: la bande qui s'élargit désigne l'état qui retient le travail.
- Réglage d'une limite d'en-cours: la loi de Little chiffre l'effet attendu, le diagramme montre l'effet obtenu.
- Délai à annoncer à un demandeur ou à inscrire dans un accord de niveau de service (SLA): le délai mesuré, pris à un centile, remplace l'estimation.
- Équipe Scrum dont les éléments stagnent pendant le sprint: le diagramme se trace aussi sur les colonnes du tableau de sprint.
- Outil de suivi qui date chaque changement d'état: l'historique existe déjà, il reste à le cumuler.
Quand ne pas l'utiliser
- Livraison unique à échéance fixe: la question devient «finirons-nous à temps?», prendre le burn-up.
- Moins d'une dizaine d'éléments livrés par mois: les courbes se réduisent à quelques marches, suivre l'âge de chaque élément sur le tableau.
Description
Les courbes et les bandes
L'axe horizontal porte le temps, en jours ouvrables ou calendaires. L'axe vertical porte un nombre cumulé d'éléments. Chaque état a sa courbe: elle compte, pour chaque jour, les éléments qui ont atteint cet état, qu'ils s'y trouvent encore ou qu'ils soient allés plus loin. Les éléments livrés avant la fenêtre n'entrent pas dans le compte. Une courbe cumulée ne descend donc jamais, sauf quand un élément est retiré ou renvoyé en arrière.
Les courbes s'empilent dans l'ordre du tableau. La courbe Terminé forme le bas du graphique. Les états amont se superposent au-dessus, et la courbe du haut compte les éléments engagés. L'espace entre deux courbes voisines est la bande d'un état.
Trois bornes découpent le flux. Le point d'engagement est l'instant où l'équipe s'engage à livrer un élément: il quitte la liste des demandes et entre dans le système. Le début du travail est l'entrée dans le premier état où quelqu'un travaille sur l'élément. La livraison est l'entrée dans Terminé. Les demandes non engagées restent hors du diagramme. Leur liste grossit et maigrit au gré des arbitrages, et sa bande écraserait l'échelle des autres.
Les métriques de flux
| Métrique | Ce qu'elle mesure | Bornes | Unité |
|---|---|---|---|
| En-cours (work in progress, WIP) | Les éléments engagés et non terminés, un jour donné | Engagement, livraison | Éléments |
| Débit (throughput) | Les éléments livrés par unité de temps | Livraison | Éléments par semaine |
| Délai total (lead time) | Le temps qu'un élément met entre son engagement et sa livraison | Engagement, livraison | Jours |
| Temps de cycle (cycle time) | Le temps qu'un élément met entre le début du travail et sa livraison | Début du travail, livraison | Jours |
| Âge | Le temps écoulé depuis l'engagement d'un élément encore ouvert | Engagement, aujourd'hui | Jours |
Sur le diagramme, l'en-cours est l'écart vertical entre la courbe d'engagement et la courbe Terminé. Le débit est la pente de la courbe Terminé. Le délai total est l'écart horizontal entre les mêmes courbes, et le temps de cycle l'écart horizontal entre la courbe du début du travail et la courbe Terminé. Quand les éléments sortent dans l'ordre où ils sont entrés, l'écart horizontal donne le délai de l'élément lu. Sinon, il approche le délai moyen.
Les noms varient d'un auteur et d'un outil à l'autre. Certains outils appellent temps de cycle l'intervalle entre l'engagement et la livraison. Dans la tradition lean, dont relève la Value Stream Mapping, le temps de cycle désigne le temps de travail à une seule étape. D'autres équipes mesurent le délai depuis la demande et non depuis l'engagement. L'équipe fixe ses bornes sur le tableau et écrit sa définition en tête du relevé. Un délai sans ses deux bornes ne se compare à aucun autre.
La loi de Little
John D. C. Little a démontré une relation des files d'attente, L = λW: le nombre moyen d'éléments dans un système égale leur débit moyen d'arrivée multiplié par le temps moyen qu'ils y passent.
La loi porte sur des moyennes et sur un système stable: sur la fenêtre observée, les arrivées égalent à peu près les sorties, l'en-cours finit au niveau où il a commencé et chaque élément engagé sort, livré ou retiré. Le débit des sorties remplace alors le débit d'arrivée λ. Dans les termes du flux:
En-cours moyen = Débit moyen × Délai total moyen, d'où Délai total moyen = En-cours moyen ÷ Débit moyen.
La loi vaut entre deux bornes quelconques, pourvu que l'en-cours se compte entre les mêmes bornes. Le nombre d'éléments entre le début du travail et la livraison, divisé par le débit, donne le temps de cycle moyen. Le nombre d'éléments qui attendent avant le début du travail, divisé par le débit, donne l'attente moyenne. Le délai total se décompose en attente plus temps de cycle, lus sur le même diagramme. Dans l'exemple de cette fiche, sur les semaines stables, 8 éléments sont en réalisation ou en revue et 4 attendent dans Prêt, pour un débit de 6 par semaine. Le temps de cycle moyen vaut 8 ÷ 6, environ 1,3 semaine, et l'attente 4 ÷ 6, environ 0,7 semaine: un tiers des 2 semaines de délai total se passe avant que quiconque touche l'élément.
Vous trouverez le réglage d'une limite d'en-cours à partir de cette relation sur le tableau kanban et ses limites d'en-cours.
Mettre en place le diagramme
- Nommer les états et poser les bornes. L'équipe reprend les colonnes de son tableau et marque le point d'engagement, le début du travail et la livraison. Chaque état a une règle d'entrée écrite, sans quoi deux personnes classent le même élément différemment.
- Choisir ce qui se compte. Un diagramme compte des éléments et ignore leur taille. L'équipe y réunit donc des éléments de taille comparable. Incidents et demandes de changement prennent chacun leur diagramme.
- Relever les dates de passage. Pour chaque élément, l'outil de suivi enregistre la date d'entrée dans chaque état. Sans outil, l'équipe compte les cartes de chaque colonne tous les jours à la même heure.
- Choisir la fenêtre. Elle couvre plusieurs délais totaux: une moyenne calculée sur moins d'un délai ne contient que les éléments rapides.
- Tracer. L'équipe compte, pour chaque jour et chaque état, les éléments entrés dans cet état ou dans un état plus avancé. Elle empile les courbes avec Terminé en bas et remet le compte de Terminé à zéro au premier jour de la fenêtre.
- Lire et calculer. L'équipe repère les motifs et relève l'en-cours moyen, le débit, le délai total et le temps de cycle. Elle divise l'en-cours moyen par le débit et compare le résultat au délai moyen mesuré élément par élément. Un écart signale un flux instable ou des données fausses: des éléments fermés sans passer par les états, des retours en arrière non enregistrés.
- Agir, puis relire. Après une nouvelle limite d'en-cours, les éléments déjà engagés sortent avec le délai qu'ils ont accumulé. Le délai total mesuré ne baisse qu'après une durée égale à l'ancien délai total, deux semaines dans l'exemple. L'équipe attend au moins ce temps avant de juger la mesure.
Lire les motifs
Des bandes d'épaisseur constante décrivent un flux stable: chaque état livre autant qu'il reçoit. Une bande qui s'élargit décrit un état qui reçoit plus qu'il ne livre, le goulot d'étranglement. La bande sous lui s'amincit, parce que l'état en aval manque de travail. La règle vaut pour un état où l'on travaille. Sur un état d'attente, comme une colonne «Prêt pour revue», la bande qui s'élargit désigne le goulot dans l'état suivant, qui ne tire plus le travail.
Une courbe Terminé plate signale que rien ne sort: un blocage, un gel des mises en production, des vacances. Une courbe Terminé en escalier signale des livraisons par lots, et le délai total de chaque élément contient l'attente du lot. Une courbe d'engagement qui monte plus vite que la courbe Terminé signale une équipe qui engage plus qu'elle ne livre: l'en-cours et le délai croissent ensemble. Une courbe qui descend signale un retrait ou un retour en arrière, et l'équipe vérifie ses données avant de conclure.
Ce qui fausse la lecture
Une moyenne cache l'élément bloqué. Une carte immobile depuis trois semaines déplace à peine une bande. L'âge de chaque élément ouvert, suivi sur le tableau, la fait apparaître le jour où elle dépasse le délai habituel.
Des dates saisies après coup déplacent les courbes. Une carte déplacée le vendredi pour un travail fini le mardi compte l'élément dans Terminé trois jours trop tard. Quand toute l'équipe met le tableau à jour le vendredi, le diagramme montre des lots qui n'ont pas existé. Le délai moyen varie peu; le délai de chaque élément est faux. Le signe: une courbe Terminé en escalier dont chaque marche tombe le jour où l'équipe met le tableau à jour, quand les mises en production suivent un autre rythme.
Les retours en arrière brouillent les courbes. Une relecture renvoie un élément de la colonne En revue vers la colonne Réalisation. L'équipe décide si l'élément reste compté dans l'état le plus avancé atteint ou s'il redescend, et elle applique la même règle à tous les relevés.
Le diagramme ne prévoit pas une date d'achèvement. Prolonger la courbe Terminé jusqu'à un périmètre fixe revient à tracer un burn-up. Un engagement de délai envers un demandeur se fonde sur la distribution des délais totaux mesurés. L'équipe trie les délais des éléments livrés et prend la valeur sous laquelle tombent 85% d'entre eux: «85% des demandes livrées en 12 jours ou moins». La moyenne, environ 8 jours dans le nuage de points ci-dessous, promet un délai que plus d'une demande sur trois dépasse.
Un débit érigé en objectif se manipule. Une équipe jugée sur son débit découpe ses éléments en plus petits. Le débit monte, et le demandeur n'est pas livré plus tôt. Deux équipes comparées par leur débit sont comparées par leur façon de découper.
Considérations IA
Un modèle de langue écrit le script ou les formules de tableur qui transforment un export d'historique, avec identifiant, état et date de passage, en comptes cumulés par jour et par état, puis en diagramme. L'analyste vérifie le résultat. Il compte à la main, sur l'export, les éléments d'un jour choisi. Sur une fenêtre stable, il divise l'en-cours moyen par le débit et retrouve le délai moyen calculé élément par élément.
Le modèle décrit aussi un diagramme: il nomme la bande qui s'élargit et la semaine où la courbe Terminé s'aplatit. La cause lui échappe. Une relectrice absente, un environnement de test indisponible et un gel des mises en production dessinent la même bande. L'équipe trouve la cause en rétrospective.
L'export d'un outil de suivi porte les titres et les descriptions des demandes, parfois avec des noms de clients ou d'assurés. Le calcul demande l'identifiant, le type, l'état et les dates. Le reste ne part pas vers un service dont l'organisation ne maîtrise pas les conditions d'usage.
Exemples
L'équipe applicative d'une caisse de pension traite des demandes de changement sur quatre semaines, avec un seul relecteur. Elle relève les états chaque jour. Le tableau reprend les vendredis, depuis l'état initial du vendredi qui précède la semaine 1.
| Relevé | Prêt | Réalisation | En revue | Terminé (cumul) | En-cours | Débit de la semaine |
|---|---|---|---|---|---|---|
| Vendredi S0 (état initial) | 4 | 4 | 4 | 0 | 12 | – |
| Vendredi S1 | 4 | 4 | 4 | 6 | 12 | 6 |
| Vendredi S2 | 4 | 4 | 4 | 12 | 12 | 6 |
| Vendredi S3 | 4 | 4 | 7 | 15 | 15 | 3 |
| Vendredi S4, limites posées le lundi | 3 | 2 | 2 | 24 | 7 | 9 |
En semaines 1 et 2, le flux est stable: 12 éléments engagés, 6 livrés par semaine, soit un délai total moyen de 2 semaines. Le diagramme le confirme: la courbe d'engagement atteint 12 le vendredi de S0, la courbe Terminé le vendredi de S2, dix jours ouvrables plus tard. En semaine 3, le relecteur est absent deux jours. La bande En revue s'élargit, le débit tombe à 3 et l'en-cours monte à 15. Les semaines 3 et 4 sont instables: le diagramme montre la dégradation, la loi de Little ne donne qu'une projection. Si le débit revient à 6 par semaine, un en-cours de 15 annonce 2,5 semaines de délai. Le lundi de S4, l'équipe limite Réalisation à 3 éléments et En revue à 4, et deux développeurs passent à la relecture.
Le vendredi de S4, l'en-cours vaut 7: si le débit revient à 6, le délai projeté vaut 7 ÷ 6, un peu plus d'une semaine. Le 24e élément livré ce jour-là avait été engagé le vendredi de S2: dix jours. Il a traversé le goulot. Le délai total mesuré ne baissera qu'une fois sortis les éléments engagés avant les limites.
Visualisations
Chaque état garde sa couleur d'un relevé à l'autre, et l'axe vertical part de zéro au premier jour de la fenêtre. Les annotations désignent ce que le lecteur doit voir: un écart vertical marqué en-cours, un écart horizontal marqué délai total, la bande qui s'élargit nommée.
Le nuage de points des délais porte chaque élément livré par sa date de livraison et son délai total, avec les lignes du 50e et du 85e centile: il montre les éléments que les moyennes du diagramme cachent. L'histogramme des délais totaux donne la distribution sur laquelle se fonde un engagement de délai.
Coût
| Phase | Niveau | Justification |
|---|---|---|
| Préparation | Moyen | Nommer les états, poser les bornes, écrire les règles d'entrée et obtenir que le tableau soit tenu à jour le jour même. |
| Exécution | Faible | L'outil de suivi trace le diagramme. L'équipe le lit une fois par semaine et vérifie les moyennes par la loi de Little. |
| Documentation | Faible | La définition des bornes, la fenêtre retenue et le relevé des métriques, fenêtre par fenêtre. |
Outils
Les outils de suivi tracent le diagramme à partir de leur historique: Jira dans ses rapports de tableau, Azure DevOps dans un widget, Businessmap (ex-Kanbanize) dans ses analyses. Ils conviennent dès que l'équipe y fait vivre son tableau. Avant la première lecture, l'équipe vérifie dans leur documentation comment ils définissent le délai et le temps de cycle.
Des extensions, comme ActionableAgile Analytics, ajoutent le nuage de points des délais, les centiles et l'âge des éléments ouverts.
Un tableur suffit pour une équipe sans outil ou pour contrôler un outil: une ligne par élément avec ses dates de passage, un tableau croisé qui compte par jour et par état, un graphique en aires empilées. Un script Python avec pandas et matplotlib fait le même travail sur un export et se versionne.
Sources
- David J. Anderson, Kanban: Successful Evolutionary Change for Your Technology Business, Blue Hole Press, 2010: le diagramme de flux cumulé et le délai total comme mesures de pilotage d'un système kanban.
- Donald G. Reinertsen, The Principles of Product Development Flow: Second Generation Lean Product Development, Celeritas Publishing, 2009, principes Q11 The Cumulative Flow Principle et Q12 Little's Formula: les courbes cumulées des arrivées et des départs, l'écart vertical comme file d'attente, l'écart horizontal comme temps d'attente, puis la formule de Little.
- Wolfram MathWorld, «Little's Law»: l'énoncé L = λW et son attribution à John D. C. Little.

