Methodologies de Developpement Agiles : Scrum et XP

53
Méthodes et Processus Agiles Ecole Informatique IN2P3 2008

description

Petit tout d'horizon des méthodologies de gestion de projet agiles, avec un focus mis sur XP et Scrum.

Transcript of Methodologies de Developpement Agiles : Scrum et XP

Page 1: Methodologies de Developpement Agiles : Scrum et XP

Méthodes et Processus Agiles

Ecole Informatique IN2P3 2008

Page 2: Methodologies de Developpement Agiles : Scrum et XP

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

Page 3: Methodologies de Developpement Agiles : Scrum et XP

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

Page 4: Methodologies de Developpement Agiles : Scrum et XP

Agile ?

• Beaucoup de méthodes et techniques dites agiles existent !

• XP, Scrum, RAD, DSDM, ASD, FDD, Crystal Clear, PUMA, AUP, etc.

Page 5: Methodologies de Developpement Agiles : Scrum et XP

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

Page 6: Methodologies de Developpement Agiles : Scrum et XP

Agile Manifesto

Page 7: Methodologies de Developpement Agiles : Scrum et XP

• Notre première priorité est de satisfaire le client en livrant tôt et régulièrement des logiciels utiles.

Page 8: Methodologies de Developpement Agiles : Scrum et XP

• Le changement est accepté, même tardivement dans le développement. Les processus agiles exploitent le changement comme avantage compétitif pour le client.

Page 9: Methodologies de Developpement Agiles : Scrum et XP

• Livrer fréquemment une application fonctionnelle, toutes les deux semaines à deux mois, avec une tendance pour la période la plus courte.

Page 10: Methodologies de Developpement Agiles : Scrum et XP

• Les gens de l'art et les développeurs doivent collaborer quotidiennement au projet.

Page 11: Methodologies de Developpement Agiles : Scrum et XP

• 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.

Page 12: Methodologies de Developpement Agiles : Scrum et XP

• La méthode la plus efficace de transmettre l'information est une conversation en face à face.

Page 13: Methodologies de Developpement Agiles : Scrum et XP

• Un logiciel fonctionnel est la meilleure unité de mesure de la progression du projet.

Page 14: Methodologies de Developpement Agiles : Scrum et XP

• Les processus agiles promeuvent un rythme de développement soutenable. Commanditaires, développeurs et utilisateurs devraient pouvoir maintenir le rythme indéfiniment.

Page 15: Methodologies de Developpement Agiles : Scrum et XP

• Une attention continue à l'excellence technique et à la qualité de la conception améliore l'agilité.

Page 16: Methodologies de Developpement Agiles : Scrum et XP

• La simplicité - l'art de maximiser la quantité de travail à ne pas faire - est essentielle.

Page 17: Methodologies de Developpement Agiles : Scrum et XP

• Les meilleures architectures, spécifications et conceptions sont issues d'équipes qui s'auto-organisent.

Page 18: Methodologies de Developpement Agiles : Scrum et XP

• À intervalle régulier, l'équipe réfléchit aux moyens de devenir plus efficace, puis accorde et ajuste son comportement dans ce sens.

Page 19: Methodologies de Developpement Agiles : Scrum et XP

Méthodologie XP

Page 20: Methodologies de Developpement Agiles : Scrum et 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

Page 21: Methodologies de Developpement Agiles : Scrum et XP

Objectif Principal

Réduire les coûts du changement

Page 22: Methodologies de Developpement Agiles : Scrum et XP

• Revues de code permanentes

Page 23: Methodologies de Developpement Agiles : Scrum et XP

• Développement pilotés par les tests

Page 24: Methodologies de Developpement Agiles : Scrum et XP

• Conception au cours du projet (refactoring)

Page 25: Methodologies de Developpement Agiles : Scrum et XP

• Privilégier systématiquement la méthode la plus simple

Page 26: Methodologies de Developpement Agiles : Scrum et XP

• Utiliser des métaphores pour faciliter la communication

Page 27: Methodologies de Developpement Agiles : Scrum et XP

• L’intégration des modifications se fait quotidiennement, voire plusieurs fois par jour

Page 28: Methodologies de Developpement Agiles : Scrum et XP

• Les cycles de développement seront réduits au plus court

Page 29: Methodologies de Developpement Agiles : Scrum et XP

Cycles XP

Exploration

Attribution de Tâches Développement

Création de Tests Fonctionnels

Livraison & feed-backClient

Page 30: Methodologies de Developpement Agiles : Scrum et XP

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 !

Page 31: Methodologies de Developpement Agiles : Scrum et XP

Tests unitaires et fonctionnels

• Développement piloté par les tests (TDD)

• Etablir un contrat fonctionnel pour l’application d’abord

• Développer ensuite

Page 32: Methodologies de Developpement Agiles : Scrum et XP

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é

Page 33: Methodologies de Developpement Agiles : Scrum et XP

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

Page 34: Methodologies de Developpement Agiles : Scrum et XP

Méthodologie Scrum

Page 35: Methodologies de Developpement Agiles : Scrum et XP

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

Page 36: Methodologies de Developpement Agiles : Scrum et 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

Page 37: Methodologies de Developpement Agiles : Scrum et XP

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

Page 38: Methodologies de Developpement Agiles : Scrum et XP

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

Page 39: Methodologies de Developpement Agiles : Scrum et XP

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)

Page 40: Methodologies de Developpement Agiles : Scrum et XP

Processus

Clients Intervenants extérieurs

Directeur de Produit

Equipe

ScrumM

aster

Elémentsperturbateurs Equipe étendue

Page 41: Methodologies de Developpement Agiles : Scrum et XP

Projet

Planification

Release

Sprint Sprint Sprint Sprint

Release

Sprint Sprint Sprint

Produit partiel, testéet utilisable

Version finalisée

Produit partiel, testéet utilisable

...

Page 42: Methodologies de Developpement Agiles : Scrum et XP

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

Page 43: Methodologies de Developpement Agiles : Scrum et XP

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)

Page 44: Methodologies de Developpement Agiles : Scrum et XP

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

Page 45: Methodologies de Developpement Agiles : Scrum et XP

Backlog Produit

Page 46: Methodologies de Developpement Agiles : Scrum et XP

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

Page 47: Methodologies de Developpement Agiles : Scrum et XP

Backlog de Sprint

Page 48: Methodologies de Developpement Agiles : Scrum et XP

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

Page 49: Methodologies de Developpement Agiles : Scrum et XP

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

Page 50: Methodologies de Developpement Agiles : Scrum et XP

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 ?

Page 51: Methodologies de Developpement Agiles : Scrum et XP

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

Page 52: Methodologies de Developpement Agiles : Scrum et XP

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

Page 53: Methodologies de Developpement Agiles : Scrum et XP

Questions ?