WSJF (SAFe)
Auteur : © 2010-2022 Scaled Agile, Inc.
Source : Weighted Shortest Job First
Date : 10/02/2021 (dernière mise à jour)
Traducteur : Fabrice Aimetti
Date : 31/03/2022
Traduction :
Sommaire
Les tâches les plus rapides et pondérées d'abord (WSJF)
Les tâches rapides et pondérés d'abord (Weighted Shortest Job First - WSJF) est un modèle de priorisation utilisé pour ordonner les travaux (ex. : Features, Capabilities et Epics) afin de produire un bénéfice économique maximal. Dans SAFe, le WSJF est calculé en divisant le coût du retard (Cost of Delay - CoD) par la taille de la tâche.
Dans un système basé sur le flux, la mise à jour continue des priorités fournit les meilleurs résultats économiques. Dans un tel contexte de flux, c'est le séquencement des tâches, plutôt que le retour sur investissement théorique et individuel des tâches, qui produit le meilleur résultat.
À cette fin, SAFe[1] applique le WSJF pour prioriser les backlogs en calculant le Coût relatif des retards (CoD) et la taille des tâches (un substitut de la durée). Les priorités du backlog sont continuellement mises à jour en fonction de la valeur relative pour l'utilisateur et l'entreprise, des facteurs temporels, de la réduction des risques (RR) et de la facilitation des opportunités (FO), et de la taille relative des tâches. WSJF ignore également de manière pratique et systématique les coûts irrécupérables, un principe fondamental de la démarche économique Lean.
En détail
Reinertsen décrit un modèle complet, appelé WSJF, permettant de prioriser les tâches en fonction de l'économie d'un flux Lean de développement de produits [2]. Le WSJF est calculé en divisant le Coût du retard (CoD) par la durée. Le CoD est l'argent qui sera perdu en retardant ou en ne faisant pas un travail durant une certaine période de temps. Par exemple, si une fonctionnalité potentielle vaut 100 000 euros par mois et qu'il y a un retard de trois mois, le CoD total sera de 300 000 euros.
Les tâches qui peuvent fournir la plus grande valeur (ou CoD) dans la plus courte durée fournissent le meilleur rendement économique. Tel qu'il est appliqué dans SAFe, le modèle prend en compte certains principes supplémentaires du flux de développement de produits, notamment :
- Adopter une vision économique
- Ignorer les coûts irrécupérables
- Faire des choix financiers en permanence
- Utiliser des règles de décision pour décentraliser la prise de décision et le contrôle
- Si vous ne pouvez quantifier qu'une seule chose, quantifiez le Coût du retard
La Figure 1 montre l'impact de l'application correcte du WSJF de Reinertsen. Les zones en bleu illustrent le CoD total dans chaque cas. Le fait d'effectuer la tâche la plus rapide pondérée d'abord donne les meilleurs résultats économiques, avec un très grand écart.
(Note : Comme le montre la Figure 1, Reinertsen utilise les valeurs financières réelles pour le Coût du retard et la durée estimée de la tâche, alors que SAFe applique une estimation relative à l'aide d'une séquence de Fibonacci modifiée, décrite plus loin dans cet article).
Figure 1. L'application de l'algorithme WSJF permet d'obtenir la meilleure rentabilité globale
Estimation du coût du retard
Dans SAFe, les « tâches » sont les Features, les Capabilities et les Epics qui se trouvent dans leurs backlogs respectifs. Cependant, comme il peut être difficile de déterminer le coût total du retard pour des choses qui n'ont jamais été implémentées, SAFe utilise un substitut pour le CoD, qui estime la taille de la tâche par rapport aux autres tâches dans le backlog. Trois composantes principales constituent le CoD :
- La valeur pour l'utilisateur ou l'entreprise : quelle est la valeur relative pour le client ou l'entreprise ? Nos utilisateurs préfèrent-ils ceci plutôt que cela ? Quel est l'impact sur les revenus de notre entreprise ? Y a-t-il une pénalité éventuelle ou d'autres effets négatifs en cas de retard ?
- La criticité temporelle : comment la valeur pour l'utilisateur ou l'entreprise se dégrade-t-elle avec le temps ? Y a-t-il une date limite fixe ? Vont-ils nous attendre ou passer à une autre solution ? Y a-t-il des jalons sur le chemin critique qui sont impactés par cette situation ? Quel est l'effet actuel sur la satisfaction du client ?
- La valeur ajoutée de la réduction des risques (RR) et de la facilitation des opportunités (FO) : qu'est-ce que cela apporte de plus à notre entreprise ? Réduit-elle le risque de cette livraison ou d'une livraison future ? L'information que nous obtiendrons a-t-elle de la valeur ? Cette fonctionnalité permettra-t-elle de créer de nouvelles opportunités commerciales ?
Les équipes comparent les éléments du backlog les uns par rapport aux autres en utilisant les mêmes nombres de Fibonacci modifiés que ceux utilisés pour le « poker d'estimation ». Ensuite, le CoD (relatif) est calculé comme suit :
Figure 2. Calcul du coût relatif du retard
Estimation de la durée de la tâche
L'élément supplémentaire de cette équation, le dénominateur dans WSJF, est la durée de la tâche. Elle peut également être assez difficile à déterminer, surtout au début, lorsqu'il est difficile de savoir qui fera le travail ou quelle allocation de capacité peut être faite. Heureusement, la taille de la tâche est un bon substitut de la durée. (Si je suis le seul à tondre ma pelouse, et que le jardin de devant est trois fois plus grand que celui de derrière, le jardin de devant va prendre trois fois plus de temps). En utilisant la taille de la tâche, nous disposons d'un calcul direct pour comparer les tâches via le WSJF, comme l'illustre la Figure 3 :
Figure 3. Une formule pour le WSJF relatif
Ensuite, un tableau simple peut être utilisé pour comparer les tâches (trois fonctionnalités/features, dans ce cas), comme le montre la Figure 4 :
Figure 4. Un tableau pour le calcul du WSJF
Comme pour l'estimation des stories, la séquence de Fibonacci modifiée est utilisée car elle reflète mieux la plage d'incertitude des estimations à mesure que la taille augmente. Pour utiliser le tableau de la Figure 4, l'équipe estime chaque fonctionnalité par rapport aux autres pour chacune des trois composantes du CoD et pour la taille de la tâche. Commencez par examiner une colonne à la fois, en fixant le plus petit élément à un « un », puis définissez les autres par rapport à cette colonne. Ensuite, calculez et divisez le CoD par la taille de la tâche. La tâche ayant le WSJF le plus élevé est la prochaine tâche la plus importante à effectuer.
Ce modèle encourage la division des grosses tâches en de multiples petites tâches qui entrent en concurrence avec d'autres petites tâches. Sinon, les grosses tâches critiques risquent de ne jamais être réalisées. Mais ce n'est que l'Agile en action. Comme la mise en œuvre est incrémentale, une tâche différente sera sélectionnée chaque fois qu'une tâche courante ne se positionne pas bien par rapport aux autres.
Un autre avantage du modèle WSJF de SAFe est que la valeur absolue (l'argent) des composants du CoD n'est pas nécessaire. Au lieu de cela, les équipes évaluent les composants de chaque élément par rapport aux autres éléments du même backlog. Enfin, comme les estimations mises à jour du backlog ne comprennent que la taille des tâches restantes, la repriorisation fréquente signifie que le système ignorera automatiquement les coûts irrécupérables.
Utiliser la taille de la tâche comme substitut de la durée
Bien que nous utilisions la taille de la tâche comme substitut de la durée, la taille de la tâche ne constitue pas toujours un bon substitut. Considérons deux scénarios :
- Si la disponibilité de compétences spécialisées signifie que la tâche la plus importante et de plus grande valeur peut être exécutée plus rapidement qu'elle ne le serait autrement, elle peut être choisie parce qu'elle fournit plus de valeur dans une période plus courte. (Si trois personnes sont disponibles pour tondre ma grande pelouse de devant pendant que je m'occupe de la petite pelouse à l'arrière, ces travaux auront approximativement la même durée mais pas la même valeur).
- Une petite tâche peut présenter une pénurie de ressources ou des dépendances avec d'autres tâches qui pourraient prendre plus de temps qu'une tâche plus grosse.
Utiliser le coût des tâches comme substitut de la durée de l'Epic
Lorsque les coûts estimés des tâches sont connus, ils peuvent constituer un meilleur substitut que la taille estimée des tâches pour le dénominateur du WSJF. Ces coûts sont souvent connus dans les dernières étapes du portefeuille Kanban, après la création de l'analyse de rentabilité Lean. Au fur et à mesure que ces grandes tâches sont sélectionnées pour être mises en œuvre, il convient d'affiner le WSJF en utilisant les coûts estimés comme substitut ou, mieux encore, en estimant la durée.
Lorsque les coûts estimés des tâches sont utilisés pour le dénominateur du WSJF, la normalisation du coût de ces epics simplifie les calculs. Pour ce faire, attribuez au coût le plus faible de l'epic un « 1.0 », puis divisez le coût des epics suivantes par la valeur la plus faible (par exemple, 1.5/ 0.5 = 3.0), comme le montre la Figure 5 ci-dessous :
Figure 5. Application du coût normalisé pour le dénominateur du WSJF
(Remarque : si vous avez de bonnes estimations financières pour le CoD, utilisez-les comme numérateur pour toutes les epics à prioriser. De même, si vous avez de bonnes estimations pour la durée, utilisez-les au lieu d'une variable de substitution).