Blog

Méthodologie agile avec Scrum et Kanban

Le développement d’applications web a subi de nombreuses évolutions ces dernières années, beaucoup d’entre elles sont d’ordre technologique et d’autres d’ordre organisationnel. Les langages évoluent, leurs performances ainsi que leurs versions. Au fur et à mesure, des métiers se créent et se transforment. Les méthodologies agiles peuvent vous aider à mieux appréhender ces évolutions et répondre de manière proportionnelle et efficace.

Méthodologie agile scrum

 

Là où l’apprentissage d’un langage est quelque chose de plutôt terre-à-terre, dépendant entre autres de la complexité de celui-ci et du niveau de compétence initial du développeur / intégrateur, les méthodologies de développement et le pilotage de projet web sont plus difficiles à appréhender car ils véhiculent un facteur humain et financier plus important et surtout plus instable.

Si on fait l’analogie avec l’industrie automobile, lorsque vous êtes sur une chaîne d’assemblage, l’ingénierie a été déjà figée en amont et la phase opérationnelle consiste simplement à assembler des pièces sur un châssis (portes latérales, vitres, moteur, etc).
Le processus est maîtrisé de bout en bout et les imprévus sont minimes. L’assemblage est bien rôdé et efficace car il est industrialisé, et au moment de celui-ci, l’acheteur du véhicule ne peut plus demander une voiture 3 portes plutôt qu’une 5 portes ou une couleur rouge plutôt que noire.

Imaginons que l’on donne la possibilité du changement lors de l’assemblage, nous entrons dans une méthodologie sur-mesure qui de fait réduira la quantité de voitures qui sortiront assemblées de l’usine en fin de journée. Ce serait peu viable et les techniciens sur la chaîne seraient amenés à faire et à défaire leur travail. Cela semble peu imaginable.

Dans les développements logiciels (applications web, applicatifs métiers, applications mobiles), le client peut être amené à changer d’avis, il nous faut donc une méthodologie suffisamment agile pour répondre à ces changements.

Cela peut arriver pour plusieurs raisons qui pour le prestataire semblent justifiées ou non. Parfois au commencement le client ne sait pas du tout ce qu’il souhaite, il a simplement une vague idée et c’est là qu’est la valeur ajoutée d’aroban : définir le besoin et formaliser les demandes. Mais le changement peut également venir par la suite où une information nouvelle peut chambouler une fonctionnalité. Ces changement peuvent se produire y compris lorsque les spécifications semblent verrouillées relativement tôt. L’inertie liée au développement web peut voir le besoin évoluer entre temps (changement de process chez le client, changement de personnel chez le client, etc).

Ce qu’il faut retenir, c’est que le changement est dans la nature même du développement internet : l’application web ou mobile évolue avec les besoins du donneur d’ordre, c’est un fait. Il faut donc mettre en place une gestion du changement.

Il faut arriver à faire en sorte que le changement n’ait pas ou peu d’impact et qu’il ne se produise pas pendant la phase opérationnelle (la chaîne d’assemblage des voitures), il peut évoluer entre deux fonctionnalités pour définir le périmètre des suivantes, mais ne doit plus bouger lorsque le développement de la fonctionnalité est lancée.

Les méthodologies agiles telles que Scrum, Kanban ou ScrumBan définissent un ensemble de bonnes pratiques pour améliorer la spécification du périmètre fonctionnel et faire en sorte que les évolutions et changements ne soient plus un problème. Ces concepts sont fiabilisés et aidés grâce à des technologies d’intégration continue, de déploiement continu et d’industrialisation.

L’idée est de travailler sur des petites fonctionnalités pour lesquelles il est plus facile de déterminer le périmètre fonctionnel et de les enchaîner pour avoir un pilotage au plus près du projet et pouvoir corriger le tir au plus tôt.

Dans le case de Scrum, ces périodes de développement s’appellent des « sprints », où l’objectif est d’évaluer de manière raisonnable la quantité de travail que l’on peut achever pendant cette période et de s’y tenir. Le processus est itératif et pédagogique. Chaque sprint permettra d’engendrer de l’expérience et d’être plus efficace au suivant.

De plus, en produisant des fonctionnalités sur une cadence donnée, vous serez en mesure de livrer plus rapidement et plus souvent des fonctionnalités prêtes à l’emploi pour vos clients. Celui-ci sera impliqué et ne vous en sera que plus reconnaissant.

En résumé, les méthodologies agiles permettent d’avoir de la souplesse dans la gestion de votre projet tout en améliorant son pilotage, de mesurer votre productivité, et de neutraliser la peur du changement et les spécifications monolithiques immuables.

Nous verrons dans un prochain article les composantes d’un sprint et la gestion de cette phase opérationnelle primordiale.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

seize − 5 =

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.