Agile : entre Scrum et Kanban, laquelle des deux méthodologies est-elle la meilleure ?
Le point dans une étude comparative

Le , par Bill Fassinou, Chroniqueur Actualités
Laquelle des deux méthodologies est-elle la meilleure ?
Le développement d'applications modernes est rarement un effort solitaire. La conception, le codage, le test et l'empaquetage des applications nécessitent une équipe interfonctionnelle composée de concepteurs, de développeurs, de testeurs et de graphistes travaillant en étroite collaboration. Ceci est rendu plus difficile par le fait que les tâches à faire sont le plus souvent inconnues ou incomplètes. Toutes ces compétences combinées permettent de développer des applications qui répondent aux attentes des utilisateurs. Ces applications sont de plus en plus stables et livrées dans les délais et les contraintes budgétaires du client.

Depuis le début des années 1970, diverses méthodologies ont été créées pour surmonter ces difficultés et, au fil du temps, la plus populaire a été la méthode en cascade « waterfall model » qui est une approche de conception séquentielle relativement linéaire pour certaines zones de conception technique. Le problème avec ce modèle est que chaque phase doit être complètement achevée avant de passer à la phase suivante. Au fur et à mesure que la taille et la complexité des applications augmentaient vers les années 1980 et 1990, de nombreuses méthodes de développement ont vu le jour pour tenter de surmonter les problèmes rencontrés avec la méthode en cascade parmi lesquelles on peut citer Kanban et Scrum. Ces modèles reflètent à des degrés divers les principes définis par le Manifeste pour le développement agile de logiciels.

En effet, le Manifeste pour le développement Agile de logiciels est un texte rédigé par 17 experts du développement d'applications informatiques sous la forme de plusieurs méthodes dites agiles. Ces experts estimaient que le traditionnel cycle de développement en cascade ne correspondait plus aux contraintes et aux exigences des organisations en évolution rapide. Les méthodes agiles ne sont pas apparues avec l’Agile manifesto en 2001, mais celui-ci détermine leur commun dénominateur et consacre le terme d'« agile » pour les référencer. Les valeurs et principes du Manifeste agile sont défendus par l'Agile Alliance.


Les douze principes du Manifeste sont les suivants :
  • satisfaire le client en livrant rapidement et régulièrement des fonctionnalités à grande valeur ajoutée ;
  • accueillir positivement les changements de besoins, même tard dans le projet ;
  • livrer fréquemment un logiciel opérationnel avec des cycles de quelques semaines à quelques mois et une préférence pour les plus courts ;
  • les utilisateurs ou leurs représentants et les développeurs doivent travailler ensemble quotidiennement tout au long du projet ;
  • réaliser les projets avec des personnes motivées et leur fournir l’environnement et le soutien dont elles ont besoin et leur faire confiance pour atteindre les objectifs fixés ;
  • privilégier la colocation de toutes les personnes travaillant ensemble et le dialogue en face à face comme méthode de communication ;
  • un logiciel opérationnel est la principale mesure de progression d'un projet ;
  • les processus agiles encouragent un rythme de développement soutenable, ensemble, les commanditaires, les développeurs et les utilisateurs devraient être capables de maintenir indéfiniment un rythme constant ;
  • une attention continue à l'excellence technique et à un bon design ;
  • la simplicité – c’est-à-dire l’art de minimiser la quantité de travail inutile – est essentielle ;
  • les meilleures architectures, spécifications et conceptions émergent d'équipes auto-organisées ;
  • à intervalles réguliers, l'équipe réfléchit aux moyens possibles pour devenir plus efficace puis elle s'adapte et modifie son mode de fonctionnement en conséquence.


Qu'est-ce que Scrum?

