Archives pour la catégorie Méthode Agile

Pratiques différenciatrices des méthodes Agiles

Seules quelques techniques complémentaires entre elles, ou mieux adaptées à des typologies et à des tailles de projets spécifiques, différencient les méthodes Agiles (y compris ASD ou Crystal Clear).

Les pratiques différenciatrices les plus marquantes sont :

  • La méthode DSDM se particularise par la spécialisation des acteurs du projet dans une notion de « rôles ». Ainsi, l’on trouvera dans les réunions DSDM des sponsors exécutifs, des ambassadeurs, des utilisateurs visionnaires, des utilisateurs conseillers, sans oublier l’animateur-facilitateur et des rapporteurs.
  • La méthode Scrum affirme sa différence dans des pratiques de courtes réunions quotidiennes (Stand-Up meeting). Ces temps de travail commun ont pour objectifs d’améliorer la motivation des participants, de synchroniser les tâches, de débloquer les situations difficiles et d’accroître le partage de la connaissance.
  • Pour FDD, la particularité nommée Mission focused réside dans une forte orientation vers un but immédiat mesurable guidé par la notion de valeur métier. C’est en fait l’ambition globale d’une itération qui se trouve ainsi renforcée. Cet aspect se retrouve aussi dans la méthode RAD sous la forme des objectifs de Focus ou dans Scrum dans la notion de Sprint. FDD préconise aussi le Features Driven Development. Cette technique se caractérise par des notions de Feature et de Features set (fonctionnalités et groupes de fonctionnalités). La priorité est donnée aux fonctionnalités porteuses de valeur. Le RAD propose des techniques proches : livraison en fonctionnalité réduite ou livraison par thèmes.
  • XP (extreme programming) est très axé sur la partie Construction de l’application. Une de ses originalités réside dans l’approche de planification qui se matérialise sous la forme d’un jeu intitulé Planning game et qui implique simultanément les utilisateurs et les développeurs. On notera aussi des techniques particulières liées à la production du code comme la programmation en binôme (Pair programming), l’appropriation collective du code, la Refactorisation (refactoring) et l’ Intégration continue. La méthode RAD préconise dans ce sens des revues de code personnelles, puis collectives et l’intégration avant chaque Focus (ou Show). Par contre, le RAD limite la programmation en binôme aux parties les plus stratégiques.

Tronc des pratiques communes à l’ensemble des méthodes Agiles

  1. Les pratiques communes liées aux ressources humaines
    • Participation de l’utilisateur final aux groupes de travail.
    • Groupes de travail disposant du pouvoir de décision.
    • Autonomie et organisation centralisée de l’équipe (motivation).
    • Spécification et validation permanente des Exigences.
  2. Les pratiques communes liées au pilotage du projet
    • Niveau méthodologique variable en fonction des enjeux du projet.
    • Pilotage par les enjeux et les risques.
    • Planification stratégique globale basée sur des itérations rapides.
    • Réalisation en jalons par prototypage actif itératif et incrémental.
    • Recherche continue d’amélioration des pratiques.
  3. Les pratiques communes liées à la qualité de la production
    • Recherche d’excellence technique de la conception.
    • Vision graphique d’une modélisation nécessaire et suffisante.
    • Vision de la documentation nécessaire et suffisante.
    • Normes et techniques raisonnables de qualité du code (métrique).
    • Architecture à base de composants.
    • Gestion des changements automatisée.

Méthodes Agiles reconnues par date de publication officielle

Organisation

L’Agile Alliance est une organisation sans but lucratif chargée de promouvoir à l’échelle mondiale les valeurs et principes du Manifeste Agile.

Méthode agile

Les méthodes agiles sont des groupes de pratiques pouvant s’appliquer à divers types de projets, mais se limitant plutôt actuellement aux projets de développement en informatique (conception de logiciel). Les méthodes agiles se veulent plus pragmatiques que les méthodes traditionnelles. Elles impliquent au maximum le demandeur (client) et permettent une grande réactivité à ses demandes. Elles visent la satisfaction réelle du besoin du client et non les termes d’un contrat de développement. La notion de méthode agile a été officialisée en 2001 par un document, le Manifeste Agile (Agile Manifesto), signé par 17 personnalités impliquées dans l’évolution du génie logiciel, en particulier, en tant qu’auteur de leur propre méthode.

