L’un des rôles du product owner est d’alimenter le product backlog avec les fonctionnalités que l’équipe technique va devoir développer. L’autre, sans aucun doute plus complexe, est de définir la priorité des tâches à réaliser. Comment choisir quelle fonctionnalité doit être développée avant les autres ? La résolution de ce problème peut rapidement devenir un casse-tête pour le product owner et être très chronophage. Le WSJF, ou « Weighted Shortest Job First », est un outil très efficace qui simplifiera le travail du product owner lorsqu’il devra prioriser le contenu de son product backlog.
Comment définir le WSJF ?
Le Weight Shortest Job First est un modèle agile destiné à déterminer la priorisation des user stories (ou features ou epics) présentes dans le product backlog. Comme son nom l’indique, WSJF consiste à accorder une priorité de réalisation plus haute aux fonctionnalités les plus importantes et les plus courtes.
WSJF fait partie du framework lean-agile SAFe. SAFe est un framework agile complet destiné à être déployé sur l’ensemble d’une entreprise. Il n’est pas fait pour travailler avec moins de 50 personnes et n’est donc absolument pas adapté à de plus petites équipes. Néanmoins, WSJF est un outil pouvant être utilisé seul, par le product owner, quelle que soit la taille du projet et de l’équipe.
L’hypothèse de base est que toute fonctionnalité qui n’est pas livrée dans les temps a un coût, le « Cost of Delay » (littéralement, le « coût de retard »). Une mauvaise priorisation du product backlog risque donc d’entraîner la multiplication de ces coûts. Même s’ils ne sont pas importants pour chaque fonctionnalité, le cumul peut s’avérer désastreux.
L’objectif du WSJF est donc de réduire au minimum ces coûts et d’apporter un maximum de valeur ajoutée à l’issue d’un sprint. Le WSJF sera particulièrement utile pour aider le product owner à trancher lorsqu’il est difficile de décider entre deux fonctionnalités similaires (en termes d’apport de valeur et de temps de développement), laquelle doit être développée en priorité. Si deux fonctionnalités ont la même valeur, mais que l’une des deux va prendre moins de temps à développer, la solution est simple, c’est cette dernière qui sera prioritaire. En revanche, s’il existe une fonctionnalité dont le délai de développement est encore plus court, mais qui n’a pas été jugée prioritaire jusque-là, un arbitrage va être nécessaire. C’est dans ce cas que le WSJF va apporter la plus grande aide.
Utilisation du WSJF
Le WSJF va être calculé pour chaque fonctionnalité présente dans le product backlog. Ce calcul va permettre de lui attribuer une valeur afin de déterminer les priorités. Plus le WSJF d’une fonctionnalité sera élevé, plus elle sera prioritaire dans l’ordre des réalisations.
A l’issue du calcul du WSJF, les fonctionnalités à réaliser se retrouveront dans un ordre bien particulier :
- Les fonctionnalités peu complexes mais ayant une forte valeur ajoutée.
- Les fonctionnalités complexes ayant une forte valeur ajoutée.
- Les fonctionnalités peu complexes avec une valeur ajoutée moindre.
- Les fonctionnalités complexes avec une valeur ajouté moindre.
Afin de calculer le WSJF d’une fonctionnalité, quatre critères sont pris en compte. Chacun est évalué sur une échelle croissante non linéaire, basée sur la suite de Fibonacci.
- Business value : la valeur métier de la fonctionnalité (très élevée pour toutes les fonctions clés de l’application).
- Criticité : la fonctionnalité doit-elle être livrée rapidement ou non ?
- Réduction des risques / facilité pour développer une autre fonctionnalité.
- Taille de la fonctionnalité à développer (job size) : effort à fournir par l’équipe de développement pour la réalisation.
Ce dernier critère, l’effort à fournir, est généralement évalué par l’équipe de développement.
A partir des valeurs de ces critères, il est possible de calculer le « Cost of Delay » d’une fonctionnalité.
Cost of Delay = Business value + Criticité + Réduction des risques / facilité pour développer une autre fonctionnalité
Enfin, le calcul du WSJF de la fonctionnalité se fait de la façon suivante :
WSJF = Cost of Delay / Taille de la fonctionnalité
Chaque fonctionnalité ayant son WSJF, il est possible de déterminer les priorités de développement. Plus le WSJF est élevé, et plus la fonctionnalité sera prioritaire.
On remarque immédiatement que le critère ayant le plus de poids dans le calcul du WSJF est la taille de la fonctionnalité, ou l’effort à fournir. Cela montre que des fonctionnalités de petite taille seront plus facile à estimer et à planifier. Une fonctionnalité importante en termes d’effort à fournir ne sera pas nécessairement prioritaire contrairement à ce que l’on aurait pu penser. Tout dépend de la valeur ajoutée qu’elle apporte et des conséquences sur le déroulement du projet si elle n’est pas développée à plus ou moins court terme. Il n’est d’ailleurs pas rare de voir des fonctionnalités demandant un effort important, mais apportant peu de valeur, finalement abandonnées par le client.
Il est important de garder en tête le fait que le WSJF n’est pas figé dans le temps. Une fois le calcul effectué, le résultat n’est pas gravé dans le marbre. Le product backlog va être régulièrement mis à jour par le product owner (backlog refinement) et par conséquent, l’ensemble des critères peuvent varier. Le WSJF est alors recalculé et la priorisation peut être modifiée.
Pour conclure sur le WSJF
Le WSJF est un outil efficace permettant au product owner de déterminer la priorisation de réalisation des fonctionnalités présentes dans le product backlog. Il n’est pas toujours nécessaire de recourir au WSJF. Parfois, la priorisation des tâches est évidente et n’est pas sujette à discussion. En revanche, lorsqu’il est complexe de déterminer quelle fonctionnalité devrait être réalisée avant les autres, l’évaluation des critères et le calcul du WSJF vont permettre d’obtenir un classement plus facilement. Les critères servant au calcul du WSJF sont généralement évalué lors d’une réunion à laquelle participent le product owner, le scrum master et l’équipe de développement.
Nutcache, solution complète de gestion de projet en ligne, fournit tous les outils nécessaires au calcul du WSJF et à la priorisation du product backlog. Une période de 14 jours d’évaluation gratuite de la solution complète Nutcache vous permettra de découvrir le produit. N’hésitez pas à nous contacter.