Vous êtes sur la page 1sur 39

1

Les Méthodes Agiles


Roberton C. Philistin
robertonphilistin@yahoo.fr
3767-6345
2 La méthodologie agile

 La méthodologie Agile s'oppose


généralement à la méthodologie
traditionnelle en cascade (Linéaire).
 Elle se veut plus souple et adaptée, et place
les besoins du client au centre des priorités
du projet.
3 La méthodologie agile

 A l'origine, cette approche a été créée pour les


projets de développement web et informatique.
 Aujourd'hui, la méthode Agile est de plus en
plus répandue car elle est adaptable à de
nombreux types de projets, tous secteurs
confondus.
4 Les Méthodes Agiles

 Les méthodes agiles sont des groupes de pratiques


de pilotage et de réalisation de projets.
 Elles ont pour origine le manifeste Agile, rédigé en
2001, qui consacre le terme d'« agile » pour
référencer de multiples méthodes existantes.
5 Les Méthodes Agiles

 Elles reposent sur un cycle de développement


itératif, incrémental et adaptatif et doivent
respecter quatre valeurs fondamentales déclinées
en douze principes desquels découlent une base de
pratiques, soit communes, soit complémentaires.
6 Les Méthodes Agiles
Voici les principales méthodes agiles :
 Scrum. ...
 EXtreme Programming (XP) ...
 Rational Unified Process (RUP) ...
 Feature Driven Development (FDD) ...
 Rapid Application Development (RAD) ...
 Dynamic systems development method (DSDM)
7 Les Méthodes Agiles

 Les deux approches agile désormais les plus


utilisées sont :
 la méthode Extreme programming (XP),
 la méthode Scrum.
8 Les Méthodes Agiles

 Ces deux approches sont d'ailleurs


techniquement complémentaires dans le cas d'un
projet de développement en
science de l'information (SI),
 XP proposant alors les techniques d'obtention de
la qualité du code.
9 Les quatre valeurs fondamentales du manifeste
Agile :
 Les Individus et leurs interactions plus que les
processus et les outils ;
 Des logiciels opérationnels plus qu'une documentation
exhaustive ;
 La collaboration avec les clients plus que la négociation
contractuelle ;
 L'adaptation au changement plus que le suivi d'un plan.
10 Douze principes généraux
1.La 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
besoins, même tard dans le projet. Les processus
Agiles exploitent le changement pour donner un
avantage compétitif au client ;
11 Douze principes généraux

3.Livrer fréquemment un logiciel opérationnel avec


des cycles de quelques semaines à quelques mois
et une préférence pour les plus courts ;
4.Les utilisateurs ou leurs représentants et les
développeurs doivent travailler ensemble
quotidiennement tout au long du projet ;
12 Douze principes généraux

5.Réaliser les projets avec des personnes motivées. Leur


fournir l’environnement et le soutien dont elles ont
besoin et leur faire 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 ;
13 Douze principes généraux

7. Un logiciel opérationnel est la principale mesure


d’avancement ;
8. Les processus Agiles encouragent un rythme de
développement soutenable. Ensemble, les
commanditaires, les développeurs et les
utilisateurs devraient être capables de maintenir
indéfiniment un rythme constant ;
14 Douze principes généraux

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 ;
15 Douze principes généraux

11.Les meilleures architectures, spécifications et


conceptions émergent d'équipes auto-organisé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.
16 Exemples de techniques Agiles

 Intégration continue
 Test driven development (TDD)
 Conception pilotée par le domaine (DDD
pour domain-driven design)
 Équipe transverse
 Burndown chart
 Programmation en binôme
17 Exemples de techniques Agiles

 Planning poker
 Réusinage de code
 Timeboxing
 Récit utilisateur
 Modélisation C4 pour l'élaboration collaborative
d'une architecture évolutive ou émergente
18 Exemples de techniques Agiles- L'intégration
continue
 Ensemble de pratiques utilisées en génie logiciel
consistant à vérifier à chaque modification
de code source que le résultat des modifications
ne produit pas de régression dans l'application
développée.
 se réfère généralement à la pratique de l'extreme
programming.
19 Exemples de techniques Agiles- L'intégration
continue
 Le principal but de cette pratique est de détecter les
problèmes d'intégration au plus tôt lors du développement.
 De plus, elle permet d'automatiser l'exécution des suites de
tests et de voir l'évolution du développement du logiciel.
 de plus en plus utilisée en entreprise afin d'améliorer la
qualité du code et du produit final
20 Exemples de techniques Agiles-Test-Driven
Development
 Test-Driven Development (TDD), ou Développements
Pilotés par les Tests en français,
 Méthode de développement de logiciel, qui consiste à
concevoir un logiciel par petits pas, de façon itérative et
incrémentale, en écrivant chaque test avant d'écrire le
code source et en remaniant le code continuellement
21 Exemples de techniques Agiles-Test-Driven
Development
 Test-Driven
