
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 :
[LIST]
[*]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...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.