Methodologies de Developpement Agiles : Scrum et XP

Preview:

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 ?

Recommended