Scrum est un schéma d’organisation de développement de produits complexes. Il est défini par ses créateurs comme un « cadre de travail holistique itératif qui se concentre sur les buts communs en livrant de manière productive et créative des produits de la plus grande valeur possible ». Il est considéré comme un groupe de pratiques répondant pour la plupart aux préconisations du Manifeste Agile. Son framework s'appuie sur le découpage d'un projet en boîtes de temps, nommées « sprints » qui peuvent durer entre quelques heures et un mois avec une préférence pour deux semaines. Il se base sur l'expérience du terrain et s'appuie sur trois piliers :
  • transparence (même langage commun entre l'équipe et le management pour permettre à tout observateur d'obtenir rapidement une bonne compréhension du projet) ;
  • inspection (à intervalle régulier, Scrum propose de faire le point sur les différents artéfacts produits, afin de détecter toute variation indésirable) ;
  • adaptation (si une dérive est constatée pendant l'inspection, le processus doit alors être adapté. Scrum fournit des évènements durant lesquels cette adaptation est possible) ;

Le cadre du scrum consiste en la définition des rôles projets, activités ou artefacts, et réunions ou événements. Ceux-ci sont décrits dans le guide rédigé par les créateurs de la méthode.

La méthodologie scrum présente néanmoins quelques risques à savoir le flaccid scrum, un scrum master directif et la communication constructive laisse la place aux reproches.


Qu'est-ce que Kanban?

Kanban est un terme japonais qui signifie « étiquette ». C'est une méthodologie du Manifeste d'Agile qui a été formalisée en 2010 par David Anderson. Elle est basée sur le principe de la limitation du nombre de travaux à faire (TAF). L’objectif de Kanban est d’éviter le gaspillage en assurant l’amélioration continue du processus. L’équipe définit les limites du TAF pour chaque étape du processus Kanban. Le flux du travail est contrôlé visuellement et permet à l'équipe de suspendre le processus afin de résoudre un problème bloquant.

Les 4 phases d’une démarche Kanban sont les suivantes :
  • la phase de conception ;
  • la phase de mise en œuvre (l’équipe applique les pratiques de la démarche Kanban et utilise ses outils à l’identification du processus existant et la définition des éléments du travail et la mise en place des règles du système) ;
  • la phase d’étude (ensemble, l’équipe et le concepteur étudient la réaction du système aux règles instaurées lors de la première phase de conception) ;
  • la phase d’amélioration (en fonction des conclusions de la phase d’étude, l’équipe ajuste le système, stabilise le processus, réorganise les éléments et fixe les règles).



Qu'est-ce que Scrum et Kanban ont en commun ?

Il y a beaucoup de similitudes entre Scrum et Kanban. Scrum et Kanban permettent à la fois de décomposer et d'exécuter efficacement des tâches importantes et complexes. Tous deux accordent une grande importance à l'amélioration continue, à l'optimisation du travail et au processus. Et tous les deux partagent le même accent sur un flux de travail très visible qui tient tous les membres de l'équipe au courant des tâches exécutées et de celles qui suivent.

Qu'est-ce qui différencie Scrum et Kanban ?

il existe un certain nombre de différences dans la philosophie de l'application pratique de Scrum et Kanban. Bien que les différences individuelles soient nombreuses, elles peuvent être regroupées dans les trois catégories suivantes :

  • Planification, itération et cadence

    Les processus Scrum mettent fortement l'accent sur le calendrier. L'équipe de Scrum dispose d'une liste hiérarchisée de tâches à faire qui doivent être complétées pour livrer un produit livrable. L'équipe doit décider combien de points, selon elle, peuvent être complétés dans un sprint. Tout ce qui sort de la portée à laquelle ils s'engagent doit attendre le prochain sprint. Idéalement, une équipe Scrum efficace apprendra rapidement ses capacités au cours de plusieurs sprints et ses estimations s'amélioreront et seront optimisées au fil du temps. Ensuite, toutes les deux semaines (ou quelque soit la durée de leur sprint), l'équipe produit un produit livrable, effectue une rétrospective pour discuter de l'optimisation du processus et passe au sprint suivant. Ce processus itératif est conçu pour permettre des estimations précises du flux de travail et une gestion efficace de plusieurs projets.

    Sur une équipe Kanban, il n'y a pas de boîtes de temps ou d'itérations requises. Bien que la méthode Kanban soit de nature itérative, on s'attend à ce que l'amélioration continue se produise de façon évolutive à mesure que le travail est continuellement complété. Les limitations imposées à diverses conditions dans le flux de travail seront réglées au début de l'utilisation de Kanban par une équipe (ou une organisation) jusqu'à ce qu'un ensemble optimal de limites soit atteint pour maintenir le flux régulier et efficace.

  • Rôles et responsabilités

    Sur les équipes Scrum, il existe au moins trois rôles à attribuer pour traiter efficacement le travail: le propriétaire du produit « Product Owner », Scrum Master et les membres de l'équipe. Chaque rôle a son propre ensemble de responsabilités, et ils doivent travailler ensemble pour atteindre un équilibre ordonné et efficace. L'équipe de mêlée doit elle aussi être interfonctionnelle, c'est-à-dire qu'une équipe doit avoir toutes les ressources nécessaires pour compléter le travail du sprint.

    Sous Kanban, aucun ensemble de rôles n'est prescrit. D'un point de vue pratique, il est logique que quelqu'un occupe un poste de chef de projet ou de superviseur, en particulier pour des projets Kanban plus importants et plus complexes, mais les rôles devraient théoriquement évoluer en fonction des besoins du projet et de l'organisation. Une équipe Kanban n'est pas obligée d'être interfonctionnelle puisque le flux de travail Kanban est destiné à être utilisé par toutes les équipes impliquées dans le projet. Par conséquent, une équipe de spécialistes et une équipe distincte de généralistes peuvent travailler sur différents aspects du même projet Kanban à partir du même conseil.

  • Les tableaux

    Bien que très similaires, le tableau Scrum et le tableau Kanban sont très différents. Sur un tableau Scrum, les colonnes sont étiquetées pour refléter les périodes dans le flux de travail commençant avec le backlog de sprint et se terminant par tout ce qui les tâches à faire de l'équipe. Tous les historiques ajoutés au tableau au début de chaque sprint doivent être trouvés dans la dernière colonne à la fin de ce sprint ou le sprint n'a pas réussi. Après la rétrospective du sprint, le tableau est effacé et préparé pour le prochain sprint.

    Sur un tableau Kanban, les colonnes sont également étiquetées pour afficher les états de flux de travail, mais avec une différence essentielle. Elles publient également le nombre maximum d'historiques autorisés dans chaque colonne à la fois. Cela renforce les limites déterminées par l'équipe que Kanban prescrit pour chaque condition. Étant donné que chaque colonne a un nombre limité d'historiques autorisés et qu'il n'y a pas de case horaire requise (comme la longueur du sprint), il n'y a aucune raison de réinitialiser le tableau Kanban au fur et à mesure que le travail progresse. Il continuera à circuler aussi longtemps que le projet se poursuivra, avec de nouveaux historiques ajoutés au fur et à mesure des besoins, et les historiques complétés seront réévalués si nécessaire.


Sources : Scrum Methodology, scrum guide, Cprime

Et vous ?

Entre les méthodologies Scrum et Kanban, laquelle préféreriez-vous et pourquoi ?

Voir aussi

Testez vos connaissances sur kanban
Scrum et les changements pendant un sprint


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de silicoman silicoman - Nouveau membre du Club https://www.developpez.com
le 15/05/2018 à 10:39
je mettrais un petit warning sur l'article. Personnellement, je considère qu'il n'y a pas de meilleure méthodologie. Choisir une méthodologie dépend de la culture de l'entreprise et donc du management.
Avatar de Bono_BX Bono_BX - Membre confirmé https://www.developpez.com
le 15/05/2018 à 11:31
Il est dommage de confondre SCRUM et Agile. Il existe en effet d'autres méthodes Agile, moins contraignantes que SCRUM, comme par exemple XP.
Sinon je suis d'accord avec silicoman, il n'y a pas vraiment de meilleure méthode que d'autre. Le contexte de l'entreprise et du projet y sont pour beaucoup.
Avatar de Saverok Saverok - Expert éminent https://www.developpez.com
le 15/05/2018 à 11:38
Citation Envoyé par Bill Fassinou Voir le message
Entre les méthodologies Scrum et Kanban, laquelle préféreriez-vous et pourquoi ?
La meilleure méthode est celle où l'ensemble des intervenants du projet est à l'aise.
Il est indispensable que le CP (ou scrum master pour reprendre le terme de la méthode) maîtrise parfaitement sa méthode et sache la partager avec l'ensembles des intervenants du projets et pas uniquement l'équipe technique comme on le voit souvent car en Agile, la participation des équipes métiers et des utilisateurs est indispensable.
Du coup, une méthode trop rigide et/ou mal comprise va plus gêner qu'autre chose.

Personnellement, je n'applique aucune méthode Agile au sens strict mais mélange de tout ce que j'y aie trouvé de bien et qui s'appliquent dans le context de mon projet et de mon équipe.
Avatar de pyros pyros - Membre éprouvé https://www.developpez.com
le 15/05/2018 à 12:08
Je suis "Scrum Master" depuis quelques année maintenant après avoir été dev et un peu Product Owner et je dois dire que Scrum est plutôt bien appliqué dans ma boite. Cependant, plus ça vas, moins je suis convaincu par cette méthodes. Ce que j'en retiens:

- L'agilité permet de supprimer le middle management. Donc moins de manager, moins de "gros" salaire à payer et un plafond de verre s'installe entre l'équipe Dev/SM/PO et le management d'en haut.
- Le PO ne produit rien. Si le projet est en retard, ce n'est pas de sa faute, c'est les dev qui ne respectent pas leurs évals.
- Le Scrum Master n'a pas vraiment d'objectif défini. Il peu se contenter de glander la journée en lisant des blog sur l'agilité et de poser les réunions de rétro/review toutes les 2 semaines.
- L'équipe de dev "a le droit de se tromper". Si elle est dans les choux, "Une éval est par essence imprécise", ou alors "la vélocité est faite pour évoluer avec le temps." Bref, tout un tas d'excuse pour ne pas prendre ses responsabilités.
- Les développeurs sont interchangeable. Il n'y a pas de notion d'expert technique dans Scrum ou dans Kanban, l'expertise n'est pas valorisé et on encourage la polyvalence plutôt que la spécialisation. On se retrouve alors avec des développeurs moyens dans des équipes moyennes qui font du code moyen.
- Il n'y a pas de "Décideur", ou "Leader" identifié parmi les dev. Si l'équipe n'arrive pas a un consensus sur une solution technique, on s'embourbe dans des discussions interminables car personne n'a la responsabilité de trancher.
- L'agilité est devenue une véritable pompe à fric. Entre le prix de certains outils, le prix des formations, le prix pour passer les certif SM, PO, etc...

Je ne connais pas assez bien Kanban pour voir s'il y a les même dérive avec cette méthode. Quelqu'un pratiquant Kanban pourrait-il me donner son avis ?
Avatar de Bayard Bayard - Membre confirmé https://www.developpez.com
le 15/05/2018 à 14:51
J'ai quelques années Agile au compteur et mon point de vue est qu'il n'y a pas une méthode meilleure qu'une autre.
Néanmoins, si je dois dégager des avantages:
  • Scrum: Déterminisme. Ceci sera apprécié dans l'industrie. Une ligne de production dans une usine ou du logiciel dans des délais de livraison contraints.
  • Kanba: Souplesse. Pour du logiciel où on a un peu plus le droit à l'erreur (l'IHM d'un site Web par exemple). Cette méthodologie suggère une Polyvalence des métiers (ceux qui font et ceux qui testent doivent pouvoir se remplacer afin qu'il n'y ait pas de bottleneck).


Le déterminisme plaira à la direction. La souplesse au client.
Le déterminisme a un coût (formation, écriture des User Stories avec leurs estimations...). C'est un investissement.
Si vous n'avez pas de budget, commencez par un KanBan.
Avatar de Pierre Louis Chevalier Pierre Louis Chevalier - Expert éminent https://www.developpez.com
le 15/05/2018 à 15:05
Les développeurs préfèrent Kanban mais les employeurs préfèrent Scrum, pourquoi ? qui à raison qui à tord ?

Une recherche sur https://emploi.developpez.com donne :

Agile : 1913 résultats
Scrum : 950 résultats
Kanban : 69 résultats
Avatar de ShigruM ShigruM - Membre du Club https://www.developpez.com
le 15/05/2018 à 17:56
moi je fais de l'hybride, un mélange de scrum et kanban.
Les 2 de toute manière sont très proche je pense pas que se soit pertinent d'avoir un débat la dessus

Dans méthode Agile, il y'a "Agile" et pour moi la regle numéro 1 c'est d’être agile, ne pas suivre a la lettre les process définis dans les manifestes mais de les adapter. Si un truc ne nous conviens pas on jette ou on modifie.

un exemple tous bete, la petite réunion le matin, on la fais que 2 fois/semaine parchment a estimé que c'étais de la réunionite 1 fois/jours
Avatar de UNi[FR] UNi[FR] - Membre averti https://www.developpez.com
le 15/05/2018 à 23:23
je suis sidéré par cet article. Scrum n'est aucunement une méthode, c'est une abération que de pretendre le contraire. il s'agit d'un cadre de travail (framework). c'est comme si l'on parle d'ustensiles de cusisine en tant que méthode a la place d'une recette. Scrum founit des outils ce n'est pas une recette a suivre a la lettre et qui va faire que le projet/produit sera par magie réussi. c'est malheureusement ce genre d'article qui donne une mauvaise image de l'agilité. on ne parle pas de méthodes Agiles mais plutôt de culture agile. c'est une fassons de penser qui propose tout un éventail d'outils et de méthode adaptés a des situations/organisations différentes
Avatar de Pierre Louis Chevalier Pierre Louis Chevalier - Expert éminent https://www.developpez.com
le 15/05/2018 à 23:47
En fait tu as lu que le titre pas l'article ? Dans l'article on lit :

Qu'est-ce que Scrum?

Scrum est un schéma d’organisation de développement de produits complexes. Il est défini par ses créateurs comme un « cadre de travail holistique itératif qui se concentre sur les buts communs en livrant de manière productive et créative des produits de la plus grande valeur possible ». Il est considéré comme un groupe de pratiques répondant pour la plupart aux préconisations du Manifeste Agile
Avatar de Saverok Saverok - Expert éminent https://www.developpez.com
le 16/05/2018 à 10:17
Citation Envoyé par UNi[FR] Voir le message
je suis sidéré par cet article. Scrum n'est aucunement une méthode, c'est une abération que de pretendre le contraire.
Tu confonds le Manifeste Agile (ou Agile Manifesto, écrit en 2001) qui décrit parfaitement bien le concept de l'agilité dans les projets et les différentes implémentations de ce manifeste dont SCRUM et Kanban qui sont bien des méthodes de travail.

Comme il est stipulé dans ce manifeste, l'agilité implique de s'adapter et donc, de ne pas appliquer bêtement et aveuglement une méthode en dépit du bon sens et du contexte du projet, de l'équipe et de l'entreprise.
Raison pour laquelle nous sommes invités à prendre du recul par rapport aux différentes implémentations du manifeste et de n'y prendre que ce qui nous intéresse.

Donc oui, SCRUM et Kanban sont bien des méthodes issues de l'Agile.
Et non, elles ne sont pas à appliquer strictement.

J'ai eu l'occasion de rencontrer un "évangéliste de SCRUM" (il se définissait lui-même ainsi) qui n'avait rien compris au sens du manifeste et prônait une application radicale de SCRUM.
Comme l'indique parfaitement le titre qu'il se donne, il s'agit d'une fanatique écervelé qui n'a rien compris au sens de ce qu'il prétend défendre et enseigner.
Malheureusement, ce type d’extrémistes sont parfois de très bons orateurs et ils ne savent que trop bien vendre leur soupe à certains décideurs qui n'y connaissent pas grand chose.
Contacter le responsable de la rubrique Accueil