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...
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.

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