Vous êtes sur la page 1sur 23

Méthodes de développement agiles

Introduction
I. Mouakher
1ère MP ISIE
LES RAISONS DE L'AGILITÉ
Le fameux rapport Chaos du
Standish Group...
Principales causes des échecs
Mauvaise compréhension du besoin : 51%
Estimation et planification déficiente : 48%
Technologies mal maîtrisées : 45%
Facteurs clefs du succès
Implication des utilisateurs
Soutien par le management
Objectifs business clair
Périmètre optimisé
Un constat sévère
64% des fonctionnalités développées
sont peu ou pas utilisées...

2
Les méthodes agiles

Les méthodes agiles reposent sur une structure (cycle de


développement) commune (itérative, incrémentale et
adaptative), quatre valeurs communes déclinées en douze
principes communs desquels découlent une base de pratiques,
soit communes, soit complémentaires.

3
L'évolution des cycles
L'évolution des cycles en matière de développement informatique a débuté avec une vision
incrémentale dite « cascade » ou «cycle en V » de la succession des livrables à produire et à
valider, puis s'est complexifiée en acceptant les recouvrements de phases de l'ingénierie
concourante

4
LA FIN DU CYCLE EN V CLASSIQUE
 L'immuabilité des spécifications et des besoins fonctionnels
Ce qui sera délivré sera en partie obsolète.
 L'effet tunnel !
Feedback trop tardif : toute modification va coûter très cher
 La sectorisation des intervenants
Les équipes s'incriminent entre elles
Insatisfaction des équipes
 On oublie où se trouve la valeur du projet et on se concentre sur le
respect à la lettre des spécifications (or elles sont souvent mal
comprises, et surtout elles changent !) et de la documentation
 On ne délivre pas assez de valeur au client
Nécessité de documenter de façon détaillée tous les éléments du projet

5
Itératif

Une méthode agile est avant tout itérative sur la base d’un affinement du besoin mis
en œuvre dans des fonctionnalités en cours de réalisation et même déjà réalisées.
Cet affinement, indispensable à la mise en œuvre du concept adaptatif, se réalise en
matière de génie logiciel sous deux aspects :
•fonctionnellement, par adaptation systématique du produit aux changements du
besoin détecté par l’utilisateur lors de la conception-réalisation du produit (notion de
validation permanente de l’utilisateur avec RAD et notion de conception émergente
avec XP) ;
•techniquement, par remaniement régulier du code déjà produit (refactoring).

6
Incrémental

Une méthode agile est, éventuellement, incrémentale.


Lorsque le projet, quel que soit le nombre de participants,
dépasse en durée une dizaine de journées en moyenne, la
production de ses fonctionnalités s’effectue en plusieurs
incréments

7
Itératif-incrémental

8
Adaptatif

 Une méthode adaptative est caractérisée par sa


capacité à accepter les changements.
 Selon Fowler (2005), il existe deux aspects à
l'adaptabilité:
 le premier est dans le contexte d'un projet qui adapte un
logiciel fréquemment pour tenir compte des changements
des besoins des utilisateurs;
 le deuxième est celui du processus qui change au fur et à
mesure du temps. L'équipe va découvrir ce qui fonctionne
pour elle et modifier le processus en conséquence (Fowler,
2005).

9
Itératif, incrémental et adaptatif
Elle se base sur la mesure objective du changement afin de
l’accepter. La dernière génération de méthodes adaptatives
se qualifie « d’Agiles ». Elle se structure selon un cycle dit
« itératif, incrémental et adaptatif ».

10
Itératif, incrémental et adaptatif

11
Itératif, incrémental et adaptatif
La notion d'adaptatif, quant à elle, nécessite au-delà d'un simple
principe, la mise en œuvre de techniques de contrôle de l'évolution
du livrable et d'une métrique formelle des modifications, avant,
après et en cours de la production. Il en découle une planification
opérationnelle élémentaire, directement visible par le biais de
l'affichage mural.

12
VALEURS AGILES
 Pour répondre à ce problème est créé en 2001 le manifeste
Agile. Rédige par 17 experts qui se dressent contre l'échec des
cycles en cascade, Il propose 4 valeurs fondamentales, et 12
principes
•La réactivité face au changement plutôt que le suivi d'un plan

•l’interaction avec les personnes plutôt que les processus et les outils

•un produit opérationnel plutôt qu’une documentation pléthorique

•La collaboration avec le client plutôt que la négociation de contrat

13
LES 12 PRINCIPES DE L'AGILITÉ
1. Notre première priorité est de satisfaire le client en livrant tôt et régulièrement
des logiciels utiles.
2. Le changement est accepté, même tardivement dans le développement. Les
processus agiles exploitent le changement comme avantage compétitif pour le
client.
3. Livrer fréquemment une application fonctionnelle, toutes les deux semaines à
deux mois, avec une tendance pour la période la plus courte.
4. Les experts métier et les développeurs doivent collaborer quotidiennement au
projet.
5. 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.
6. La méthode la plus efficace pour transmettre l'information est une conversation
en face à face.

