Un détecteur de problème: le CFD (Cumulative Flow Diagram)

Isabelle Roques
Publicis Sapient France
7 min readMar 7, 2023

Introduction :

Vous travaillez à améliorer l’efficacité de votre production, que ce soit sur une petite équipe ou sur un ensemble d’équipes.
Vous connaissez votre flux de production et vous l’avez certainement représenté par un tableau Kanban.
Vous recherchez quelles actions vous pourriez mener qui auraient de l’impact sur la valeur produite par votre entreprise ?
Vous ne connaissez pas le Cumulative Flow Diagram (CFD).

Alors cet article est pour vous ! Je vous propose d’y découvrir ce qu’est le CFD, et comment l’utiliser.

Gestion d’un flux de production

Avant d’entrer dans les détails de l’interprétation de vos CFD, je vais m’attarder sur le contexte d’utilisation de cet outil. En effet, ce dernier n’est utile que si vous avez déjà identifié votre flux de production.

Pour la suite de l’article, je considérerai que le process nous servant d’exemple nous permet de créer des « stories » que nous stockons dans un « backlog ». À tout moment, nos stories sont dans un état particulier d’avancement décrit par les étapes du process suivant :

Ce flux nous indique que pour produire un résultat, notre équipe a successivement réalisé les étapes citées :

  • Funnel : Boite à idées
  • Analysing : Vérifier que cette idée est intéressante, pérenne …. Qu’elle vaut le cout de son investissement
  • Backlog : notre idée est intéressante et est prête à être implémentée dès que quelqu’un pourra le faire
  • Implementing : notre idée est en cours de réalisation
  • Deployment : notre idée est en cours de déploiement pour être accessible à nos utilisateurs
  • Done : Notre idée est utilisable et utilisée par nos clients.

C’est quoi un Cumulative Flow Diagram (CFD) ?

Un CFD est un diagramme qui cumule des items en fonction de leur statut. Cela s’applique donc particulièrement bien aux stories de nos backlogs qui suivent le workflow précédemment défini.

Comment lire un CFD

Le CFD montre l’intégralité des stories de notre backlog en les cumulant selon leur statut. Chacune des surfaces montre donc le nombre de stories dans un statut donné à un moment donné.

EX :

Ainsi le 1/05 nous avions en tout environ 45 stories dont 16 dans le funnel, 5 en analyse,5 dans le backlog …et 8 en done. (Flèche rouge)

Remarquez ici, que je vous donne un nombre précis d’éléments, alors que la lecture du schéma ne permet pas cette précision… Ne vous inquiétez pas, pour analyser un CFD, nous n’avons pas besoin d’entrer dans la précision des informations, ce sont les tendances qui vont nous être utiles.

Évidemment, la partie basse bleue, qui représente le travail terminé ne doit faire qu’augmenter. Il permet de nous rendre compte du travail déjà réalisé.

Remarquez aussi la flèche jaune qui représente à un moment donné, tous les items à partir du moment où ils entrent en analyse jusqu’à ce qu’ils soient réalisés « done » : on appelle cet ensemble le travail en cours de votre processus ou le WIP (« work in progress »)

Enfin la flèche violette représente le temps nécessaire pour un item, pour être mis en production, à partir du moment où l’on décide de le commencer : le Lead Time.

Quand tout se passe bien

Quand chacune des étapes de votre flux produit à la même vitesse, il n’y a pas de création de stock : quand une story avance dans le processus, elle est « consommée » et passe par le statut suivant.

Le flux de production est alors fluide, il n’y a pas de goulet d’étranglement, les pentes sont toutes régulières et parallèles. Votre flux de production est maitrisé, et votre CFD ne vous indique pas où vous pourriez améliorer les choses (qui semblent se passer très bien) … Trop parfait peut-être, on pourrait se poser la question sur la qualité des données … nous y reviendrons plus tard.

Et quand cela se passe moins bien

Classiquement, un CFD n’est jamais parfait et ce sont ces imperfections qui vont nous renseigner. Ces imperfections se traduisent par des variations dans les pentes, qui ne seront plus parallèles. 2 grands cas existent : l’élargissement d’une zone qui correspond à une accumulation des tickets et le rétrécissement correspondant à une accélération du traitement des tickets.

Chacun se voit parce que la pente de leur contour change.

L’accumulation (goulet d’étranglement inversé)

Il s’agit des surfaces qui s’agrandissent en dehors du dernier statut (Done dans notre exemple), alors que l’étape suivante reste constante ou décroît : Concentrons-nous sur les stories en « backlog » représentée par la surface jaune du CFD suivant :

Dans cet exemple, la surface jaune augmente : il y a de plus en plus de stories dans cet état. Il y a une accumulation, un stock qui se crée : et ce n’est pas bien !

