Vos enfants vous expliquent : WSJF ou la Priorisation par l’Effort!

Dans cet article je vous explique comment comprendre le concept Agile WSJF en observant vos enfants et votre comportement de parent (pendant le p’tit dej)

Aymeric Proux
Un Jeu d’Enfants
9 min readAug 16, 2018

--

Le Petit Déjeuner! Le moment parfait pour illustrer WSJF (Photo by Providence Doucet)

Vous avez fait appel à des consultants, des coach, un “Agile Guru”… mais les résultats se font attendre?
Vous avez lu tous les livres, guides et vu toutes les vidéos de “la méthode Spotify” à “Lego le modèle d’agilité” et malgré tout, vous n’avez toujours aucune idée de comment transformer votre organisation en entreprise Agile?

Découvrez comment vos enfants peuvent vous apprendre l’Agilité mieux que n’importe quelle Méthode, Formation, Bootcamp ou Consultant (à 1200€ la journée).

Dans cette série, je vous partage mon quotidien de père de famille ou comment mes enfants me permettent, tous les jours, de me rendre compte que l’agilité est innée et qu’on peut s’inspirer de sa vie de parent pour l’appliquer dans sa vie professionnelle.

Cliquez sur l’image pour découvrir la 1ère partie (Backlog & Priorisation par la Valeur)

⚠️ Avant d’aller plus loin, je vous incite à lire la“Leçon #1 ci-dessus” (qui utilise le même exemple) ⚠️

WSJF (Weighted Shortest Job First) & Priorisation par l’effort.

Vous avez préalablement (voir article ci-dessus) sélectionné un liste de taches dans votre backlog comme étant les taches à réaliser en priorité pour apporter de la valeur à vos utilisateurs (traduction SCRUM : sélectionner des Stories dans votre Backlog pour constituer votre Sprint)… cela étant, savez vous comment ordonner les taches de votre sprint pour optimiser vos livraisons?

Vous me direz : Nous avons déjà priorisé (par la valeur) les tâches (stories), donc le premier de la liste (celui qui a le plus de valeur) doit être fait en premier. CQFD!”

Un monde idéal

