Dans
le monde des Méthodes Agiles, Kanban occupe une place assez importante. Conçue au départ pour l'optimisation des
chaînes de production, la méthode est, par sa capacité à améliorer la
prise en compte des événements "au fil de l'eau", plutôt adaptée au
monde de la maintenance. A ce titre, elle apporte une alternative
intéressante à Scrum, à laquelle elle peut même, grâce à son caractère
très adaptatif, être associée.
Présentation
En japonais, un kanban est une étiquette,
ou une fiche. En développement logiciel, Kanban est une pratique basée
sur l'utilisation de kanbans (comme pour le terme scrum, l'usage est
d'écrire avec une minuscule (kanban, scrum) l'objet ou la cérémonie, et
avec une majuscule (Kanban, Scrum), la méthode) pour matérialiser des informations sur le processus.
Le scrum board, qui matérialise dans Scrum l'état et l'avancement des tâches du sprint en cours, est déjà une utilisation des kanbans.
Dans Kanban, le tableau des tâches est l'élément central de la méthode :
- il matérialise, comme dans Scrum, le workflow et les différents états que peut prendre une tâche ou un élément de la chaîne d'activités ;
- il apporte une contrainte supplémentaire, le nombre maximum d'éléments que peut contenir, à un moment donné, une colonne du tableau. Cette limite n'est pas obligatoire pour toutes les colonnes du tableau ; elle permet d’agir sur les colonnes ou les états qui sont potentiellement des goulots d'étranglement.
Par rapport aux autres méthodes
Kanban est une méthode plus adaptative (peu de prescriptions) que normative.
C'est en quelque sorte le contraire d'une
boîte à outils : là où une boîte à outils propose beaucoup de choses et
l'utilisateur ne prend que ce dont il a besoin, Kanban ne propose que
très peu de choses, mais qui constituent un socle qui permet à
l'utilisateur de l’adapter ou d’ajouter des éléments spécifiques à son
problème ou à sa méthode (syndrome dit de la "clé à molette" : une clé à
molette pour remplacer tout un jeu de clés).
Diminuer le temps de cycle
La représentation et la progression des
éléments en temps réel sur le tableau Kanban permet, s'il y a un goulot
d'étranglement, de voir rapidement de voir où il est (dans la colonne où
les cartons (ou les post-its) s'accumulent).
Pour diminuer le temps de cycle d'un
élément, il faut en quelque sorte « fluidifier le trafic » et pour cela
le ralentir en amont. Un paradoxe apparent également adopté par les
régulateurs de trafic : rouler à 90 km/h
pour éviter d’être à l’arrêt plus loin et au final diminuer le temps de
parcours. En instaurant une limite sur le nombre de tickets admissibles
dans la colonne où se situe le goulet, on va les forcer à rester sur la
colonne en amont, permettant ainsi de répartir la charge d'étranglement
sur deux colonnes (deux activités) au lieu d'une.
C'est la philosophie de Kanban : s'il y a
trop d'activité sur un poste, il est plus efficace de répartir la charge
que d’affecter de nouvelles ressources.
La bonne limitation n'est pas facile à
trouver du premier coup, évidemment ; elle est souvent le fruit de
plusieurs améliorations. L'intérêt de Kanban est de permettre,
ajustement après ajustement, de trouver la meilleure répartition de
charge entre tous les postes du processus (toutes les colonnes du
tableau) et d'employer les ressources au mieux de leurs capacités.
Les différences avec Scrum
Les rôles
Alors que Scrum préconise des acteurs et des rôles bien particuliers (Product Owner, Scrum Master, équipier), Kanban ne prescrit aucun rôle.
Cela ne veut pas dire qu'il ne faut pas
définir des rôles ou s'interdire par exemple de prendre un Product
Owner. Cela veut simplement dire que l'on n'est pas obligé d'avoir des rôles bien définis. Avec Kanban, on peut ajouter tous les rôles dont il a besoin.
Attention cependant à ne pas créer des
rôles (ou plus généralement des artefacts) pour rien : un nouveau rôle
doit apporter de la valeur et de l'efficacité au projet ; s'il n'est pas
réellement utile, il pourrait même constituer une source de gaspillage.
La durée des itérations
Scrum impose des itérations (sprints) de
durée fixe - encore que celle-ci puisse varier en cours de projet si par
exemple elle s'avère inadaptée - imposant ainsi un rythme régulier au
projet. Des points obligatoires sont prévus à chaque début et fin de
sprint, donc à intervalles fixes tout au long du projet. Tous les
éléments prévus pour être traités pendant le sprint (le carnet de
sprint) doivent être traités pendant la timebox définie par le sprint. Le tableau Scrum est "vidangé" à chaque fin de sprint et réinitialisé à chaque début de sprint.
Kanban n'impose pas d'itérations, et donc
encore moins de durée fixe. Des éléments de projet peuvent s'insérer
dans le tableau Kanban à tout moment, sans avoir à attendre une
réinitialisation du tableau.
Avec Kanban, on n'est pas obligé d'attendre
le début ou la fin d'une itération pour faire une planification, une
rétrospective ou livrer une version. Ces activités peuvent être faites
sur la base d'une activité régulière ("livraison tous les lundis") ou à
la demande ("chaque fois qu'une version utile est prête").
Scrum mesure la vélocité, Kanban le temps de cycle
Scrum établit des prévisions sur la base de
la vélocité (la quantité totale d'effort que l'équipe peut accomplir
pendant un sprint). S'il a par exemple été mesuré une vélocité moyenne
de 100 sur les trois derniers sprints, il est logique de s'engager sur
la même vélocité pour le prochain sprint ; pour établir le carnet de
sprint, il suffit d'additionner les efforts estimés des items ou User
Stories en tête de backlog jusqu'à atteindre le total de 100.
L'un des challenges d'un projet Scrum est
de trouver la "bonne" vélocité, celle qui permet la production régulière
et fréquente de versions apportant une vraie valeur à l'utilisateur,
tout en respectant un rythme de travail soutenable.
Kanban s'attache davantage à mesurer (et à
faire diminuer) le temps de cycle, c'est-à-dire le temps que met un
élément pour parcourir le tableau, depuis la colonne de gauche jusqu'à
celle de droite.
Kanban est plus réactif
Avec Scrum,
la rétrospective, cérémonie permettant d'initialiser l'amélioration du
processus, a lieu à chaque fin d'itération ; la durée moyenne d'attente
d'une amélioration du processus est donc égale à la moitié de la durée
d'un sprint.
Avec Kanban, on peut réfléchir à améliorer
le processus chaque fois qu'un kanban (un post-it) termine son cycle et
arrive dans la dernière colonne du tableau. En l'absence de goulots
d'étranglement (c'est l'objectif à atteindre), toutes les tâches de même
type doivent théoriquement demander le même temps de cycle ; pour ce
type de tâche, la durée moyenne d'attente d'une amélioration est de la
moitié de son temps de cycle.
Pour plus d'informations
Pour plus d'informations sur Kanban et son utilisation avec Scrum, on pourra lire "Kanban et Scrum - tirer le meilleur des deux" par Henrik Kinberg et Mattias Skarin. L'ouvrage est traduit en français, entre autres, par Claude Aubry.
Agilement vôtre.
(Tiré d'un article écrit par Vincent MARTIN : http://www.computure.net/fr/methodes/146-un-peu-de-kanban)
(Tiré d'un article écrit par Vincent MARTIN : http://www.computure.net/fr/methodes/146-un-peu-de-kanban)
Aucun commentaire:
Enregistrer un commentaire