Development (TDD),
ou Développements Pilotés
par les Tests en français,
22 Exemples de techniques- conception dirigée par le
domaine
 La conception dirigée par le domaine (ou DDD, de
l'anglais domain-driven design) est une approche de la
conception logicielle fondée sur deux principes :
 les conceptions complexes doivent être basées sur un modèle;
 l'accent doit être sur le domaine et la logique associée.
23 Exemples de techniques- conception dirigée par le
domaine
 Domaine: La sphère d'un métier ou activité pour
lequel on développe l'application
 Modèle: une abstraction qui décrit les concepts
sélectionné d'un domaine et peut être utilisé pour
résoudre les problèmes liés à ce domaine
24 Exemples de techniques- équipe transverse

 Une équipe transverse (en anglais cross-


functionnal team)
 Une équipe composée de membres de
services ou départements différents d'une
organisation, de niveaux hiérarchiques à peu
près équivalents, et regroupés pour effectuer
un travail, une opération ou un projet précis.
25 Exemples de techniques- burndown chart
 Un burndown chart ou BDC (en français, graphique
d'avancement) est une représentation graphique de
l'évolution de quantité de travail restante par rapport au
temps sur une période de temps donnée.
26 Exemples de techniques- burndown chart

 Une interprétation simple (régression linéaire) permet


d'avoir une prévision de l'état d'avancement à la fin de la
période d'activité.
27 Exemples de techniques- programmation en
binôme
 La programmation en binôme (de
l'anglais pair programming), parfois
appelée programmation par
pairs ou binômage, est une méthode de
travail dans laquelle deux développeurs
travaillent ensemble sur un même poste de
travail.
28 Exemples de techniques- programmation en
binôme
 La personne qui rédige le code est appelée
conducteur (driver).
 La seconde personne, appelée observateur
(observer), assiste le conducteur en décelant les
imperfections, en vérifiant que le code implémente
correctement le design et en suggérant des
alternatives de développement.
29 Exemples de techniques- programmation en
binôme

 Les rôles s'échangent régulièrement


pendant la séance de programmation.
 La programmation en binôme fait partie
des bonnes pratiques de l'extreme
programming.
30 Exemples de techniques- planning poker

 Le planning poker est une façon ludique de produire


des estimations sur l'effort de développement de
fonctionnalités.
 surtout utilisée en informatique, en eXtreme
Programming (XP), en Scrum et dans les
méthodes agiles en général pour évaluer les scénarios
utilisateurs (user stories) du carnet de produit
(product backlog).
31 Exemples de techniques- planning poker

 L'avantage principal du planning poker est de


permettre à tous de s'exprimer librement.
 L'estimation serait meilleure parce que plusieurs
personnes l'auront validée : des participants avec
des niveaux d'expérience et d'expertise
différents.
32 Exemples de techniques- planning poker

 De plus, cette technique favorise les


échanges entre le responsable de produits et
l'équipe de développement.
 L'estimation se fait en unités d'œuvre
intitulées points de récits ou "journées
idéales" (Ideal Day).
33 Exemples de techniques- réusinage de code

 Le réusinage de code est l'opération consistant à retravailler le


code source d'un programme informatique – sans toutefois y
ajouter des fonctionnalités ni en corriger les bogues – de façon à
en améliorer la lisibilité et, par voie de conséquence, la
maintenance, ou à le rendre plus générique
 facilite le passage de simple en multiple précision) ;
 on parle aussi de « remaniement ».
34 Exemples de techniques- timeboxing

 La gestion par blocs de temps, ou méthode du


temps limité (en anglais « timeboxing ») est une
approche de planification et de gestion de temps
qui consiste à allouer à la réalisation d'une activité
donnée une durée fixe, volontairement limitée de
temps.
35 Exemples de techniques- timeboxing

 Cette approche est fondée sur la prise en compte


du caractère subjectif des critères qui déterminent
qu'un travail est effectivement fini : « comme on
peut toujours tout améliorer, alors on risque de ne
jamais rien finir…».
36 Exemples de techniques- récit utilisateur

 Un récit utilisateur, ou « user story » en anglais, est


une description simple d’un besoin ou d’une attente
exprimée par un utilisateur et utilisée dans le domaine
du développement de logiciels et de la
conception de nouveaux produits pour déterminer les
fonctionnalités à développer.
37 Exemples de techniques- modélisation C4

 La modélisation C4 (de l'anglais « C4 model »)


est une technique de notation graphique allégée
pour la modélisation d'architectures logicielles.
 Elle est basé sur la décomposition structurelle d'un
système en conteneurs et composants.
38 Exemples de techniques- modélisation C4

 La décomposition plus détaillée de ces éléments


architecturaux peut alors s'appuyer sur des
techniques de modélisation existantes telles que le
langage de modélisation unifié (UML) ou les
diagrammes entité-associations.
39

Vous aimerez peut-être aussi