Dans un monde idéal OUI. On obtiendrait quelque chose comme ça :

  1. Sortir le chien (15')
  2. Habiller votre fille (5')
  3. Habiller votre fils (5')
  4. Préparer le sac du petit avec son repas du midi (2')
  5. Signer le carnet de correspondance de la grande pour autoriser une sortie le jour même (1')
  6. Sortir les poubelles (2')

Total 30' pour un “crédit” temps de 30' (il est 8h et vous devez partir à 8h30)

Mais nous ne vivons pas dans un monde idéal et des imprévus surviennent tout le temps.

Le monde réel

La réalité, ce matin, c’est que votre fille s’est levée du mauvais pied et ne veut pas s’habiller (+5'), le chien s’échappe pendant la balade (+7'), vous ne trouvez pas de stylo pour signer l’autorisation (+3'), et une dernière pour la route, le petit a renversé son biberon et vous devez le changer avant de partir (+5') = 20' de plus que prévu (c’est pas la joie).

Note : vous avez remarqué que la dernière tâche “changer le petit” n’était pas dans la liste (Backlog) et pourtant il faut la réaliser… C’est le fameux imprévu!

Du coup, si vous traitez les points par ordre de valeur vous n’arrivez à réaliser que 2 des 6 tâches (et encore la 2ème ne sera pas terminée):

  1. Sortir le chien (15' + 7' = 23')
  2. Habiller votre fille (5' + 5' = 10') – Total 33' le crédit est déjà dépassé
  3. Habiller votre fils (5') → Plus le temps
  4. Préparer le sac du petit avec son repas du midi (2') → Plus le temps
  5. Signer le carnet de correspondance de la grande pour autoriser une sortie le jour même (1') → Plus le temps
  6. Sortir les poubelles (2') → Plus le temps

En synthèse, la priorisation par la valeur c’est bien, mais ça ne prend pas en compte Le temps / La difficulté / Le “risque à ne pas faire” que représente chaque tâche.

Pour remédier à cela je vous “présente” la priorisation par l’effort ou WSJF* (Weighted Shortest Job First)

WSJF quésaco ?

Si on traduisait littéralement WSJF cela donnerait : “le travail le plus lourd et le plus court en premier”.

Le plus “court” c’est assez simple à comprendre, le plus “lourd” c’est un peu plus complexe.

Disons simplement que le “poids” d’une tâche ne se résume pas seulement à la valeur qu’elle apporte (même si on pourrait s’en contenter dans un premier temps). Dans le concept WSJF, le “poids” d’une tâche se traduit par une équation appelée CoD (Cost Of Delay) qui est une combinaison des éléments suivants :

  • La valeur
  • Le risque à ne pas faire (sorte de rapport risque/opportunité)
  • L’impact temporel (faut-il faire vite ou pas? Y’a-t-il une date limite pour mettre cette fonctionnalité à disposition du client? La valeur diminue-t-elle avec le temps?)

Petite illustration (ça sera plus simple à comprendre) :

Vous avez 3 tâches A, B et C dans votre liste. Dans quel ordre les réalisez-vous?

Cas n°1 :

  • Les 3 tâches nécessitent toutes 1 jour de travail.
  • Le CoD (Cost of Delay) de A=10, B=3 et C=1

Dans ce cas la priorisation est simple. On fait A puis B puis C (on se base simplement sur le CoD (ou valeur pour simplifier). La plus grande valeur en premier)

Cas n°2 :

  • A nécessite 3j de travail, B nécessite 1j et C nécessite 10j.
  • Les 3 tâches ont toutes un CoD de 10

Dans ce cas la priorisation est simple. On fait B puis A puis C (à valeur de CoD égale, on se base simplement sur la durée pour prioriser)

Cas n°3 (le plus complexe et le plus courant):

  • A nécessite 3j de travail, B nécessite 1j et C nécessite 10j.
  • Le CoD (Cost of Delay) de A=10, B=3 et C=1

Comment prioriser??? En utilisant WSJF = CoD / Durée

Dans notre cas :

  • WSJF de A = 10/3 = 3,33
  • WSJF de B = 3/1 = 3
  • WSJF de C = 1/10 = 0,1

On fera donc A puis B puis C

En image c’est encore plus parlant :

En vert le plus petit cumul de CoD. En Rouge une autre option (très gros cumul de CoD)

Que nous montrent ces 2 graphes?

  • Que l’ordonnancement (priorisation) des tâches a un impact sur le cumul du CoD. Sur le 1er graph on découvre une “bonne” priorisation des tâches avec un cumul de CoD mini (en vert). Sur le 2nd graphique, en revanche, le cumul de CoD est conséquent (en rouge).
  • Et là vous me direz :

OK mais au final, dans les 2 cas, les 3 tâches sont terminées à la fin du sprint. Donc à quoi bon se prendre la tête avec ta méthode WSJeSaisPlusQuoi??!!

C’est vrai si tout se passe comme prévu… mais souvenez-vous de Bob l’Eponge… Le monde parfait n’existe pas.
D’ailleurs, si on traduit littéralement CoD (Cost Of Delay) on obtient “ le cout du retard”.
Voyez donc ce qui arrive aux 2 graphes précédant en cas d’imprévu.

Si vous devez livrer en cours de sprint (disons à mi-sprint) voici ce que vous livrerez dans chaque cas

Imaginons que vous soyez contraint, par un événement imprévu, à arrêter votre sprint en cours de route (ou imaginons un élément imprévu s’ajouter à votre liste de tâches).

Dans le 1er cas, vous aurez terminé (et donc serez prêts à livrer) les tâches A et B… la C étant, elle, en cours de réalisation.

Dans le 2nd cas, vous serez encore en train de travailler sur la tâche C et n’aurez même pas encore démarré les tâches A et B

Le CoD commence à prendre tout son sens, n’est-ce pas?

📣 Petite Auto-Promo avant de poursuivre…

Vous souhaitez animer un atelier de “WSJF” (ou tout autre atelier participatif)? Utilisez Catena pour le préparer en quelques minutes… et maîtriser son animation à la minute près.

Catena | Préparez vos ateliers en quelques minutes et maîtrisez leur animation à la minute près.

Note : J’ai développé Catena pour me simplifier la vie et optimiser le temps passé à concevoir des 100ene d’ateliers… mais aussi par respect pour les participants (un atelier de 2h ou 3h DOIT donner des résultats sous peine d’avoir fait “perdre” 2h ou 3h à chaque participant).

WSJF en pratique

Reprenons la tâche “sortir le chien” qui est dans le haut de votre liste car le chien a besoin de sortir faire ses besoins tous les matins (c’est naturel et “obligatoire”). Cette tâche a une forte valeur a l’instant présent (chapitre 1)

Le problème c’est que la sortie du chien dure 15 minutes soit la moitié de votre “forfait” de 30' avant de déposer les enfants à l’école.
Si vous le faites en premier, il ne vous reste que 15' pour tout le reste. Et en cas d’imprévu, vous n’aurez pas de marge de manœuvre.

Mais au fait, quel est le CoD de cette tâche et donc quel est son score WSJF?

Globalement le “risque à ne pas faire” est plutôt faible (aller disons moyen) : Si vous ne sortez pas le chien ce matin, il risque de faire pipi dans la maison. C’est gênant mais finalement c’est moins important que le risque à ne pas habiller ses enfants pour aller à l’école (enfin je pense).
Du coup la valeur du CoD risque d’être assez basse et le temps en revanche (15') plutôt long. Cette tâche ressemble étrangement à la tâche C de nos graphes précédants (cas n°3) donc un score WSJF très faible… donc une tâche à prioriser en “bas” de backlog.

Revenons à la “vraie vie”. Finalement si on y réfléchi bien, si vous sortez le chien en dernier :

  • Dans le meilleur des cas il vous reste les 15 minutes… et tout est parfait.
  • si vous êtes un peu en retard ou qu’un imprévu surgit, il pourrait vous rester +/-5' mais le chien s’en contentera…
  • Dans le cas extrême, il ne vous reste qu’une minute, et là vous laissez le chien sortir pendant que vous mettez les enfants en voiture et il n’aura eu le temps que de faire un tout petit pipi…. mais il l’aura fait (diminuant ainsi les risques de pipi dans la maison).

Terminons l’exercice

Quel est le CoD (puis le WSJF) de chaque tâche (sur une échelle de 1 à 20)

  • Sortir le chien : CoD 5 / durée 15' = WSJF 0,33
  • Habiller votre fille : CoD 20 (impossible d’aller à l’école en pyjamas) / durée 5' = WSJF 4
  • Habiller votre fils : CoD 14 (il peut aller chez la nounou en pyjamas) / durée 5' = WSJF 2,8
  • Préparer le sac du petit avec son repas du midi : CoD 5 (au pire la nounou lui fera à manger) / durée 2' = WSJF 2,5
  • Signer le carnet de correspondance de la grande pour autoriser une sortie le jour même : CoD 2 / durée 1' = WSJF 2
  • Sortir les poubelles : CoD 2 / durée 2' = WSJF 1

Priorisation par WSJF :

  1. habiller votre fille
  2. habiller votre fils
  3. Préparer le sac du petit
  4. Signer le carnet
  5. sortir les poubelles
  6. sortir le chien

Vous avez remarqué que le CoD (donc le risque à ne pas faire) de la tâche “sortir le chien” est plus important (3eme sur 6 tâches) que les tâches “sortir la poubelle” et “signer le carnet de correspondance”…. mais comme sa durée d’exécution est beaucoup plus longue, le WSJF est plus petit… la tâche est donc moins prioritaire.

Et voilà! WSJF et la priorisation par l’effort (ou le risque) n’a plus aucun secret pour vous. Vous pourrez remercier vos enfants ce soir en rentrant à la maison 😉

Je vous donne rendez-vous dans un prochain article sur l’Agilité, ses méthodes, outils et surtout son état d’esprit ✌️

Le saviez-vous?

Si cet article vous a plu, vous pouvez laisser jusqu’à 50 “claps” en cliquant pendant quelques secondes sur le bouton Applaudir 😉

Dans la même série

Leçon 1 : Vos Enfants vous apprennent simplement Backlog et Priorisation par la Valeur!

Leçon 3 : Vos enfants vous apprennent simplement : User Story & EPIC

Qui suis-je?

Je suis “Agent du Changement” (“Change Agent” 🇬🇧).

J’accompagne les entreprises et les personnes dans leur voyage vers l’état d’esprit apprenant (Growth Mindset) ou ”Lean-Agile” et la mise en oeuvre des organisations ad-hoc.

Plus qu’un coach ou un consultant j’ai à coeur de faire comprendre que les méthodes ne servent à rien si elles ne sont pas accompagnées du “bon” état d’esprit…

Cliquez sur l’encart pour comprendre mon activité et mes convictions

--

--

Aymeric Proux
Un Jeu d’Enfants

Entrepreneur dans l’âme, 🎓l’APPRENTISSAGE CONTINU est mon credo… ❤️ J’adore mon job : Transmettre ma passion au quotidien (Lean, Agile, Changement, Apprendre)