Méthodes et cadres de travail Agile

Cadre de travail SCRUM

Cadre de travail SCRUM

SCRUM est le plus emblématique et le plus utilisé des cadres de travail et méthodes Agile.

Une grande partie des principes définis dans SCRUM sont déclinés dans le manifeste Agile.

Les rôles et responsabilités dans SCRUM

SCRUM prône 3 rôles : le Development Team ou équipe de développement, le Product Owner ou responsable produit et enfin le Scrum Master ou facilitateur. Les pratiques communes Agile sont 100 % en ligne avec les rôles définis dans SCRUM.

Les réunions SCRUM

SCRUM prône 4 types de réunions : le Sprint Planning Meeting ou réunion de planification du sprint, le Daily Scrum ou réunion journalière, la Sprint Review ou réunion de fin de sprint et enfin la Sprint Rétrospective ou réunion d'introspection.

Les processus SCRUM

SCRUM recommande des sprints de durée courte, soit 1 à 4 semaines maximum. Les pratiques communes Agile sont bien entendu en ligne avec les processus SCRUM.

SCRUM de SCRUM ou SCRUM Of SCRUM

SCRUM étant limité aux petits projets petites équipes, le cadre de travail SCRUM propose le principe SCRUM de SCRUM pour étendre SCRUM aux gros projets, grosses équipes. SCRUM de SCRUM est basée sur les principes suivants :

  • Chaque team SCRUM désigne un représentant,

  • Plusieurs fois par semaine, tous les représentants se réunissent pour partager ce qui a été fait, ce qui va être fait et les problèmes.

Cette méthode peut encore être étendue, par exemple en SCRUM de SCRUM de SCRUM comme le présente le schéma suivant.

Méthode CRYSTAL

Crystal est un ensemble de 7 méthodes définies par des couleurs qui vont du Crystal Clear pour les petites équipes et petits projets au Crystal Sapphire pour les grandes équipes et les gros projets.

Chacune de ces méthodes respecte les principes fondamentaux de l'agilité tels que livraison fréquente de valeur, accès facilité aux utilisateurs ou à leurs représentants, communication étroite avec le client, ou encore les processus d'introspections.

Suivant la méthode utilisée, et donc la taille du projet et sa criticité, Crystal imposera des rôles additionnels comme un chef de projet ou un architecte de solution, une durée de sprint, une liste de documents à produire comme par exemple un guide utilisateur.

Pour une équipe de petite taille, la méthode Crystal est très proche des standards de l'agilité. Par contre, Crystal se rapproche des méthodes traditionnelles au fur et à mesure de l'accroissement de l'équipe ou de la criticité du projet.

Méthode Kanban

La méthode Kanban est une méthode d'optimisation des flux créée dans les années 50 pour améliorer les processus et la capacité de production de Toyota. Cette méthode devait permettre à Toyota d'être compétitif par rapport à l'industrie automobile Américaine. Cette optimisation est basée sur le principe du « Juste à temps » dans lequel l'organisation est capable de produire à la demande. Le but étant de créer l'équilibre entre la demande en aval et la production en amont sans avoir à augmenter le volume des stocks.

Exemple

Il s'agit donc bien d'adapter la production à la demande, par exemple en ne fabriquant une automobile que lorsque le client la commande.

Cette méthode implique bien entendu une qualité sans faille pour fonctionner et des processus bien rodés.

Kanban est supportée par un outil de visualisation du flux. Cet outil est le tableau Kanban.

Ce tableau sépare les fonctionnalités suivant leur état dans la chaîne de développement. Les états couramment utilisés dans les développements informatiques sont : fonctionnalités en attente de développement, en développement, en test et finalement fonctionnalités délivrées au client.

Pour chaque état, Kanban fait bien la distinction entre état en cours ou état terminé. Par exemple, test en cours ou test terminés. Pour plus de facilités, des stickers sont utilisés.

Exemple

Le tableau ci-dessous est un exemple de tableau Kanban.

Les tableaux Kanban avec stickers papiers, peuvent aussi être simulés avec des outils informatiques comme Trello.

Les tableaux Kanban permettent non seulement de suivre le flux, mais aussi de comprendre collectivement, les raisons qui font qu'une fonctionnalité ne progresse pas comme souhaité. Cette compréhension permettra ensuite d'identifier et de mettre en place les améliorations.

Méthode XP

XP veut dire eXtreme Programming en anglais. Comme son nom l'indique, cette méthode fait une large place aux recommandations techniques de programmation.

Les plus connues des recommandations techniques sont :

  • Travail en binôme : l'un code, le deuxième contrôle. Les rôles changent souvent.

  • Standard de programmation, de développement et de langage de communication.

  • Intégration en continu des fonctionnalités dans le programme global.

  • Livraisons fréquentes, ce qui implique des sprints courts.

  • Tests unitaires pour chaque fonction.

  • Tests d'intégration quand on ajoute une fonction au programme global.

  • Conception simple des programmes.

  • Développement dirigé par les tests : les tests sont définis, codés avant le programme lui-même.

  • Appropriation collective du programme : tous les membres de l'équipe sont en mesure de travailler sur n'importe quelle partie du code.

XP insiste sur la mise en place d'un rythme de travail soutenable à l'infini, ce qui exclut toute idée de coup de feu ou d'heures supplémentaires.

Exemple

XP sera, par exemple, une méthode intéressante pour du développement informatique complexe qui nécessite un cadre technique pour supporter au mieux le travail de l'équipe.

Autres méthodes

D'autres méthodes existent sur le marché. Pour n'en citer que quelques-unes :

  • Méthodologie Feature Driven Development (FDD). FDD décrit plusieurs rôles organisés de manière hiérarchique dont le chef de projet, l'architecte principal, le responsable du développement et le référent technique.

  • FDD décrit un modèle de développement basé sur la fonction comportant 5 étapes.

    1. Création d'un modèle global de l'application.

    2. Liste des fonctionnalités à développer à partir du modèle.

    3. Définition du plan de développement et assignation des développeurs.

    4. Conception des fonctionnalités

    5. Développement des fonctionnalités.

  • Dynamics System Development Method (DSDM). Cette méthode recommande des sprints de 3 à 4 semaines.

  • Agile Unified Process (AUP) est basée sur 7 disciplines différentes qui vont de la modélisation de l'application à l'implémentation du code en passant par les tests, le déploiement, la gestion de la configuration et la gestion de projet.