WIP (Work In Progress)
État d'espritLa quantité de travail en cours doit être le plus faible possible
Description
Le travail en cours (WIP) est un concept couramment utilisé en agilité. Il consiste à limiter le nombre de travaux en cours afin d'assurer la quantité de travail livrée au client.
Le WIP est illustré, par exemple, par Kervin Kueny dans "The First Name Game" [Kueny 2021] où le développeur, une personne qui note les prénoms de ses clients, essaie d'abord de répondre à ses clients qui lui envoient leurs demandes en même temps ; puis, dans un deuxième temps, le même développeur se concentre sur chacun de ses clients à tour de rôle. Ce type d'expérience montre empiriquement que le temps de réponse et le niveau de qualité sont sensiblement améliorés.
Dans une équipe agile, l'absence de suivi des WIP se traduit souvent par une accumulation de tâches en cours sur une colonne Kanban. Ce phénomène se produit lorsque l'équipe de développement fournit simultanément ses User Stories à un testeur chargé de vérifier la qualité de la livraison. Réduire le WIP évite ainsi d'accumuler la quantité de travail à tester et de bloquer la capacité de livraison de l'équipe.
En fait, cette approche est si puissante que le SAFe Scalable Agility Framework l'inclut dans ses principes [SAFe 2021-6] en se basant sur le concept de " Flow " qui a été popularisé par Donald G. Reinertsen [Reinertsen 2009] afin de rendre la réalisation des produits plus fluide. On peut visualiser la notion de flow en faisant l'analogie avec le trafic routier [Pearl 2018].
L'une des techniques utilisées pour limiter le WIP consiste à attribuer une limite maximale de tickets à certaines colonnes. Ainsi, lorsqu'une colonne arrive à saturation, les membres de l'équipe se mobilisent pour résoudre ce goulot d'étranglement afin de pousser les tickets vers leur résolution, ce que nous enseigne la théorie des contraintes.
En bref, arrêtez de commencer les choses mais commencez plutôt à les terminer [Singh Gill 2019].
Application à la maturité des tests
Dans cet état d'esprit de réduction de la quantité de travail en cours, il existe différents sujets qui peuvent potentiellement avoir un impact sur la qualité du produit, notamment l'automatisation des tests. A cet égard, selon l'organisation de l'entreprise, l'automatisation des tests peut être confiée à une équipe spécialisée qui est responsable des tests de régression. Cette délégation de l'automatisation des tests introduit mécaniquement une période d'attente, souvent concrétisée par un backlog, qui augmente de fait la quantité de travaux en cours en plus d'avoir une organisation éloignée des préoccupations du client.
Dans d'autres contextes, l'automatisation est réalisée au sein de chaque équipe de développement. Cette structure aboutit à la création d'équipes de fonctionnalités axées sur le client, dont les membres sont capables d'automatiser les scénarios de test. Cette organisation est soutenue par des personnes de T-Shape. Cette deuxième configuration permet ainsi de réduire la quantité de travaux en cours.
Cependant, afin de faciliter le WIP, les membres de l'équipe doivent maîtriser plusieurs choses, notamment :
- les techniques d'essai
- l'activité de l'application
- la technologie de l'automatisation
Bien que le concept de T-Shape soit un bon OKR, le processus est long et complexe et des compromis doivent être faits pour faciliter la réduction du WIP, notamment :
- l'ajout de testeurs professionnels dans les équipes
- une bonne proximité avec l'entreprise grâce aux sessions Gemba et aux X-Teams
- une technologie d'automatisation simple, par exemple avec des outils à faible code [Low Code 2021].
Ces éléments favorisent l'alignement, voire la fusion, des écocycles décrits dans le principe de panarchie [Moustier 2020].
La position d'Agilitest sur cette pratique
Plutôt que de proposer un outil low-code, Agilitest propose un outil #nocode [Forsyth 2021].
Cette approche facilite la courbe d'apprentissage car vous n'avez pas besoin d'apprendre à programmer. Cette plateforme d'automatisation des scripts de test donne accès à différentes technologies telles que les tests web, mobiles ou applicatifs sur Windows ou iOS.
Pour découvrir l'ensemble des pratiques, cliquez ici.
Cartes connexes
Pour aller plus loin
- [Forsyth 2021] : Alexander Forsyth - JAN 2021 - " Low-Code et No-Code: Quelle est la différence et quand utiliser quoi ? " - https://www.outsystems.com/blog/posts/low-code-vs-no-code/
- [Kueny 2021] : Kervin Kueny - MAI 2021 - " le jeu du prénom " -https://www.youtube.com/watch?v=iR2YhAxRxPM
- [Low Code 2021] : Wikipedia - MAI 2021 - " Plate-forme de développement à faible code " - https://en.wikipedia.org/wiki/Low-code_development_platform
- [Moustier 2020] : Christophe Moustier - OCT 2020 - " Conduite de tests agiles pour SAFe et LeSS " - ISBN : 978-2-409-02727-7
- [Pearl 2018] : Mark Pearl - JUL 2018 - "Codez avec la sagesse de la foule : Améliorez-vous ensemble avec la programmation de la foule" - isbn:9781680506150.
- [Reinertsen 2009] : Donald G. Reinertsen - 2009 - " Les principes du flux de développement de produits : le développement de produits allégé de deuxième génération " - ISBN 978-1-935401-00-1
- [SAFe 2021-6] : SAFe - FEV 2021 - " s Principe n°6 - Visualiser et limiter les encours, réduire la taille des lots et gérer les files d'attente " - https://www.scaledagileframework.com/visualize-and-limit-wip-reduce-batch-sizes-and-manage-queue-lengths/
- [Singh Gill 2019] : Navdeep Singh Gill - MAI 2019 - " Stop Starting, Start Finishing " - https://www.xenonstack.com/blog/agile-thinking/ (en anglais seulement)