Les items s’accumulent dans le backlog, alors qu’il n’y a pas de changement significatif dans les autres états. En gros, l’entreprise produit beaucoup d’idées mais n’a plus la capacité de les réaliser…pourtant elle continue à investir sur la création d’idées via l’analyse des items …

Imaginez la production en chaine de véhicule qui manque tout à coup de puce électronique : on stockerait des véhicules non fonctionnels sur des parkings… qu’il faudrait louer …et louer des parkings toujours plus grands a un certain coût.

Imaginez : on achèterait à nos fournisseurs plus de volants que nous vendrions de voitures, mais les volants auraient été montés sur des voitures non terminées pour les laisser sur des parkings … que l’entreprise paie…

Particulièrement dans ce cas, il n’est pas facile de traiter le problème, cela dépendra aussi de la « business agility » de l’entreprise qui est un autre sujet. Mais cela permet de visualiser la problématique de la création de stock.

Nous pouvons voir apparaitre la taille du parking (et imaginer le coût) en faisant apparaitre les pentes qui bordent cet état « backlog »

Ce stock coute cher, mais pas seulement. Il peut aussi entrainer des tensions : des personnes ayant fourni du travail en amont et qui n’en voient pas de résultat … Personne n’apprécie cette situation pas très motivante et manquant de sens.

→ Le CFD nous permet de voir que l’on doit s’attaquer à la fluidification de cette accumulation, en permettant de traiter les éléments du backlog plus rapidement et/ou en ralentissant les entrées dans cet état (revoir la force de frappe de l’analyse)

Une absence, une perte de compétences dans l’équipe traitant le backlog pourrait avoir cet effet.

ATTENTION : la cause de ces accumulations n’est pas toujours subie : Un changement dans les règles régissant le changement d’état, par exemple en accroissant la charge de travail, pourrait aussi avoir cet effet et être complètement voulu.

Un exemple classique est le changement de la « definition of done » (DOD) dans une Scrum Team. Si on inscrit dans la DOD une augmentation du nombre de tests automatiques livrés avec le développement de nouvelles stories, cela aura pour conséquence d’allonger le temps de réalisation des stories et donc de ralentir le flux de production. L’entreprise voulant diminuer le nombre de retour des utilisateurs, ce choix est parfaitement légitime.

La solution pour l’efficience de l’entreprise sera soit de renforcer la Scrum Team soit de diminuer la production d’analyse en entrée de l’équipe. (Et non d’enlever les tests !) D’un point de vue systémique, les personnes travaillant sur ces sujets d’analyse pourront alors être plus efficaces pour l’entreprise en travaillant sur des sujets qui peuvent aller jusqu’au bout.

Le rétrécissement

Le rétrécissement d’une zone peut aussi traduire un problème dans votre flux de production. Imaginez votre workflow dont les étapes sont réalisées par différents départements de votre entreprise. Un département a beaucoup travaillé pour améliorer sa production, et traite beaucoup plus vite ses items. Comme le reste de l’entreprise n’a pas suivi les mêmes améliorations, votre « lead time » ne s’améliore pas (flèche violette du premier schéma) Le travail fourni par le département pour améliorer sa production n’a pas d’impact du point de vue de la production de valeur de l’entreprise, donc cet investissement n’est pas rentable !

Vous l’aurez compris chaque changement important dans les pentes des différentes courbes de votre CFD peut vous indiquer un endroit où chercher une amélioration. Mais cette amélioration dépendra de votre contexte et de la stratégie voulue de l’entreprise. A vous de débusquer ces changements de pentes perdurant et d’inspecter pour trouver les causes et proposer des actions, justifiées par les données montrées par votre CFD. Ces actions doivent être mises en place d’un point de vue systémique, c’est à dire en considérant tout le système de production de valeur de l’entreprise.

Pas de CFD sans qualité de donnée !

Si vous n’avez pas une bonne qualité de donnée, alors ce sera certainement une perte de temps de travailler sur ces analyses ! Donc avant de lire vos CFD, assurez-vous qu’ils sont produits par des données représentant la réalité. Si vos équipes changent l’état des stories une seule fois juste avant de livrer, les passant de « to do » à « done » en 3 secondes, les CFD générés n’auront pas de sens.

Pour améliorer vos données cela passe donc par les contributeurs, ils doivent comprendre tout l’intérêt du process et comment cela peut améliorer leur quotidien en pointant du doigt les problématiques systémiques de votre flux de production : le manque de personne dans une équipe, de compétence ….

→ Si votre processus est en place, et que vos données sont fiables, utilisez les CFD vous permettra de trouver le maillon faible dans votre processus, et d’investir votre temps et les budgets de l’entreprise là où ils seront le plus rentable !

--

--

Isabelle Roques
Publicis Sapient France

Coach at scale senior et formatrice, j'accompagne des entreprises dans leur transformation digitale pour adapter de nouveau principes de fonctionnement Agile.