WSJF ? Qu’est ce que c’est ? Encore un acronyme de plus dans notre vocabulaire. J’ai découvert cette technique dans le Framework SAFe. WSJF veut tout simplement dire « Weighted Shortest Job First » ou en français « la plus importante ou la plus courte fonctionnalité d’abord ! ». Organiser ou prioriser le Product Backlog est souvent un casse tête pour le Product Owner. Sur des projets complexes avec beaucoup de fonctionnalités, il est parfois très chronophage de faire l’exercice de raffiner son Product Backlog de manière efficace. Cet outil pourra nous y aide. Je vois plutôt le WSJF comme un outil plutôt qu’un indicateur. Il permet de déterminer un chiffre représentant le bon compromis entre la valeur qu’apportera la fonctionnalité si on la livre et le temps que l’on prendra à la développer.

D’où vient le WSJF ?

SAFe part du principe que toute fonctionnalité non livrée à temps à un coût : The Cost of Delay. Dans la philosophie de Lean, l’objectif est donc de réduire ce coût au minimum pour augmenter notre efficacité et livrer le maximum de valeur à l’issue d’un Sprint. Prenons quelques exemples simples. Imaginons que nous avons deux fonctionnalité à développer. Elle ont la même valeur métier mais l’une d’entre elle est plus courte à développer. Le product Owner priorisera sans aucun doute la plus courte. Par contre, si l’une des fonctionnalité prends moins de temps à développer mais est aussi moins prioritaire, il est difficile de la prioriser dans le Product Backlog. Le Product Owner devra trouver le bon compromis. L’idée du WSJF est de lui fournir un outil factuel permettant de l’aider dans cette tâche!

Comment se calcul-t-il ?

Le calcul du WSJF prends en compte les critères suivants. On utilisera pour tous ces indicateurs une notation suivant une suite de Fibonacci par ordre croissant:
– User-Business Value : la valeur métier de la fonctionnalité.
– Time Criticality : détermine si la fonctionnalité doit être livré rapidement ou non.
– Risk Reduction or Opportunity Enablement: Détermine si cette fonctionalité réduit le risque ou facilite le développement d’autres fonctionalités par la suite
– Job Size : Taille de la fonctionnalité à développer. On parle aussi d’effort. Cette valeur peut être estimée par l’équipe de développement.

Calcul du « Cost of Delay »

Cost of Delay = User-Business Value + Time Criticality + Risk Reduction and/or Oppty Enablement
WSJF = Cost of Delay / Job Size

Plus le WSJF a une valeur importante, plus la fonctionnalité pourra être priorisée. On voit ici que dans cette formule, nous prenons en compte à la fois la valeur métier mais aussi la contrainte de temps et la réduction du risque. Le facteur ayant le plus de poids sur la formule est donc la taille ou l’effort.
Cela met en évidence plusieurs chose. D’une part plus les Features sont petites, plus elles sont faciles à estimer et à ordonnancer les unes par rapport aux autres. On parle en général de MMF (Minimum Marketable Feature). D’autre part, ce n’est pas parce qu’une fonctionnalité semble importante qu’elle doit être priorisée. Il faudra prendre en compte l’impact si celle-ci n’est pas développée à court terme. Dernier point, ce calcul n’est pas figé dans le temps. L’ensemble des facteurs pourra être revu au fil des sessions de Product Backlog Refinement.

En conclusion, le WSJF est un outil relativement puissant permettant une bonne priorisation du Product Backlog en entrée de chaque Sprint. Il fera aussi gagner beaucoup de temps à la Scrum Team dans les sessions de Product Backlog Refinement où l’équipe pourra se focaliser sur les fonctionnalités les plus cruciales.

Pour aller plus loin:

http://www.scaledagileframework.com/wsjf/