2. 1ère Partie - Comparaison▲
Cette première partie du livre consiste en un essai de comparaison objective et pratique de Scrum et Kanban. Il s'agit d'une petite mise à jour de la version de l'article original "Kanban vs Scrum" publié en avril 2009. Cet article étant devenu populaire, j'ai alors décidé d'en faire un livre et j'ai demandé à mon collègue Mattias de l'enrichir avec une étude de cas "depuis les tranchées" de l'un de nos clients. Excellent boulot ! Vous pouvez passer directement à la Partie II si vous préférez commencer par l'étude de cas, je ne serai pas vexé. En fait, peut-être juste un peu.
Henrik Kniberg
2-1. Que sont Scrum et Kanban ?▲
OK, essayons de résumer Scrum et Kanban, chacun en moins de 100 mots.
2-1-1. Scrum en bref▲
Divisez votre organisation en petites équipes multidisciplinaires et auto-organisées.
Divisez votre travail en une liste de petits livrables concrets. Triez cette liste par priorité et estimez la taille relative de chaque élément.
Divisez le temps en petites itérations de durée fixe (appelées des sprints et durant habituellement de 1 à 4 semaines) et faites une démonstration à l'issue de chaque sprint avec un produit potentiellement livrable.
Optimisez le planning de la version et mettez à jour les priorités en collaboration avec le client, sur la base de ce que vous avez appris après chaque sprint.
Optimisez le processus en organisant une rétrospective après chaque sprint.
Ainsi, au lieu d'avoir un grand groupe passant beaucoup de temps sur la construction d'une grande chose, nous avons une petite équipe passant un peu de temps à construire une petite chose... mais intégrant régulièrement pour voir l'ensemble.
150 mots ... on y est presque.
Pour plus de détails consultez "Scrum et XP depuis les Tranchées". Le livre est disponible gratuitement en ligne. Je connais l'auteur, il est sympa :-)
Pour plus de liens sur Scrum, je vous renvoie sur http://www.crisp.se/scrum
2-1-2. Kanban en bref▲
Visualisez le workflow :
- Divisez votre travail, décrivez chaque élément sur une fiche et mettez-la au mur.
- Tracez des colonnes, donnez-leur le nom des étapes du workflow et placez y les éléments de travail.
Limitez le TAF : fixez des limites précises indiquant combien d'éléments peuvent être placés dans chaque étape du workflow.
Mesurez le temps de cycle (temps moyen pour traiter complètement un élément, appelé "lead time" en anglais), optimisez le processus pour que le temps de cycle soit aussi court et prévisible que possible.
Vous trouverez des liens utiles sur Kanban à : http://www.crisp.se/kanban
2-2. Quels sont les liens entre Scrum et Kanban ?▲
2-2-1. Scrum et Kanban sont tous les deux des outils de processus▲
Outil = n'importe quoi pouvant être utilisé pour accomplir une tâche ou atteindre un but.
Processus = façon dont vous travaillez.
Scrum et Kanban sont des outils de processus en ce sens qu'ils vous aident à travailler plus efficacement en vous disant, dans une certaine mesure, quoi faire. Java est un outil, il vous fournit un moyen plus simple de programmer un ordinateur. Une brosse à dent est aussi un outil, elle vous aide à atteindre vos dents afin de pouvoir les nettoyer.
2-2-2. Comparer les outils pour mieux les comprendre et non pour les juger▲
Couteau et fourchette : quel est le meilleur outil ?
Cette question n'a pas trop de sens, n'est-ce pas ? Parce que la réponse dépend de votre contexte. Pour manger des boulettes de viande, la fourchette est probablement le meilleur choix. Pour hacher des champignons, le couteau est probablement le meilleur choix. Pour jouer du tambour sur la table, les deux feront l'affaire. Pour manger un steak, vous aurez vraisemblablement besoin d'utiliser les deux outils ensemble. Pour manger du riz, ... eh bien ... certains préfèrent la fourchette tandis que d'autres préfèrent les baguettes.
Donc, en comparant des outils, on se doit d'être prudent. Comparez pour mieux comprendre et non pour juger.
2-2-3. Aucun outil n'est complet, aucun outil n'est parfait▲
Comme tout outil, Scrum et Kanban ne sont ni parfaits ni complets. Ils ne vous disent pas tout ce que vous avez à faire, ils vous fournissent juste quelques contraintes et quelques directives. Par exemple, Scrum vous contraint à avoir des itérations de durée fixe et des équipes multidisciplinaires, et Kanban vous contraint à utiliser des tableaux visibles et à limiter la taille de vos files d'attente.
Fait intéressant, l'intérêt d'un outil est qu'il limite les options. Un outil de processus qui vous permet de faire n'importe quoi n'est pas très utile. On pourrait appeler ce processus "Faire N'importe Quoi" ou même "Faire La Bonne Chose". Le processus "Faire La Bonne Chose" est garanti pour marcher, c'est comme une baguette magique ! Si ça ne marche pas, c'est parce que vous n'êtes manifestement pas en train d'appliquer le processus :-)
Utiliser les bons outils vous aide à réussir, mais ce n'est pas une garantie de succès pour autant. Il n'est pas facile de discerner entre la réussite/l'échec d'un projet et la réussite/l'échec d'un outil.
- Un projet peut réussir grâce à un très bon outil.
- Un projet peut réussir malgré un mauvais outil.
- Un projet peut échouer à cause d'un mauvais outil.
- Un projet peut échouer malgré un très bon outil.
2-2-4. Scrum est plus normatif que Kanban▲
On peut comparer les outils en regardant le nombre de règles qu'ils fournissent. Normatif signifie "plus de règles à suivre" et adaptatif signifie "moins de règles à suivre". 100% de normatif signifie que vous n'avez pas besoin d'utiliser votre cerveau, il y a une règle pour tout. 100% d'adaptatif équivaut à faire n'importe quoi, il n'y a aucune règle ni aucune contrainte. Comme vous pouvez le deviner, les deux extrêmes de l'échelle sont ridicules.
Les méthodes agiles sont parfois qualifiées de méthodes légères, en particulier parce qu'elles sont moins normatives que les méthodes traditionnelles. D'ailleurs, le premier principe du Manifeste Agile est "Les Individus et leurs Interactions plutôt que les Processus et les Outils".
Scrum et Kanban sont tous les deux très adaptatifs, mais, relativement parlant, Scrum est plus normatif que Kanban. Scrum vous donne plus de contraintes et par conséquent vous laisse moins de possibilités. Par exemple Scrum prescrit l'utilisation d'itérations de durée fixe, Kanban ne le fait pas.
Comparons quelques outils sur une échelle normatif vs adaptatif :
RUP est assez normatif - avec plus de 30 rôles, plus de 20 activités et plus de 70 artefacts ; une énorme quantité de choses à apprendre. Vous n'êtes cependant pas censé tout utiliser, RUP encourage à sélectionner le sous-ensemble adapté à votre projet. Malheureusement, cela semble être difficile dans la pratique. "Hmmmm... aurons-nous besoin de l'artefact
Conclusion de l'Audit des Configurations ? Aurons-nous besoin d'un rôle de Responsable de contrôle du changement ? Pas sûr, mais prenons les juste au cas où." C'est une des raisons pour lesquelles les implémentations de RUP sont finalement généralement très lourdes par rapport à des méthodes agiles telles que Scrum et XP.
XP (eXtreme Programming) est plus normatif que Scrum. Il inclut une majorité des règles de Scrum + un ensemble de pratiques d'ingénierie bien spécifiques comme le développement piloté par les tests et la programmation en binôme.
Scrum est moins normatif que XP puisqu'il ne recommande aucune pratique d'ingénierie particulière. Scrum est plus normatif que Kanban cependant, car il impose des choses comme les itérations et les équipes multidisciplinaires.
Une des différences principales entre Scrum et RUP est qu'avec RUP vous vous retrouvez avec beaucoup trop de choses et vous êtes censé supprimer ce dont vous n'avez pas besoin. Avec Scrum, vous partez petit, et vous êtes censé ajouter ce qui manque.
Kanban laisse tout ouvert. Les seules contraintes sont de Visualiser Votre Workflow et de Limiter Votre TAF. Tout près du "Faire N'importe Quoi", mais étonnamment puissant.
2-2-5. Ne vous limitez pas à l'emploi d'un seul outil !▲
Combinez les outils dont vous avez besoin ! Je peux difficilement imaginer une équipe Scrum réussir sans inclure la plupart des éléments de XP, par exemple. Beaucoup d'équipes Kanban font des scrums quotidiens (une pratique Scrum de réunion avec l'équipe debout). Certaines équipes Scrum rédigent leurs éléments de backlog sous forme de cas d'utilisation (une pratique RUP) ou limitent la taille de leurs files d'attente (une pratique Kanban). Prenez tout ce qui peut marcher pour vous.
Musashi (célèbre samouraï du XVIIe siècle, connu pour sa technique de combat à deux sabres) le disait plus élégamment : "Ne vous attachez pas à une seule arme ou à un seul style de combat en particulier."
Faites cependant attention aux contraintes de chaque outil. Par exemple, si vous utilisez Scrum et décidez de cesser d'utiliser les sprints de durée fixe (ou tout autre aspect central de Scrum), alors ne dites pas que vous utilisez Scrum. Scrum est assez minimaliste tel qu'il est, alors si vous supprimez quelque chose et que vous appelez encore ça du Scrum, le mot sera dénué de sens et créera de la confusion. Appelez-ça par exemple "inspiré de Scrum" ou "sous-ensemble de Scrum" ou encore "Scrumayonnaise" :-)
2-3. Scrum impose des rôles▲
Scrum est basé sur 3 rôles : le Product Owner (qui donne la vision du produit et définit les priorités), l'Équipe (qui développe le produit) et le ScrumMaster (qui supprime les obstacles et guide l'équipe pour le suivi du processus).
Kanban ne prescrit aucun rôle.
Cela ne signifie pas que vous ne pouvez pas ou ne devez pas avoir un rôle de Product Owner dans Kanban ! Cela signifie simplement que vous n'êtes pas obligé. Avec Scrum et Kanban vous êtes libre d'ajouter tous les rôles supplémentaires dont vous avez besoin.
Soyez cependant prudent lorsque vous ajoutez des rôles. Assurez-vous que les rôles supplémentaires apportent effectivement de la valeur et n'entrent pas en conflit avec d'autres éléments du processus. Êtes-vous sûr d'avoir besoin d'un rôle de Chef de Projet ? Dans un grand projet c'est probablement une bonne idée, peut-être que cela aidera les nombreuses équipes et les Product Owners à se synchroniser entre eux. Dans un petit projet, ce rôle pourrait être du gaspillage, ou pire, pourrait conduire à une sous-optimisation et du micro-management.
L'état d'esprit général dans Scrum et Kanban est "maximiser le minimalisme". Donc en cas de doute, commencer avec le minimum.
Dans le reste du livre, j'utiliserai le terme "Product Owner" pour parler de la personne qui fixe les priorités d'une équipe, quel que soit le processus utilisé.
2-4. Scrum impose des itérations de durée fixe▲
Scrum est basé sur des itérations de durée fixe, appelées sprints. Vous pouvez choisir la durée du sprint, mais l'idée générale est de conserver la même durée sur une période de temps significative et ainsi d'établir un rythme de travail.
- Début de sprint : un backlog de sprint est créé, c'est-à-dire que l'équipe extrait plusieurs éléments spécifiques du backlog de produit, sur la base des priorités fixées par le Product Owner et la quantité d'éléments que l'équipe pense pouvoir traiter dans ce sprint.
- En cours de sprint : l'équipe se concentre sur la réalisation des éléments sur lesquels elle s'est engagée. Le périmètre du sprint est fixe.
- Fin de sprint : l'équipe organise la démonstration du produit pour les parties prenantes concernées, le produit doit être potentiellement livrable (c'est-à-dire testé et prêt à être déployé). L'équipe fait ensuite une rétrospective pour discuter de son processus et l'améliorer.
Ainsi, un sprint Scrum représente un rythme de travail unique de durée fixe et combinant trois activités différentes : la planification, l'amélioration des processus, et (idéalement) la livraison d'une version.
Avec Kanban, les itérations de durée fixe ne sont pas imposées. Vous pouvez choisir à quel moment faire de la planification, de l'amélioration des processus et livrer des versions. Vous pouvez faire ces activités sur une base régulière ("livraison tous les lundis") ou à la demande ("livraison chaque fois que nous avons quelque chose d'utile à livrer").
Équipe n°1 (rythme unique)
"Nous pratiquons des itérations comme les sprints de Scrum."
Équipe n°2 (trois rythmes)
"Nous avons trois rythmes différents. Chaque semaine, nous livrons ce qui est prêt à être livré. Toutes les deux semaines, nous avons une réunion de planification, de mise à jour de nos priorités et des plannings de livraison. Toutes les quatre semaines, nous avons une réunion (rétrospective) pour améliorer nos processus."
Équipe n°3 (rythme essentiellement piloté par les événements)
"Nous déclenchons une réunion de planification chaque fois que nous commençons à ne plus rien avoir à faire. Nous déclenchons la livraison d'une version dès que nous disposons d'un ensemble de MMF ("Minimum Marketable Feature" = "fonctionnalité minimale apportant de la valeur à l'utilisateur"). Nous déclenchons spontanément un cercle de qualité à chaque fois que nous tombons sur un même problème pour la deuxième fois. Nous faisons aussi une rétrospective plus approfondie toutes les quatre semaines."
2-5. Kanban limite le TAF à chaque étape du workflow, Scrum limite le TAF à chaque itération▲
Avec Scrum, le backlog de sprint montre les tâches qui doivent être exécutées au cours de l'itération. Il est généralement concrétisé par des post-it collés sur un mur, que l'on appelle tableau Scrum ou tableau des tâches.
Alors, quelle est la différence entre un tableau Scrum et un tableau Kanban ? Commençons avec un projet très simple pour comparer les deux :
Dans les deux cas, nous suivons la progression d'un groupe d'éléments à travers un workflow. Nous avons défini trois états : "À faire", "En cours", et "Terminé". Vous pouvez définir autant d'états que vous voulez - certaines équipes ajoutent des états tels que "Intégré", "Testé", "Livré", ... N'oubliez cependant pas le principe "maximaliser le minimalisme".
Alors, quelle est la différence entre ces deux exemples de tableaux ? Ouaip - le petit 2 dans la colonne du milieu sur le tableau Kanban. C'est tout. Ce chiffre 2 signifie qcolonne à un instant donné".
Avec Scrum, il n'existe pas de règle empêchant l'équipe de mettre tous les éléments dans la colonne "En cours" en même temps ! Toutefois, la limite est implicite puisque le périmètre du sprint est figé. Dans ce cas, la limite implicite est de 4, car il y a seulement 4 éléments dans l'ensemble du tableau. Donc Scrum limite le TAF indirectement, alors que Kanban limite le TAF directement.
La plupart des équipes Scrum finissent par apprendre que c'est une mauvaise idée d'avoir un trop grand nombre d'éléments en cours, et développent une culture visant à terminer les éléments commencés avant d'en démarrer de nouveaux. Certaines ont même décidé de limiter explicitement le nombre d'éléments autorisés dans la colonne "En cours" et donc - tadaaa ! - le tableau Scrum est devenu un tableau Kanban !
Ainsi, Scrum et Kanban limitent tous les deux le TAF, mais de manière différente. Les équipes Scrum mesurent habituellement une vélocité - le nombre d'éléments (ou unités correspondantes telles que les "story points") réalisés par sprint. Une fois que l'équipe connaît sa vélocité, cela devient sa limite de TAF (ou tout au moins une indication). La plupart du temps, une équipe qui a une vélocité moyenne de 10 ne traitera pas plus de 10 éléments (ou "story points") au cours d'un sprint.
Ainsi, avec Scrum, le TAF est limité par unité de temps. Avec Kanban, le TAF est limité par étape du workflow.
Dans l'exemple Kanban ci-dessus, 2 éléments au plus peuvent être dans l'état "En cours" à un moment donné, indépendamment de toute durée. Vous avez besoin de définir la limite à appliquer à chaque état du workflow, sachant que l'idée générale est de limiter le TAF de tous les états, en commençant le plus tôt possible et en terminant le plus tard possible dans le flux de valeur. Donc dans l'exemple ci-dessus, nous devrions ajouter une limite TAF à l'état "À faire" (ou tout autre nom que vous donnez à votre file d'entrée). Une fois que nous avons défini nos limites de TAF, nous pouvons commencer à mesurer et estimer le temps de cycle, c'est-à-dire le temps qu'il faut à un élément, en moyenne, pour traverser tout le tableau. Disposer de temps de cycle prédictibles nous permet de nous engager sur des niveaux de service (en anglais SLA : Service Level Agreement) et de planifier de façon réaliste les livraisons.workflow, sachan
Si la taille des éléments varie de façon spectaculaire alors il est possible d'envisager de définir les limites de TAF en story points, ou tout autre unité de taille que vous utilisez. Certaines équipes préfèrent investir du temps à re-découper en éléments d'à peu près la même taille ce qui permet d'éviter ce type de considération et réduit le temps passé à estimer les choses (vous pourriez même considérer que passer du temps à estimer est un gaspillage). Il est plus facile de créer un système fluide si les éléments sont à peu près de la même taille.
2-6. Les deux sont empiriques▲
Imaginez qu'il y ait des boutons sur ces compteurs, et que vous puissiez configurer votre processus en tournant simplement ces boutons. "Je veux une haute capacité, un temps de cycle faible, une qualité et une prédictibilité élevées. Je vais donc tourner les boutons sur 10, 1, 10 et 10, respectivement."
Ce serait géant, n'est-ce pas ? Malheureusement, il n'y a pas de boutons de contrôle de ce type. Aucun que je connaisse du moins. Faites-moi savoir si vous en trouvez.
Au lieu de cela, ce que nous avons, c'est un tas de boutons de contrôle indirect.
Scrum et Kanban sont tous les deux empiriques dans le sens où vous expérimentez le processus puis vous l'adaptez à votre environnement de travail. En fait, vous devez l'expérimenter. Scrum et Kanban ne sont prévus pour vous fournir toutes les réponses - ils vous donnent juste un ensemble de contraintes pour piloter votre propre amélioration de processus.
- Scrum explique que vous devez disposer d'équipes multidisciplinaires. Donc, qui devrait être dans quelle équipe ? Si vous ne savez pas, expérimentez-le.
- Scrum avance que c'est l'équipe qui choisit la quantité de travail à réaliser dans un sprint. Donc, quelle quantité de travail peut-elle faire ? Si vous ne savez pas, expérimentez-le.
- Kanban dit que vous devez limiter le TAF. Donc, quelle doit être cette limite ? Si vous ne savez pas, expérimentez-le.
Comme je l'ai mentionné plus haut, Kanban vous impose moins de contraintes que Scrum. Ce qui signifie que vous devez penser à ajuster plus de paramètres, tourner plus de boutons. Cela peut être un désavantage ou un avantage, en fonction de votre contexte. Lorsque vous ouvrez l'interface de configuration d'un logiciel, préférez-vous avoir 3 options ou 100 options de paramétrage ? Probablement quelque part entre les deux. Cela dépend de ce que vous souhaitez paramétrer et de la compréhension que vous avez de l'outil.
Alors, disons que nous allons réduire la limite de TAF, en se basant sur l'hypothèse que cela améliorera notre processus. On observe ensuite comment les choses telles que la capacité, le temps de cycle, la qualité et la prédictibilité évoluent. À partir des résultats, nous en tirons des conclusions, puis nous changeons encore d'autres choses, améliorant constamment notre processus.
Il y a plusieurs noms pour cela. Kaizen (amélioration continue dans le langage Lean), Inspection et Adaptation (dans le langage Scrum), Processus de Contrôle Empirique, ou pourquoi pas La Méthode Scientifique.
L'élément le plus critique est le feedback. Changer quelque chose => Découvrez comment cela s'est passé => Tirez-en des leçons => Changez encore quelque chose. D'une manière générale, le feedback doit être le plus rapide possible, afin que vous puissiez adapter votre processus rapidement.
Avec Scrum, le feedback est rythmé par le sprint. Il y a plus court, cependant, surtout si vous combinez avec XP (eXtreme Programming) :
Lorsqu'il est correctement appliqué, le couple Scrum + XP vous offre de nombreuses possibilités de feedback à forte valeur ajoutée.
Le feedback interne - la programmation en binôme permet un feedback en quelques secondes. Les anomalies sont détectées et résolues dans les secondes qui suivent leur apparition ("Hé, cette variable n'est pas censée valoir 3 ?"). Autrement dit, il s'agit d'un feedback pour la question "Sommes-nous en train de bien construire le produit ?".
La feedback externe - le sprint permet un feedback en quelques semaines. Autrement dit, il s'agit d'un feedback à la question "Sommes-nous en train de construire le bon produit ?".
Mais qu'en est-il de Kanban ? Eh bien, tout d'abord vous pouvez (et probablement vous devriez) utiliser tous les types de feedback mentionnés ci-dessus dans votre processus que vous utilisiez Kanban ou non. Ce que Kanban vous offre en plus, ce sont des mesures temps réel très utiles.
- Temps de cycle moyen. Mis à jour chaque fois qu'un élément atteint l'état "Fini" (ou le nom que vous donnez à votre colonne la plus à droite).
- Les goulets d'étranglement. Un symptôme connu apparait lorsque la colonne "X" est bourré d'items tandis que la colonne "X+1" est vide. Recherchez dans ce cas des "bulles d'air" dans votre tableau.
Ce qui est intéressant, concernant les mesures temps réel, c'est que vous pouvez choisir la durée de votre feedback, basée sur la fréquence à laquelle vous êtes prêt à analyser les mesures et à apporter des modifications. Un feedback trop long signifie que votre amélioration du processus se fera lentement. Un feedback trop rapide fait que votre processus n'aura peut être pas le temps de se stabiliser entre chaque changement, ce qui peut causer du gaspillage.
En fait, vous pouvez également expérimenter la durée du feedback ... un peu comme un méta-feedback. Bon, je n'irai pas plus loin sur ce sujet.
Exemple : expérimentez les limites de TAF avec Kanban
L'un des moyens typiques d'ajustement de Kanban est la limite du TAF. Mais comment pouvons-nous savoir si l'on a vu juste ?
Supposons que nous avons une équipe de 4 personnes, et que nous décidons de commencer par une limite de TAF à 1.
Chaque fois que nous commençons à travailler sur un élément, nous ne pouvons pas démarrer un nouvel élément tant que le premier n'est pas Fini. Donc, cela va très vite.
Super ! Mais il s'avère que c'est le plus souvent impossible pour 4 personnes de travailler sur le même élément (dans cet exemple), donc nous aurons des gens inactifs. Si cela ne se produit qu'une fois ce n'est pas un problème, mais si cela se produit régulièrement, le temps de cycle moyen va augmenter. Fondamentalement, un TAF de 1 signifie que les éléments vont rapidement traverser l'état "En cours", par contre ils vont rester coincés dans l'état "À faire" plus longtemps que nécessaire, de sorte que le temps de cycle total (= temps de traversée du workflow complet) sera inutilement élevé.
Alors, si un TAF de 1 est trop faible, qu'est-ce-que cela donne avec un TAF de 8 ?
Cela fonctionne mieux pendant un temps. Nous constatons que le travail en binôme est plus rapide en moyenne. Ainsi avec une équipe de 4 personnes, nous avons habituellement 2 éléments dans l'état "En cours" à un moment donné. Un TAF de 8 est juste une limite haute, donc si on le baisse c'est mieux !
Supposez maintenant que nous avons un problème avec le serveur d'intégration, donc nous ne pouvons pas finir de traiter les éléments (notre définition de "Fini" comprend l'intégration). Ce genre de problème arrive parfois, non ?
Puisque nous ne pouvons pas terminer les éléments D et E, nous commençons à travailler sur l'élément F. Nous ne pouvons pas non plus intégrer celui-ci, donc nous traitons un nouvel élément G. Au bout d'un moment, nous atteignons notre limite Kanban - 8 éléments dans "En cours".
À ce stade, nous ne pouvons plus ajouter d'éléments. Eh, nous ferions mieux de régler ce problème de serveur d'intégration ! La limite de TAF nous a invités à réagir et à éliminer le goulet d'étranglement au lieu d'empiler du travail non fini.
C'est pas mal. Mais si la limite de TAF était de 4, nous aurions réagi beaucoup plus tôt, nous donnant ainsi un meilleur temps de cycle moyen. Donc c'est un équilibre à trouver. Nous mesurons le temps de cycle moyen et essayons d'ajuster constamment nos limites de TAF pour optimiser le temps de cycle.
Au bout d'un moment, on peut constater que des éléments s'entassent dans l'état "À faire". Peut-être serait-il temps d'ajouter une limite de TAF à cet endroit également.
D'ailleurs pourquoi avons-nous besoin d'une colonne "À faire" ? Eh bien, si le client était toujours disponible pour dire à l'équipe quoi faire la fois suivante, alors la colonne "À faire" ne serait pas nécessaire. Mais dans notre cas, le client n'est pas toujours disponible, de sorte que la colonne "À faire" donne à l'équipe un petit buffer de travail.
Expérimentez ! Ou, comme les Scrumologistes le disent : Inspectez et Adaptez !
2-7. Scrum autorise peu de changement dans une itération▲
Disons que notre tableau Scrum ressemble à cela :
Que se passe-t-il si quelqu'un se présente et souhaite ajouter l'élément E au tableau ?
Une équipe Scrum répondra typiquement quelque chose comme "Non, désolé, nous nous sommes engagés sur le périmètre A+B+C+D pour ce sprint. Mais n'hésitez pas à ajouter l'élément E au backlog du produit. Si le Product Owner estime que c'est un élément de forte priorité, nous le traiterons dans le sprint suivant." Des sprints de bonne durée donnent à l'équipe tout juste assez de temps pour obtenir une version du produit, tout en permettant au Product Owner de gérer et mettre régulièrement à jour les priorités.
Et que dirait l'équipe Kanban ?
Une équipe Kanban répondrait : "N'hésitez pas à ajouter l'élément E dans la colonne "À faire". Mais la limite est de 2 pour cette colonne, donc vous devrez dans ce cas retirer C ou D. Nous travaillons en ce moment sur A et B et, dès que nous en aurons la capacité, nous dépilerons un élément de la colonne "À faire".
Ainsi, le temps de réponse (le temps qu'il faut pour répondre à un changement de priorité) d'une équipe Kanban correspond au temps pour retrouver de la capacité à traiter, suivant le principe général de "un élément qui sort = un élément qui rentre" (pilotage par les limites du TAF).
Le temps de réponse d'une équipe Scrum est en moyenne équivalent à la moitié d'un sprint.
Avec Scrum, le Product Owner ne peut pas toucher au tableau Scrum puisque l'équipe s'est engagée sur un ensemble spécifique d'éléments dans le sprint. Avec Kanban, vous définissez vos propres règles de base précisant qui est autorisé à changer quoi sur le tableau. Typiquement, on attribue au Product Owner une colonne "À faire" ou "Prêt" ou "Backlog" ou "Proposé" à l'extrême gauche où il peut apporter des changements quand il le veut.
Ces deux approches ne sont cependant pas exclusives. Une équipe Scrum peut décider d'autoriser un Product Owner à changer les priorités au milieu d'un sprint (même si c'est normalement considéré comme une exception). Et une équipe Kanban peut décider d'ajouter des restrictions sur le moment où les priorités peuvent être changées. Une équipe Kanban peut même décider de s'engager sur des itérations de durée fixe avec un périmètre fixé, tout comme en Scrum.
2-8. Le tableau Scrum est réinitialisé à chaque début d'itération▲
Un tableau Scrum ressemble généralement à quelque chose de ce genre au cours des différents moments d'un sprint.
Lorsque le sprint est fini, le tableau est effacé et tous les éléments sont enlevés. Un nouveau sprint est lancé et après la réunion de planification du sprint suivant, nous avons un nouveau tableau Scrum, avec de nouveaux éléments dans la colonne la plus à gauche. Techniquement, il s'agit d'un gaspillage mais pour des équipes Scrum expérimentées, cela ne prend généralement pas trop de temps, et le processus de réinitialisation du tableau peut apporter un sentiment agréable d'accomplissement et de fin officielle. Un peu comme laver la vaisselle après le dîner - le faire est une épreuve, mais c'est agréable une fois que c'est fini.
Avec Kanban, le tableau est généralement persistant : vous n'avez donc pas besoin de le réinitialiser et de démarrer avec autre chose.
2-9. Scrum impose des équipes multidisciplinaires▲
Un tableau Scrum est détenu par une et une seule équipe Scrum. Une équipe Scrum est multidisciplinaire, elle possède toutes les compétences nécessaires pour mener à bien tous les éléments du sprint. Un tableau Scrum est généralement visible de toute personne intéressée, mais seule l'équipe Scrum peut le modifier : c'est l'outil qui lui permet de maîtriser ses engagements sur le sprint en cours.
Avec Kanban, les équipes multidisciplinaires sont facultatives, et un tableau peut ne pas être détenu par une équipe spécifique. Un tableau est lié à un workflow unique, pas nécessairement à une seule équipe.
Voici deux exemples :
Exemple 1 : l'ensemble du tableau est géré par une équipe multidisciplinaire. Comme en Scrum.
Exemple 2 : le Product Owner définit les priorités dans la colonne 1. Une équipe de développeurs multidisciplinaire développe le produit (colonne 2) et le teste (colonne 3). La livraison (colonne 4) est assurée par une équipe de spécialistes. Il y a un léger chevauchement de compétences, donc si l'équipe de livraison devient un goulet d'étranglement, l'un des développeurs va les aider.
Avec Kanban, vous devez donc établir des règles de base pour définir qui utilise le tableau et de quelle façon, puis vous expérimentez les règles pour optimiser le flux.
2-10. Les éléments du backlog Scrum doivent tenir dans un sprint▲
Scrum et Kanban sont tous les deux basés sur le développement incrémental, c'est-à-dire la division du travail.
Une équipe Scrum s'engagera uniquement sur des éléments qu'elle pense pouvoir traiter dans un sprint (en ayant préalablement défini le "Fini"). Si un élément est trop gros pour tenir dans un sprint, l'équipe et le Product Owner essayeront de trouver des moyens de diviser cet élément en plusieurs éléments plus petits jusqu'à ce que cela tienne dans un sprint. Si les éléments sont tous globalement gros, les sprint seront plus longs (mais généralement pas plus de 4 semaines).
Les équipes Kanban essayent de minimiser le temps de cycle moyen et de maximiser le flux, ce qui incite indirectement à diviser les éléments en plus petits éléments. Mais il n'y a pas de règle explicite indiquant que les éléments doivent être suffisamment petits pour correspondre à une durée fixe. Dans le même tableau nous pourrions avoir un élément qui prend 1 mois à traiter et un autre élément qui prend 1 jour.
2-11. Scrum impose estimation et vélocité▲
En Scrum, les équipes sont censées évaluer la taille relative (= quantité de travail) de chaque élément sur lequel elles s'engagent. En additionnant la taille de chaque élément terminé à la fin de chaque sprint, nous obtenons la vélocité. La vélocité est une mesure qui sert à estimer la capacité : la quantité d'éléments que nous pouvons livrer par sprint. Voici un exemple d'équipe avec une vélocité moyenne de 8.
Sachant que la vélocité moyenne est de 8, nous pouvons alors prévoir une capacité de 8 pour les éléments que nous pourrons traiter dans les prochains sprints, et donc planifier de façon réaliste les livraisons.
En Kanban, l'estimation n'est pas imposée. Si vous souhaitez vous engager vous devez décider de la manière de prévoir les choses.
Certaines équipes choisissent de faire des estimations et de mesurer la vélocité, tout comme en Scrum. D'autres équipes choisissent de ne pas faire d'estimation, mais essayent de diviser les choses à faire en éléments d'à peu près de la même taille : ils peuvent alors mesurer la vélocité en terme de nombre d'éléments traités par unité de temps (par exemple, nombre de fonctionnalités par semaine). Certaines équipes groupent les éléments pour obtenir un ensemble de MMF (Minimal Marketable Feature), mesurent le temps de cycle moyen par MMF, et l'utilisent pour établir des SLA (Service Level Agreements). Exemple de SLA : "quand nous nous engageons sur uneous nous engageons sur une MMF, elle sera toujours livrée dans les 15 jours".
Il y a toutes sortes de techniques intéressantes pour la planification de release et la gestion des engagements dans le style Kanban, mais aucune technique spécifique n'est prescrite ; alors allez-y, essayez différentes techniques jusqu'à ce que vous en trouviez une qui convient à votre contexte. Vous verrez probablement émerger des bonnes pratiques au fil du temps.
2-12. Les deux permettent de travailler sur plusieurs produits simultanément▲
En Scrum, le "Backlog de produit" est un nom plutôt regrettable, car il implique que tous les éléments doivent concerner le même produit. Voici deux produits, vert et jaune, chacun avec son propre backlog de produit et sa propre équipe :
Que faire si vous n'avez qu'une seule équipe ? Eh bien, envisagez que le Backlog de produit devienne le Backlog d'équipe. Il liste les priorités pour les prochains sprints d'une équipe (ou un ensemble d'équipes). Si cette équipe maintient plusieurs produits, fusionnez donc les deux produits dans une seule liste. Cela oblige à établir des priorités entre les deux produits, ce qui est utile dans certains cas. Il existe plusieurs façons de le faire dans la pratique :
Une stratégie serait d'avoir l'équipe dédiée à un seul produit par sprint :
Une autre stratégie serait que l'équipe travaille sur les fonctionnalités des deux produits pendant chaque sprint :
C'est la même chose en Kanban. Nous pouvons avoir plusieurs produits circulant à travers le même tacartes de différentes couleurs :
... ou en ajoutant des "lignes de nage" :
2-13. Les deux sont Lean et Agile▲
Je ne vais pas reprendre ici la Pensée Lean ni le Manifeste Agile, mais d'une manière générale, Scrum et Kanban reposent tous les deux sur les mêmes valeurs et principes. Par exemple :
- Scrum et Kanban sont orientés Juste à temps (JIT = Just In Time) qui est un principe Lean. Cela signifie que l'équipe choisit le moment et la quantité de travail sur laquelle s'engager, et "tire" le travail quand elle est prête, plutôt que de voir ce travail "poussé" de l'extérieur. Exactement comme une imprimante qui tire la page suivante uniquement au moment où elle est prête à l'imprimer (même s'il n'y a qu'un petit stock limité de papier qu'elle peut utiliser).
- Scrum et Kanban sont basés sur une optimisation continue et empirique des processus, qui correspond au principe Kaizen du Lean.
- Scrum et Kanban mettent l'accent sur la réactivité aux changements plutôt qu'au suivi d'un planning (même si Kanban donne en général une réponse plus rapide que Scrum), l'une des quatre valeurs du Manifeste Agile.
... et plus encore.
D'un autre côté, Scrum n'est pas aussi Lean que cela, car il prévoit de grouper la réalisation des éléments dans des itérations à durée fixe. Mais cela dépend de la durée de votre sprint et de ce que vous comparez. Par rapport à un processus traditionnel où l'on intègre et livre 2 à 4 fois par an, une équipe Scrum développant un produit potentiellement livrable toutes les 2 semaines est très Lean.
Si vous continuez avec des sprints de plus en plus courts, vous vous rapprochez de Kanban. Lorsque vous commencez à parler de durée inférieure à 1 semaine, vous pouvez envisager de laisser entièrement tomber le principe de l'itération à durée fixe.
Je l'ai déjà dit et je le dis encore : expérimentez jusqu'à ce que vous trouviez ce qui fonctionne pour vous ! Ensuite, continuez encore à expérimenter :-)
2-14. Des différences mineures▲
Voici quelques différences qui semblent moins importantes que celles mentionnées précédemment. Il vaut mieux en prendre conscience tout de même.
2-14-1. Scrum recommande un backlog produitpriorisé▲
En Scrum, la gestion des priorités est toujours faite par le tri du backlog de produit et les changements de priorités prennent effet dans le sprint suivant (pas dans le sprint en cours). En Kanban, vous pouvez choisir n'importe quel mécanisme de priorisation (ou même aucun), et les changements prennent effet dès que la capacité est disponible (plutôt qu'à un moment fixé). Il peut y avoir un backlog de produit ou non et il peut être priorisé ou non.
Dans la pratique, cela fait peu de différence. Sur un tableau Kanban, la colonne la plus à gauche répond en général aux mêmes objectifs que le backlog de produit de Scrum. La liste peut-être ou non triée par ordre de priorité et l'équipe doit définir une règle de décision pour savoir quels éléments traiter/tirer en premier. Exemples de règles de décision :
- Dépiler toujours le premier élément.
- Prendre toujours l'élément le plus ancien (chaque élément est horodaté).
- Prendre n'importe quel élément.
- Prendre environ 20% d'éléments relatifs à la maintenance et 80% de nouvelles fonctionnalités.
- Répartir la capacité de l'équipe de façon à peu près égale entre les produits A et B.
- Prendre toujours les éléments en rouge d'abord, s'il y en a.
En Scrum, un backlog de produit peut aussi être utilisé selon un mode Kanban. Nous pouvons limiter sa taille et créer des règles de décision pour dire comment le prioriser.
2-14-2. Scrum impose des points quotidiens▲
Une équipe Scrum tient une réunion courte (15 minutes au plus), appelée scrum, chaque jour à la même heure et au même endroit. Le but de cette réunion est de faire un point sur ce qui a été fait, de planifier la journée à venir et d'identifier tout problème significatif. On l'appelle aussi parfois standup puisqu'elle se tient habituellement debout (pour qu'elle reste courte et qu'elle maintienne un haut niveau de participation).
Kanban ne prescrit pas les scrums quotidiens, même si beaucoup d'équipes Kanban semblent tout de même les faire. C'est une excellente technique quel que soit le processus utilisé.
En Scrum le format de la réunion est axé sur la personne - chaque personne fait son rapport l'une après l'autre. De nombreuses équipes Kanban utilisent un format plus orienté tableau, en se concentrant sur les goulets d'étranglement et d'autres problèmes visibles. Cette approche est plus souple. Si vous avez 4 équipes partageant le même tableau et menant leurs réunions quotidiennes ensemble, il n'est pas nécessaire d'écouter tout le monde parler tant que l'on se concentre sur les goulets d'étranglement du tableau.
2-14-3. Scrum recommande des burndown charts▲
Un burndown chart de sprint montre, sur une base quotidienne, le travail restant à réaliser pour le sprint courant.
L'unité de l'axe Y est celle utilisée pour les tâches du sprint. Généralement des heures ou des jours (si l'équipe divise les éléments du backlog en tâches) ou en story points (si l'équipe ne divise pas les éléments). Il existe de nombreuses variantes.
En Scrum, les burndown charts constituent l'un des principaux outils pour le suivi de la progression d'un sprint.
Certaines équipes utilisent également le burndown chart de release, qui suit le même format mais au niveau de la release : il montre généralement combien de story points restent à faire dans le backlog de produit après chaque sprint.
L'objectif principal est de se rendre compte facilement et le plus tôt possible si nous sommes en retard ou en avance, de sorte que nous pouvons nous adapter.
En Kanban, l'emploi des burndown charts n'est pas imposé. En fait, aucun type particulier de graphique n'est imposé. Mais ils sont bien sûr autorisés (y compris les burndowns).
Voici un exemple de diagramme de flux cumulé. Ce type de diagramme illustre parfaitement la pente de votre flux et la manière dont le TAF impacte votre temps de cycle.
Voici comment cela fonctionne. Chaque jour, faites le total du nombre d'éléments dans chaque colonne du tableau Kanban et empilez-les sur l'axe Y. Donc, au 4ème jour, il y avait 9 éléments dans le tableau. En partant de la colonne la plus à droite, il y avait 1 élément en Production, 1 élément en Test, 2 éléments en Dev et 5 éléments dans le Backlog. En traçant, et reliant, ces points tous les jours nous obtenons un beau diagramme comme celui ci-dessus. Les flèches verticales et horizontales illustrent la relation entre le TAF et le temps de cycle.
La flèche horizontale nous montre que les éléments ajoutés au backlog au 4ème jour ont pris en moyenne 6 jours pour atteindre la production. Environ la moitié de ce temps est passé en Test. Nous pouvons voir que si l'on arrivait à limiter le TAF en Test et en Backlog, cela permettrait de réduire significativement le temps de cycle.
La pente de la zone bleu foncé nous montre la vélocité (c'est-à-dire le nombre d'éléments déployés par jour). Au fil du temps on peut voir comment une vélocité supérieure peut réduire le temps de cycle, alors qu'un TAF supérieur accroît le temps de cycle.
La plupart des organisations souhaitent que les choses aillent plus vite (= réduire le temps de cycle). Malheureusement, beaucoup tombent dans le piège en supposant que cela signifie avoir plus de personnes ou faire des heures supplémentaires. Habituellement, la façon la plus efficace pour que les choses aillent plus rapidement est de lisser le flux et de limiter le travail à la capacité disponible, et non en ajoutant des personnes ou en les faisant travailler plus dur. Ce type de diagramme montre pourquoi, et augmente ainsi la probabilité que l'équipe et le management collaborent efficacement.
Cela devient encore plus évident si l'on matérialise les files d'attente entre les états du workflow (par exemple "en attente de Test") en plus des files de travail (par exemple "en cours de Test"). Nous voulons absolument minimiser le nombre d'éléments séjournant dans les files, et un diagramme de flux cumulé nous aide à trouver les pistes appropriées pour cela.
2-15. Tableau Scrum vs Tableau Kanban - un exemple moins trivial▲
En Scrum, le backlog de sprint ne représente qu'une partie de la vue complète - la partie qui montre ce que l'équipe est en train de faire au cours du sprint. L'autre partie est le backlog de produit - la liste des choses que le Product Owner veut avoir dans les prochains sprints.
Le Product Owner peut consulter mais ne peut pas toucher au backlog de sprint. Il peut changer le backlog de produit autant de fois qu'il veut, mais les modifications ne prennent effet (c'est-à-dire affectent le travail en cours) que dans les sprints suivants.
Lorsque le sprint est terminé, l'équipe "fournit une version potentiellement livrable" au Product Owner. En fait l'équipe termine le sprint, fait une revue de sprint, et montre fièrement les fonctionnalités A, B, C et D au Product Owner. Le Product Owner peut alors décider s'il convient ou non de livrer cette version du produit. La dernière partie - la livraison réelle du produit - n'est habituellement pas incluse dans le sprint, et n'est donc pas visible dans le backlog du sprint.
Dans ce scénario, un tableau Kanban pourrait plutôt ressembler à quelque chose de ce genre :
L'ensemble du workflow est représenté sur le même tableau : nous ne sommes pas simplement en train de regarder ce qu'une équipe Scrum est en train de faire dans une itération.
Dans l'exemple ci-dessus, la colonne "Backlog" est juste une liste de souhaits, sans ordre particulier. La colonne "Selected" contient les éléments de priorité haute, avec une limite Kanban à 2. Il peut donc y avoir seulement 2 éléments de priorité haute à un moment donné. Lorsque l'équipe est prête pour commencer à travailler sur un nouvel élément, elle dépile l'élément de plus haute priorité dans la colonne "Selected". Le Product Owner peut apporter des modifications aux colonnes "Backlog" et "Selected" à tout moment, mais pas aux autres colonnes.
La colonne "Dev" (scindée en deux sous-colonnes) montre ce qui est actuellement en cours de développement, avec une limite Kanban à 3. En termes réseau, la limite Kanban correspond à "la bande passante" et le temps de cycle correspond au "ping" (ou temps de réponse).
Pourquoi avons-nous scindé la colonne "Dev" en deux sous-colonnes "En cours" et "Fini" ? C'est pour donner à l'équipe de production la visibilité sur les éléments qu'ils peuvent mettre en production.
La limite "Dev" à 3 est partagée entre les deux sous-colonnes. Pourquoi ? Supposons qu'il y ait 2 éléments dans la colonne "Fini" :
Cela signifie qu'il ne peut y avoir qu'un seul élément dans la colonne "En cours". Cela implique qu'il y aura une capacité excédentaire, des développeurs qui pourraient commencer un nouvel élément, mais qui n'y sont pas autorisés à cause de la limite Kanban. Cela les incite donc fortement à aider à livrer des choses en production, afin de vider la colonne "Fini" et à maximiser le flux. Cet effet est positif et progressif - plus il y a de choses dans la colonne "Fini", moins il peut y avoir de choses dans la colonne "En coconcentrer sur de bonnes choses.
2-15-1. Flux à une pièce▲
Un flux à une pièce est une sorte de scénario pour un "flux parfait", où un élément traverse le tableau sans jamais être coincé dans une file d'attente. Cela signifie qu'à chaque instant il y a une personne travaillaélément. Voici à quoi pourrait ressembler le tableau dans ce cas :
B est en cours d'élaboration, A est sur le point d'être mis en production. Chaque fois que l'équipe est prête pour traiter l'élément suivant, elle demande au Product Owner ce qui est le plus important et obtient une réponse immédiate. Si ce scénario idéal se maintient, nous pouvons nous débarrasser des deux files d'attente "Backloréellement obtenir un temps de cycle très court !
Cory Ladas le dit élégamment : "Le processus de planification idéal devrait toujours fournir à l'équipe de développement la meilleure chose à faire le coup suivant, ni plus ni moins".
Les limites de TAF sont là pour maîtriser les problèmes, donc si les choses sont fluides les limites de TAF ne sont pas vraiment utiles.
2-15-2. Un jour au pays de Kanban▲
2-15-3. Est-ce que le tableau Kanban doit ressembler à ça ?▲
Non, le tableau ci-dessus était juste un exemple !
Les seules choses que Kanban impose sont le workflow visuel et le TAF limité. Le but est de créer un bon débit à travers le système et de réduire le temps de cycle. Vous devez donc régulièrement soulever des questions telles que :
Quelles colonnes devons nous avoir ?
Chaque colonne représente un état du workflow, ou une file d'attente (buffer) entre deux états du workflow. Commencez simple et ajoutez des colonnes seulement si nécessaire.
Quelles devraient être les limites de Kanban ?
Lorsque la limite de Kanban pour "votre" colonne a été atteinte et que vous n'avez rien à faire, commencez à chercher un goulet d'étranglement en aval (c'est-à-dire des éléments s'empilant à la droite du tableau) et aidez à traiter ce goulet d'étranglement. S'il n'y a pas de goulet d'étranglement, c'est une indication que la limite Kanban pourrait être plus faible, puisque la raison d'avoir une limite est de réduire le risque de générer des goulets d'étranglement en aval.
Si vous remarquez que de nombreux éléments stagnent pendant une longue période sans être traités, c'est une indication que la limite Kanban pourrait être trop élevée.
- Limite Kanban trop faible => les gens sont inoccupés => Mauvaise productivité
- Limite Kanban trop élevée => tâches non traitées => Mauvais temps de cycle
Les limites Kanban sont-elles strictes ?
Certaines équipes les appréhendent comme des règles strictes (à savoir que l'équipe ne peut pas dépasser une limite), certaines équipes les considèrent comme des lignes directrices ou des motifs de discussion (à savoir que briser une limite Kanban est autorisé, mais cela doit être une décision volontaire avec une raison valable). Encore une fois, c'est vous qui choisissez. Je vous ai dit que Kanban n'était pas très normatif, n'est-ce pas ?
2-16. Résumé Scrum vs Kanban▲
2-16-1. Ressemblances▲
- Les deux sont Lean et Agile.
- Les deux utilisent le Juste à temps.
- Les deux limitent le TAF.
- Les deux utilisent la transparence pour piloter l'amélioration des processus.
- Les deux se concentrent sur la livraison rapide et fréquente du produit.
- Les deux sont fondés sur l'auto-organisation des équipes.
- Les deux requièrent de diviser le travail en éléments.
- Dans les deux cas, le planning de release est continuellement ajusté et basé sur des données empiriques (vélocité / temps de cycle).
2-16-2. Différences▲
Scrum | Kanban |
---|---|
Itérations à durée fixe. | Itérations à durée fixe optionnelles. Possibilité d'avoir des rythmes différents pour le planning, les versions et l'amélioration des processus. Peut-être piloté par les événements et non à durée fixe. |
L'équipe s'engage sur une quantité spécifique de travail pourune itération. | Engagement optionnel. |
Utilisation de la Vélocité en tant que mesure par défaut pour le planning et l'amélioration des processus. | Utilisation du Temps de cycle en tant que mesure par défaut pour le planning et l'amélioration des processus |
Équipes multidisciplinaires imposées. | Équipes multidisciplinaires optionnelles. Équipes de spécialistes autorisées. |
Les éléments du backlog doivent être découpés afin de pouvoir être traités en 1 sprint. | Aucune taille imposée. |
Burndown chart imposé. | Aucun diagramme particulier imposé. |
Limitation indirecte du TAF (par sprint). | Limitation directe du TAF (par étape du workflow). |
Estimation imposée. | Estimation optionnelle. |
Impossible d'ajouter un item en cours d'itération. | Possibilité d'ajouter de nouveaux items à chaque fois que la capacité le permet. |
Un backlog de sprint est traité par une seule équipe. | Un tableau Kanban peut-être partagé par plusieurs équipes ou individus. |
3 rôles imposés (PO/SM/Équipe). | Aucun rôle imposé. |
Le tableau Scrum est réinitialisé à chaque début de sprint. | Un tableau Kanban est persistant. |
Un backlog de produit priorisé imposé | Priorisation optionnelle. |
Voilà. On y est. Vous connaissez maintenant les différences.
Mais ce n'est pas encore terminé, la meilleure partie va commencer ! Chaussez vos bottes, il est temps de descendre au fond de la mine avec Mattias et de voir à quoi cela ressemble en pratique !