Les méthodes agiles et les pratiques qu’elles recouvrent seraient antérieures au Manifeste Agile, qui ne serait donc pas l’acte de naissance des méthodes agiles ou du mouvement agile, mais la formalisation consensuelle par les auteurs de ces méthodes, toutes nées dans la deuxième partie de la décennie 90, du fait qu’elles avaient des valeurs communes, une structure (cycle de développement) commune (itérative, incrémentale et adaptative) et une base de pratiques, soit communes, soit complémentaires. Parmi ces méthodes on trouve en premier lieu la méthode RAD (Développement rapide d’applications) de James Martin (1991), puis DSDM, la version anglaise du RAD (1995). Plusieurs autres méthodes comme ASD ou FDD reconnaissent leur parenté directe avec RAD (que certains de ses promoteurs présentent comme la première méthode agile publiée). Les deux méthodes agiles les plus connues en France sont : la méthode Scrum (1996) et la méthode XP, pour Extreme programming (1999).

Agile (adaptatif) = itératif, incrémental. Une méthode agile est donc avant tout itérative sur la base d’un affinement du besoin mis en œuvre dans des fonctionnalités en cours de réalisation et même déjà réalisées. Cet affinement, indispensable à la mise en œuvre du concept adaptatif, se réalise en matière de génie logiciel sous deux aspects :

  • fonctionnellement, par adaptation systématique du produit aux changements du besoin détecté par l’utilisateur lors de la conception-réalisation du produit (notion de validation permanente de l’utilisateur avec RAD et notion de conception émergente avec XP) ;
  • techniquement, par remaniement régulier du code déja produit (refactoring).

Une méthode agile est ensuite, éventuellement, incrémentale. Lorsque le projet, quel que soit le nombre de participants, dépasse en durée une dizaine de journées en moyenne, la production de ses fonctionnalités s’effectuent en plusieurs incréments.

La notion de méthode agile a émergé avec des pratiques ciblant uniquement le développement d’une application informatique. Mais un mouvement managérial plus large (management agile) commencerait à coupler les valeurs agiles aux techniques de l’amélioration continue de la qualité (MTQS ou Lean).

Résumé de la mise en pratique

Le développement Agile, appelé aussi développement adaptatif, se caractérise donc par un style de conduite de projet itératif incrémental, centré sur l’autonomie des ressources humaines impliquées dans la spécification, la production et la validation d’une application intégrée et testée en continu (Méthode Agile).

C’est à partir de ces réalités pratiques, et non pas sur la base d’une théorie globale ou structurante, que l’Agilité progresse vers les sphères les plus hautes de l’organisation

Les 12 principes

  • Notre première priorité est de satisfaire le client en livrant tôt et régulièrement des logiciels utiles.
  • Le changement est accepté, même tardivement dans le développement. Les processus agiles exploitent le changement comme avantage compétitif pour le client.
  • Livrer fréquemment une application fonctionnelle, toutes les deux semaines à deux mois, avec une tendance pour la période la plus courte.
  • Les experts métier et les développeurs doivent collaborer quotidiennement au projet.
  • Bâtissez le projet autour de personnes motivées. Donnez leur l’environnement et le soutien dont elles ont besoin, et croyez en leur capacité à faire le travail.
  • La méthode la plus efficace pour transmettre l’information est une conversation en face à face.
  • Un logiciel fonctionnel est la meilleure unité de mesure de la progression du projet.
  • Les processus agiles promeuvent un rythme de développement durable. Commanditaires, développeurs et utilisateurs devraient pouvoir maintenir le rythme indéfiniment.
  • Une attention continue à l’excellence technique et à la qualité de la conception améliore l’agilité.
  • La simplicité – l’art de maximiser la quantité de travail à ne pas faire – est essentielle.
  • Les meilleures architectures, spécifications et conceptions sont issues d’équipes qui s’auto-organisent.
  • À intervalle régulier, l’équipe réfléchit aux moyens de devenir plus efficace, puis accorde et ajuste son comportement dans ce sens.

Les 4 valeurs

Les quatre valeurs fondamentales Agiles sont de valoriser

  • l’interaction avec les personnes plus que les processus et les outils.
  • un produit opérationnel plus qu’une documentation pléthorique.
  • la collaboration avec le client plus que la négociation de contrat.

la réactivité face au changement plus que le suivi d’un plan.

Introduction

Les méthodes agiles sont des groupes de pratiques pouvant s’appliquer à divers types de projets, mais se limitant plutôt actuellement aux projets de développement en informatique (conception de logiciel). Les méthodes agiles se veulent plus pragmatiques que les méthodes traditionnelles. Elles impliquent au maximum le demandeur (client) et permettent une grande réactivité à ses demandes