14
LES 12 PRINCIPES DE L'AGILITÉ
7. Un logiciel fonctionnel est la meilleure unité de mesure de la
progression du projet.
8. Les processus agiles promeuvent un rythme de développement
soutenable. Commanditaires, développeurs et utilisateurs
devraient pouvoir maintenir le rythme indéfiniment.
9. Une attention continue à l'excellence technique et à la qualité de
la conception améliore l'agilité.
10. La simplicité - l'art de maximiser la quantité de travail à ne pas
faire est essentielle.
11. Les meilleures architectures, spécifications et conceptions sont
issues d'équipes qui s'auto-organisent.
12. À intervalle régulier, l'équipe réfléchit aux moyens de devenir plus
efficace, puis accorde et ajuste son comportement dans ce sens.
15
Méthodes agiles
Classées par date de publication
 Rapid Application Development(RAD, 1991)
 Dynamic systems developmment method(DSDM, 1995, consortium
anglais commercialisant le RAD)
 Scrum(1996)
 Feature Driven Development ((en)FDD) (1999)
 Extreme programming(XP, 1999)
 Adaptative software development(ASD, 2000)
 Crystal clear(2004)
 Autres méthodes se reconnaissant un lien avec l'agilité :
 2TUP (2 track unified process, prononcez « toutiyoupi ») ,
 Rational Unified Process (RUP) : se caractérise par une approche globale nommée
« Vue 4+1 ». Les cinq composants de cette vue sont : la vue des Cas d'utilisation, la
vue Logique, la vue d'Implémentation, la vue du Processus, la vue du Déploiement. À
noter que RUP, n'est pas une méthode agile stricto sensu. Mais il en existe une
déclinaison agile, mais non libre de droits, sous l'acronyme de AUP(Agile unified
16
process)
LES MÉTHODES AGILES SONT
MATURES
 Plus de 10 ans d'expérience
 Une méthodologie reconnue : par Google, Yahoo, Nokia, Microsoft,
IBM, Oracle, MySpace, Adobe...
 En 2008, l'étude du drdobbs.com indique que 69% des entreprises font
de l'agile, et parmi celles qui ne font pas d'agile, 15% d'entre elles
estiment démarrer l'année suivante

17
Normatif vs adaptatif
 On peut comparer les outils en regardant le nombre de règles qu’ils
fournissent.
 Normatif signifie “plus de règles à suivre”. 100% de normatif signifie que vous
n'avez pas besoin d'utiliser votre cerveau, il y a une règle pour tout.
 Adaptatif signifie “moins de règles à suivre”. 100% d’adaptatif équivaut à faire
n’importe quoi, il n'y a aucune règle ni aucune contrainte.
 Les méthodes agiles sont parfois qualifiées de méthodes légères, en particulier
parce qu'elles sont moins normatives que les méthodes traditionnelles.
D’ailleurs, le premier principe du Manifeste Agile est “Les Individus et leurs
Interactions plutôt que les Processus et les Outils”.

18
Normatif vs adaptatif

19
Préventif vs Adaptatif

 Gestion Agiles des risques (délais, qualité, etc.)


 L'approche classique tente de réduire les risques par une démarche spécifique et
déterministe dont les coûts préventifs (analyse, dé tection, suivi et correctif) ne sont
pas négligeables.
 Les méthodes Agiles totalement pragmatiques, s'appuient sur la compétence des
équipes de développement qu'elles engagent dans des pratiques permanentes
orientées performance et validation afin d'éviter naturellement la concrétisation du
risque.
Le paradigme des méthodes classiques est la prédictibilité. Le paradigme des méthodes Agiles
est l'adaptabilité.

20
Préventif vs Adaptatif
 Toutes les méthodes se situent concrètement à divers degrés
sur une échelle les positionnant de la plus prédictive à la plus
adaptative.

21
Selon la taille du projet/de l’équipe

22
Scrum & XP (extreme programming)
 La méthode scrum affirme sa différence dans la généralisation
d'un cérémonial basé sur des pratiques de courtes réunions à
chaque étape de la vie du projet (rétrospectives). Ces temps de
travail commun ont pour objectifs d'améliorer la motivation des
participants, de synchroniser les tâches, de débloquer les
situations difficiles et d'accroître le partage de la connaissance.
 XP (extreme programming) est très axé sur la partie
Construction de l'application. Une de ses originalités réside dans
l’approche de planification qui se matérialise sous la forme d’un
jeu intitulé planning game et qui implique simultanément les
utilisateurs et les développeurs. On notera aussi des techniques
particulières liées à la production du code comme le test driven
development (TDD), la programmation en binôme (Pair
programming), l'appropriation collective du code, la
23
refactorisation (refactoring) et l’integration continue.

Vous aimerez peut-être aussi