Proposition pour l'Unification des Méthodes Agiles

PUMA
Proposition pour l' Unification des Méthodes Agiles

Un développement associant performance et qualité induit naturellement une conduite de projet itérative incrémentielle associée à un phasage simple. UML fut le révélateur de cette nécessité méthodologique d'un couplage fort entre la forme de modélisation et le développement par prototypage. A l'origine de ces principes pragmatiques, la méthode RAD de James Martin. A ce jour, une dizaine de méthodes répondent à ces critères et se réclament du qualificatif d'Agile (lire : Méthodes Agiles, des approches modernes dérivées du RAD . )

Les principales méthodes Agiles sont Adaptative Software Development (ASD) , Feature Driven Development (FDD), Crystal Clear, Dynamic Software Development Method (DSDM), Rapid Application Development (RAD), Scrum, Xtreme Programming (XP) et, bien que ce produit soit propriétaire, Rational Unified Process (RUP). Heureusement, ces méthodes sont relativement similaires et la plupart des valeurs et techniques qu'elles préconisent sont communes. Une étude des principes proposés révèle un tronc commun issu des racines du RAD. Seules des techniques complémentaires les unes aux autres ou mieux adaptées à des typologies et à des tailles de projets spécifiques les différencient. Voici les 4 principes de base de ces méthodes Agiles :

1 - Les méthodes " Agiles " privilégient la communication et l'interaction qui en résulte, à la contractualisation des spécifications.

2 - Les méthodes " Agiles " favorisent la compétence et l'implication des ressources, au respect de processus formel et d'une vision " outillée " à l'extrême des développements.

3 - Les méthodes " Agiles " privilégient la livraison de fonctionnalités réelles, à la production d'une documentation pléthorique.

4 - Les méthodes " Agiles " favorisent l'acceptation du changement et la modification des priorités (Time-Box, Task-Box), au respect d'une planification figée.

Prédictive / Adaptative

Le paradigme des méthodes classiques est la prédictivité.

Le paradigme des méthodes Agiles est l'adaptabilité.

Toutes les méthodes se situent concrètement à divers degrés sur une échelle les situant de la plus "prédictive" à la plus "adaptative".

Bien que similaires de par leurs principes et leurs pratiques communes, les méthodes Agiles offrent des couvertures plus ou moins complètes (figures précédente et suivante) en regard des préoccupations génériques d'un chef de projet :

1 - Respect de l'urbanisation (positionnement du projet dans le système d'information)

2 - Pilotage (gestion des ressources, planning, suivi, qualité, reporting, visibilité)

3 - Ingénierie de l'application (gestion Exigences, conception et développement, validation)

4 - Conduite du changement (impacts organisationnels et déploiement)

Figure 1. Couverture de la méthode à l'ingénierie de l'application et à la conduite du projet

 

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

  • Spécification et validation permanente des Exigences.
  • 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).
  • Niveau méthodologique variable en fonction des enjeux du projet.
  • Pilotage par les enjeux et les risques.
  • 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.
  • Planification stratégique globale basée sur des itérations rapides.
  • Réalisation en jalons par prototypage actif itératif et incrémental.
  • Normes et techniques raisonnables de qualité du code (métrique).
  • Architecture à base de composants, gestion des changements.
  • Recherche continue d'optimisation et d'amélioration des pratiques

  •  Pratiques différenciatrices à sélectionner en fonction du contexte projet

    Méthode

    Nom de la pratique

    Explication

    DSDM

    Notion de rôles

    Sponsor exécutif, ambassadeur utilisateur visionnaire, utilisateur conseiller, ... en plus du facilitateur et des rapporteurs (base du RAD).

    SCRUM

    Réunion Scrum

    Réunion quotidienne de motivation, de synchronisation, de déblocage et de partage de connaissances.

    FDD

    Mission focused

    Features driven

    Ambition globale d'une itération (RAD = objectif du Focus)(SCRUM = Le SPRINT suivi du Backlog)

    Feature et Features set : fonctionnalité et groupe de fonctionnalités). Priorité donnée aux fonctionnalités porteuses de valeur (RAD = livraison en fonctionnalité réduite, ou par thème).

    XP

    Planning game


    Binôme et code collectif


    Refactoring

    Intégration continue

    La planification se fait sous forme de jeu en impliquant utilisateurs et développeurs.

    Les développeurs XP travaillent en binôme : le Pilote et le Driver (RAD = limité au parties stratégiques).

    Refactoring : amélioration continue de la qualité du code (RAD = Pré-Focus).

    Intégration journalière (RAD = Pré-Focus)

    2TUP

    Cycle de vie en Y

    Framework et Design pattern

    Dissociation et parallélisation des aspects fonctionnels et techniques.

    Services réutilisables, conception générique (RUP = mécanisme architectural).

    RUP

    Vue 4+1


    Processus guide

     

    CCM

    5 vues synthèse de la modélisation (Cas d'utilisation, Logique, Implémentation, Processus, Déploiement).

    Comme RAD, mais propriétaire et orienté outil propriétaires, RUP propose un processus adaptable comme guide d'activité

    Management des changements

    RAD

    GAR

    Variabilité des groupes


    Validation permanente


    Salle RAD

    SWAT


    Sessions RAD

    GAR : groupe d'animation et de rapport.

    Dimension et maturité variable des groupes de travail en fonction des phases.

    Client sur site (comme pour XP).

    Salle RAD : plateau de communication disposant de matériel adéquat.

    SWAT: équipe de développement autonome, spécialement formée, concrètement motivée, outillée.

    Session : mode opératoire des séances de travail organisées en 3 étapes formelles.

    Proposition pour un usage optimum des méthodes Agiles

    Les pratiques communes et les pratiques différenciatrices ayant été isolées, il est aisé d'imaginer ce que devrait être la méthode optimale en fonctions d'un type de projet. Elle se composerait de l'ensemble ou d'une sélection des pratiques communes auxquelles il conviendrait d'ajouter la ou les pratiques spécifiques judicieuses en fonction du contexte. L'ensemble de ces aspects s'inscrivant obligatoirement dans un niveau variable de service méthodologique.



    (FR) PUMA Proposition initiale

    (EN) PUMA initial proposal


    (FR) PUMA Essentiel

    (EN) PUMA Essential

    (FR)PUMA Entreprise

    (EN)PUMA Enterprise
    www.RAD.fr ® © Jean-Pierre Vickoff