mercredi 3 août 2011

Méthodologie Agile/Scrum - Partie 2

Dans la première partie de cet article nous avons présenté les problèmes posés par les méthologies lourdes. Nous avons esquissé une présentation des méthodologies Agile. Dans cette seconde partie nous allons commencer avec le "Agile Manifesto" avant d'introduire la méthologie Scrum.
 
1) Le Manifeste AGILE

En 2001 plusieurs représentants de méthologies dites AGILE (XP, Scrum, DSM, etc.) se sont réunis pour discuter des méthologies de développement de logiciels. Ces personnes qui se sont données le nom de "Alliance Agile" ont alors produit puis cosigné le manifeste suivant, qui résumé les idées derrière les méthologies Agile :

« Nous découvrons comment mieux développer des logiciels  par la pratique et en aidant les autres à le faire. Ces expériences nous ont amenés à valoriser :
  1. Les individus et leurs interactions plus que les processus et les outils
     
  2. Des logiciels opérationnels plus qu’une documentation exhaustive
     
  3. La collaboration avec les clients plus que la négociation contractuelle
     
  4. L’adaptation au changement plus que le suivi d’un plan
    Nous reconnaissons la valeur des seconds éléments mais privilégions les premiers. »

    Traduction de l'anglais par le club Agile Rhones Alpes

    Des quatres principes édictés ci-dessus découle les 12 principes suivants :


    1. Notre plus haute priorité est de satisfaire le client en livrant rapidement et régulièrement des fonctionnalités à grande valeur ajoutée. 
    2. Accueillir positivement les changements de spécifications, même tard dans le projet. Les processus Agiles exploitent le changement pour donner un avantage compétitif au client.
    3. Livrer fréquemment un logiciel opérationnel avec des cycles de quelques semaines à quelques mois tout en préférant les cycles les plus courts.
    4. Les utilisateurs ou leurs représentants et les développeurs doivent travailler ensemble quotidiennement tout au long du projet.
    5. Réaliser les projets avec des personnes motivées. Leur fournir l’environnement et le soutien dont ils ont besoin. Leur faire confiance confiance pour atteindre les objectifs fixés.
    6. La méthode la plus simple et la plus efficace pour transmettre de l’information à l'équipe de développement et à l’intérieur de celle-ci est le dialogue en face à face. 
    7. Un logiciel opérationnel est la principale mesure d’avancement.
    8. Les processus Agiles encouragent un rythme de développement soutenu. Ensemble, les commanditaires, les développeurs et les utilisateurs devraient être capables de maintenir indéfiniment un rythme constant.
    9. Une attention continue à l'excellence technique et à une bonne conception renforce l’Agilité. 
    10. La simplicité – c’est-à-dire l’art de minimiser la quantité de travail inutile – est essentielle. 
    11. Les meilleures architectures, spécifications et conceptions émergent d'équipes autoorganisées. 
    12. À intervalles réguliers, l'équipe réfléchit aux moyens de devenir plus efficace, puis règle et modifie son comportement en conséquence.
    2) Quelques méthologies AGILE

    Le tableau suivant donne une liste des principales méthologies AGILE avec les noms des "guru" de ces méthodes, qui sont par ailleurs sigantaires du Manifeste Agile.


    MéthologieGuru
    XP (eXtreme Programming)Kent Beck
    DSM (Dynamic System Developement Method)Dane Faulkner
    FDD (Feature Driven Developement)Jeff Deluca
    ScrumKen Shwaber
    CrystalAlistair Cockburn
    Adaptive Software DevelopementJim Highsmith
    Lean software DevelopementMary Poppendieck

    Le graphe suivant donne une idée sur  le pourcentage des méthologies utilisées de part le monde, selon un rapport de Forester en 2008 :

    Les bénéfices des méthodologies AGILE peuvent ainsi se résumer :
    • Fournir l'aide pour effectuer les changements de spécifications et de priorités.
    • Minimiser le coût du changement
    • Fournir une meilleure visibilité sur la progression du projet
    • Minimiser les risques
    • Maximimser le Retour sur Investissement
    • Encourager un code plus simple et de meilleure qualité
    • Livrer de la valeur ajouté métier tôt et souvent
    Si les bénéfices des méthodes AGILE peuvent séduire, il y a cependant quelques conditions nécessaires à leur réussite :
    • Implication constante des responsables métier
    • Besoin de plus de discipline
    • Accent mis sur les tests
    • Equipe de développement compétente
    • Equipe de développement multi-disciplinaire
    3) Introduction à SCRUM

    SCRUM comporte 3 rôles, 3+1 activités et 3+1 documents.

    Les rôles SCRUM :
    1. Product Owner
    2. Scrum Master
    3. Scrum Team Member
    Les activités SCRUM :
    1. Planification du Sprint 
    2. Scrum quotidien
    3. Revue du sprint
    4. Rétrospective du sprint
    Les documents SCRUM :
    1. Product Backlog
    2. Sprint Backlog
    3. Diagramme Burn down
    4. Liste des obstacles
    Dans le text ci-dessus, le mot  "Sprint" correspond à une itération au sens SCRUM.

    Tous les éléments ci-dessus seront détaillés dans la troisième partie de cet article. Terminons celui-ci par une description globale du processus SCRUM :
    Source : Paul J. Pazderski, Manifesto for Agile Software Developement

    La liste des fonctionnalités se trouve dans le "product Backlog". On extrait les fonctionnalités à réaliser dans un Sprint et on les rajoute dans le "Sprint Backlog". Après réalisation, ces fonctionnalités viennent enrichir  les versions successives et opérationnelles du logiciel.

    Aucun commentaire:

    Enregistrer un commentaire