WSJF

De Wiki Agile
Aller à la navigation Aller à la recherche

Auteur : Black Swan Farming
Source : WSJF – Weighted Shortest Job First
Date : 08/07/2016


Traducteur : Fabrice Aimetti
Date : 01/04/2022


Traduction :

Qu'est-ce que le WSJF ?

Le Weighted Shortest Job First est un algorithme d'ordonnancement (ou si vous préférez, une méthode de priorisation) qui maximise la quantité de ce que vous choisissez de "pondérer" dans une période de temps donnée à travers une ressource limitée.

D'où vient le WSJF ?

Dans les années 1970, lorsque les ressources informatiques étaient à la fois extrêmement coûteuses et très limitées, le principe de la tâche la plus rapide d'abord (shortest job first) était utilisé pour ordonnancer les travaux par lots de manière à optimiser l'utilisation d'une ressource rare. Plus récemment, Don Reinertsen a proposé et popularisé la notion de Weighted Shortest Job First, comme moyen de maximiser le retour sur investissement pour les équipes logicielles.

Deux ingrédients seulement sont nécessaires pour le WSJF : la pondération de chaque tâche et la durée de chaque tâche. La pondération que Don recommande spécifiquement pour le développement de produits est le Coût du Retard (Cost of Delay).

Voici une vidéo de 3 minutes qui explique le Coût du Retard :

L'autre composante, la durée, est la "brièveté" de chaque tâche. Ce que nous devons savoir, c'est « Combien de temps cette tâche va-t-elle bloquer le pipeline ? ». Pour cela, nous avons besoin de prévoir la Durée pendant laquelle ce travail sera en cours de traitement. C'est important car, pendant qu'il est en cours de traitement, il bloque le démarrage d'autres tâches. Pendant ce temps, nous subissons le Coût du Retard. Ce que Don propose spécifiquement, c'est une forme particulière de la méthode du "Weighted Shortest Job First" : le Coût du Retard divisé par la Durée.

Il existe d'autres formes possibles de WSJF Weighted Shortest Job First - en fonction de ce que vous essayez d'optimiser. Vous pouvez choisir de pondérer par le risque technique, le risque de marché, l'influence des parties prenantes, la durée d'attente, ou tout autre facteur ou combinaison que vous souhaitez maximiser. Cependant, la plupart des organisations cherchent avant tout à maximiser leur rendement économique. Dans ce cas, c'est le Coût du Retard que vous devez pondérer.

CD3 : Coût du (Délai/)Retard Divisé par la Durée

Répéter plusieurs fois « Weighted Shortest Job First » (travail le plus rapide pondéré d'abord) ou, plus précisément, « Coût du Retard Divisé par la Durée » devient vite fatigant, aussi, pour faciliter la communication, nous pouvons abréger en CD3, tout au moins dans le cas où nous pondérons par le Coût du Retard. Cela a également l'avantage de communiquer la composante la plus importante de l'algorithme : le Coût du Retard.

Lors de l'utilisation du CD3, l'ordre de priorité des fonctionnalités ou des projets est déterminé en divisant le Coût estimé du Retard par la Durée estimée : plus le score obtenu est élevé, plus la priorité est élevée.

L'un des avantages de la version CD3 du WSJF est qu'elle nous permet d'utiliser une mesure commune pour comparer des opportunités ayant une valeur et une urgence différentes, ainsi que de prendre en compte la situation où la durée diffère. Le CD3 optimise le retour sur investissement en minimisant le Coût total des Retards subi pour un ensemble d'options potentielles. Dans la plupart des contextes de développement de produits, la capacité est relativement peu flexible et difficile à ajuster. Cela signifie que la compréhension de la durée de blocage du pipeline est souvent une information très précieuse.

Puisque le CD3 utilise la Durée au dénominateur, il a également l'avantage d'encourager la répartition du travail en lots plus petits. La décomposition du travail est l'une des améliorations les plus faciles et les plus efficaces que nous puissions apporter pour obtenir plus de valeur, un flux plus rapide et une meilleure qualité.

WSJF : Coût du Retard Divisé par la Durée

Prenons un exemple pour nous aider à comprendre comment et pourquoi le WSJF/CD3 améliore le retour sur investissement. Considérons les trois fonctionnalités suivantes, pour lesquelles nous allons examiner le résultat de deux approches d'ordonnancement différentes :


Utilisation du principe du Premier Entré, Premier Sorti (PIPO)

Nous pourrions choisir de travailler sur ces fonctionnalités et de les livrer une par une, dans l'ordre où elles arrivent. A, puis B, puis C. C'est ce qu'on appelle le PIPO (Premier Entré, Premier SOrti - FIFO : First In, First Out). Il s'agit d'une méthode d'ordonnancement courante dans le secteur de la fabrication. Après tout, la personne qui demande la fonctionnalité A attend depuis le plus longtemps, il est donc logique que nous la servions en premier. Ensuite, nous passerons à B, puis à C.

Pendant les 5 semaines où nous travaillons sur la fonction A, nous supportons le Coût du Retard des trois fonctionalités : 5 000 €/semaine + 4 000 €/semaine + 1 000 €/semaine. Le total s'élève à 10 000 €/semaine sur 5 semaines, ce qui nous donne un Coût du Retard subi de 50 000 €.