¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾
Les méthodes agiles
Voir Illustration des méthodes agiles,
enchaînement de « mini » cycles en V.
Les 4 valeurs
fondamentales des méthodes agiles
Une méthode agile est une méthode de développement informatique basée sur 4 valeurs fondamentales :
- Equipe et communication : priorité aux personnes et interactions sur les procédures et outils.
- Priorité aux applications fonctionnelles sur une documentation détaillée.
- Priorité de la collaboration avec le client sur la négociation de contrat.
- Acceptation du changement : réagir au changement plutôt que suivre un plan.
Description,
caractéristiques des méthodes agiles
Il y a continuellement des allers-retours avec le « client ». L’application logicielle est livrée par versions incrémentales : tôt et régulièrement, le plus fréquemment possible (toutes les semaines ou mois selon la méthode). Les versions successives ne couvrent qu’une partie des fonctionnalités demandées, mais sont aussi fiables que la livraison finale en terme de tests et validation.
C’est le fonctionnement de l’application (les versions logicielles opérationnelles plutôt que des documents) qui sert d’indicateur de la progression du projet.
Planification adaptative : la planification repose sur des plans à court terme stables à l’échelle de l’itération, et des plans à long terme fluides réadaptés au fur et à mesure de la progression. En quelque sorte le processus est déroulé comme un enchaînement de « mini-cascades ». La préférence est donnée au respect des délais (livrer l’application stable et validée en temps voulu, quitte à ce qu’elle ne remplisse que partiellement sa fonction) plutôt qu’à la complétude de l’application (ne livrer que quand l’application est complète, au risque de devoir pour cela retarder la date de livraison).
Une attention perpétuelle est portée à la conception logicielle ainsi qu’à la qualité du code (soin, robustesse, modularité). A chaque nouvelle itération, l’ensemble de l’architecture et de la conception logicielles sont reconsidérées, le code est retravaillé (remaniement du résultat des itérations précédentes). On parle de refactorisation (refactoring).
Concernant le « message » agile
Les méthodes agiles prônent la documentation « utile » et non pas l’absence de documentation. Adaptabilité au lieu de prédictibilité ne signifie pas absence de planification. Les méthodes agiles sont adaptées aux cas où il n’y a pas dès le début des exigences précises et stables.
Vocabulaire associé au développement itératif : incrémental, en spirale, évolutif, …
Il existe plusieurs processus de développement du type
« agile »
XP (eXtreme Programming).
FDD (Feature Driven Development ou développement piloté par les fonctionnalités).
DSDM (Dynamic
Systems Development Method).
Scrum.
Mouvance
« Open source ».
ASD
(Adaptive Software Development).
RAD (Rapid
Application Development).
Unified
Process ou Processus Unifié (outil de Rational Software : RUP, Rational Unified
Process).
…
Suggestion de trouver sa propre méthode
Chacun de ces processus itératifs comporte ses particularités (voir les articles donnés en référence) et certains répondront mieux que d’autres aux préoccupations d’un projet donné. Aussi, une méthode sera plus ou moins bien adaptée aux spécificités du projet plutôt que bonne ou mauvaise dans l’absolu. Plutôt que de suivre une méthode standard à la lettre, il est préconisé de mettre au point sa propre méthode : pour cela prendre dans les standards ce qui est adapté à son propre cas et l’auto-adapter au fur et à mesure des itérations en tirant des leçons des itérations précédentes.
Exemple d’une approche hybride entre cascade et itératif
La livraison par paliers combine une approche en cascade pour l’analyse et la conception de haut niveau, suivie d’une seconde partie itérative pour le codage et les tests.
Références et sources
sur les méthodes agiles
En 2001, les instigateurs des principales méthodes agiles se sont réunis pour former l’ « Agile Alliance ». Ils ont défini un manifeste pour le développement agile d’applications.
Alliance Agile : http://www.agilealliance.org.
« Manifesto
for Agile Software Development » : http://agilemanifesto.org.
Wikipedia « Méthode agile » : http://fr.wikipedia.org/wiki/Méthode_agile
Traduction d’un article de Martin Fowler sur les méthodologies agiles : http://www.martinfowler.com/articles/frNewMethodology.html
« Extreme Programming, Méthodes Agiles, Tour
d’horizon » par Business Interactif :
http://www.dsi.cnrs.fr/bureau_qualite/developpement-web/methodologie/BI-methodes-agiles.pdf
Dossier de «
Agile et Bases de
Données
« Agile Database Development » : http://www.agiledata.org
« The
process of Database Refactoring » : http://www.agiledata.org/essays/databaseRefactoring.html
-
dernière mise à jour le
¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