Kanban est une méthode de gestion du travail créée afin d'aider à visualiser les tâches à accomplir, afin d'optimiser son efficacité et de devenir plus agile. Le but fondamental est de créer plus de valeur pour le client sans pour autant générer davantage de coûts.
Dans le cadre du développement logiciel, kanban peut être un système visuel de gestion des processus qui indique quoi produire, quand le produire et en quelle quantité ; cette approche est directement inspirée du système de production de Toyota et des méthodes lean.
Source : Wikipedia
Cette technique a vu le jour dans les usines Toyota à la fin des années 40. À cette époque, tous les fabricants automobiles produisaient le plus grand nombre de véhicules possible et tentaient ensuite de les écouler 🚗. Autrement dit, leur production était guidée par leur capacité à produire.
L'approche Kanban, fonctionne à l'opposée. La production est guidée en fonction de la demande. Ainsi, si un modèle de voiture s'est écoulé à 1000 exemplaires l'année précédente et qu'on estime qu'environ 1000 exemplaires seront vendus cette année, le nombre ciblé à produire sera de 1000. Ce nombre peut être réajusté à différents moments de l'année. Par exemple, à tous les quarts (3 mois) afin de s'assurer qu'il est toujours adéquat (on target), l'augmenter ou le diminuer selon les besoins.
Cette approche évite de gaspiller des ressources (temps de main-d'œuvre et matériel) sur des véhicules qui ne se vendront pas. Ainsi, ces ressources peuvent être utilisées ailleurs. Par exemple, sur un autre modèle de voiture ou un tout autre produit.
Un projet utilisant la méthodologie Kanban repose sur la présence d'un tableau affichant toutes les tâches à accomplir. Ces tâches sont positionnées dans différentes colonnes du tableau afin de refléter leur statut actuel.
Au départ ces tableaux existaient dans un format physique et chaque tâche était représentée par un papillon adhésif (post-it) que l'on déplaçait de colonne en colonne. De nos jours, ces tableaux prennent souvent une forme numérique.
3 colonnes de base
Les 3 colonnes de base sont:
- À faire (To do)
Les tâches à accomplir. - En cours (In progress)
LA tâche que vous êtes actuellement entrain de faire. - Terminé (Done)
Ce qui, selon la définition de l'équipe, est considéré comme terminé/prêt.
Il est possible que vous ayez commencé à peinturer un mur et qu’entre deux couches vous soyez allé tondre le gazon, mais dans ce cas, votre tâche "En cours" est "Tondre le gazon". La tâche "Peinturer le mur" devrait retourner dans la colonne "À faire" avec un commentaire indiquant que la première couche a été donnée.
Colonnes supplémentaires
Il est possible d'ajouter autant de colonnes que nécessaire afin de refléter l'état de chaque tâche. Par exemple, voici quelques colonnes répandues dans l'industrie:
- Prêt à être validé (In QA).
Cette colonne s'insère entre "En cours" et "Terminé". Ainsi, dès qu'un membre de l'équipe termine une tâche, il la met dans cette colonne et ensuite, la personne chargée de l'assurance qualité sait que cette tâche est prête à être validée. Si tout est conforme, elle déplace donc officiellement la tâche dans la colonne "Terminé", sinon elle la ramène dans la colonne "À faire" avec ses commentaires expliquant les éléments problématiques. - En production (In prod)
Cette colonne s'ajoute complètement à la fin du tableau. Celle-ci permet de différencier ce qui est visible en ligne (déployé) de ce qui est visible sur l'environnement de développement. Ainsi lorsque le DevOps effectue un déploiement, il transfère toutes les tâches actuellement dans la colonne "Terminé" vers celle nommée "En production". Ainsi on évite la confusion chez le client qui peut apercevoir certaines tâches terminées en ligne sur son site et d'autres non.