Upload
nicolas-perriault
View
22.290
Download
0
Embed Size (px)
DESCRIPTION
Petit tout d'horizon des méthodologies de gestion de projet agiles, avec un focus mis sur XP et Scrum.
Citation preview
Méthodes et Processus Agiles
Ecole Informatique IN2P3 2008
Agile ?
• Une méthode agile est une approche itérative et incrémentale, qui est menée dans un esprit collaboratif avec juste ce qu’il faut de formalisme
• Elle génère un produit de haute qualité tout en tenant compte de l’évolution des besoins client
Agile ?
• Modèle de développement à l’opposé du modèle en cascade ou du modèle en V, généralement basés sur le forfait
Agile ?
• Beaucoup de méthodes et techniques dites agiles existent !
• XP, Scrum, RAD, DSDM, ASD, FDD, Crystal Clear, PUMA, AUP, etc.
Agile ?• Courant issu du Manifeste Agile
• L’interaction avec les personnes plutôt que les processus et les outils
• Une production opérationnelle plutôt qu’une documentation pléthorique
• La négociation avec le client plutôt que le respect d’un contrat
• La collaboration au changement plutôt que le suivi du plan
Agile Manifesto
• 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 gens de l'art 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 de 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 soutenable. 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.
Méthodologie XP
eXtreme Programming
• Réconcilier l´humain avec la productivité
• Voie d'amélioration
• Style de développement
• Discipline de développement d´applications informatiques
Objectif Principal
Réduire les coûts du changement
• Revues de code permanentes
• Développement pilotés par les tests
• Conception au cours du projet (refactoring)
• Privilégier systématiquement la méthode la plus simple
• Utiliser des métaphores pour faciliter la communication
• L’intégration des modifications se fait quotidiennement, voire plusieurs fois par jour
• Les cycles de développement seront réduits au plus court
Cycles XP
Exploration
Attribution de Tâches Développement
Création de Tests Fonctionnels
Livraison & feed-backClient
Programmation par Paire
• Deux développeurs échangent et corrigent mutuellement leur code
• Variante: l’un implémente les fonctionnalités pendant que l’autre code les tests nécessaires
• Qualité optimale !
Tests unitaires et fonctionnels
• Développement piloté par les tests (TDD)
• Etablir un contrat fonctionnel pour l’application d’abord
• Développer ensuite
Intégration Continue
• Garant de l’intégrité des développements au cours des itérations
• Favorise la réactivité
• Instaure un contrôle continu de la qualité
Cas Défavorables de mise en œuvre d’XP
• Blocage culturel
• Grandes équipes de développement
• Feedback long et difficile à obtenir
• Impossibilité de fonctionner en binômes
Méthodologie Scrum
Scrum ?
• Méthodologie de gestion de projet
• Issue du terme “mêlée” (Rugby) en anglais
• Avancer ensemble vers un but commun
• Pas fondamentalement liée au développement logiciel
• Bon complément à XP
Objectifs de Scrum
• Focaliser l’équipe sur la réalisation d’objectifs dans un cycle itératif
• Itérations de 30 jours appelées Sprint, chacune possédant son un périmètre fonctionnel délimité
• Comme avec XP, la participation du client est prépondérante
Idées Clé
• Le client est au cœur du projet
• Esprit d’équipe
• La communication est la clé
• Simplicité, Efficacité, et Qualité
• Flexibilité aux changements
• Avancement basé sur le concret
Rôles
• Product Owner (ou Directeur Produit)C’est le représentant des clients et des utilisateurs
• Scrum MasterEst chargé de protéger l'équipe de tous les éléments perturbateurs extérieurs à l'équipe et de résoudre ses problèmes non techniques
Rôles
• EquipeAuto-gérée, elle s'adresse directement au Directeur de produit.
• Intervenants (Stakeholders)Personnes qui souhaitent avoir une vue sur le projet sans réellement s'investir dedans (experts, agents de direction)
Processus
Clients Intervenants extérieurs
Directeur de Produit
Equipe
ScrumM
aster
Elémentsperturbateurs Equipe étendue
Projet
Planification
Release
Sprint Sprint Sprint Sprint
Release
Sprint Sprint Sprint
Produit partiel, testéet utilisable
Version finalisée
Produit partiel, testéet utilisable
...
Le Sprint
• 30 jours calendaires (~2 à 4 semaines en réalité)
• Associé à un but, matérialisé par la réalisation d’un certain nombre d’items du backlog produit
Backlog Produit
• Liste des éléments fonctionnels à implémenter
• Chaque élément du backlog est noté deux fois en termes d’importance :
• Le Product Owner lui attribue une valeur client
• Une estimation en points arbitraires est faire par l’équipe (ex. Fibonacci)
Backlog Produit
• Les items du backlog de produit peuvent être réordonnés, ajoutés ou supprimés d’un sprint - si les conditions l’exigent et après concertation de l’Equipe Etendue
Backlog Produit
Backlog de Sprint
• L’équipe sélectionne les items du backlog produit à prendre en charge pour le sprint
• Chaque item est décomposé en tâches dont la durée ne doit jamais excéder deux jours
• Chaque tâche traitée donne lieu à une mise à jour du backlog de sprint
Backlog de Sprint
Sprint Burndown Chart
• C’est la somme des heures des items du backlog de sprint, soit le reste à faire total du sprint
• Il montre le reste à faire au fur et à mesure de l’avancement du sprint
Vélocité
• Une fois un sprint terminé, on peut calculer la vélocité de l’équipe, et estimer la charge des prochains sprint d’une façon de plus en plus fiable
Daily Scrum
• C’est une réunion quotidienne de 15 minutes maximum destinée à faire un point sur l’avancement du sprint
• Chaque membre répond à 3 questions :
• Qu'est-ce que j'ai fait hier ?
• Qu'est-ce que je compte faire aujourd'hui ?
• Quelles difficultés est-ce que je rencontre ?
Revue de Sprint
• A la fin d’un sprint, c’est une réunion de quelques heures destinée à comprendre ce qui n’a pas marché quand c’est le cas
• Il faut en tirer des axes d’amélioration pour les sprints suivants, et adapter le backlog produit en conséquence
Eléments Déterminants
• Travailler dans la même pièce
• Equipe idéale constituée de 4 développeurs
• Tableau blanc, post-its
• Calme
Questions ?