Méthodes agiles

Les approches classiques dites « en cascade » ont prouvé leurs limites dans la conception de logiciel, ceci étant illustré par le fort taux d’échec de projets informatiques (46%)(1)
De plus ces méthodes rigidifiaient le projet soit éloignant le produit final de l’expression du besoin soit en refroidissant les échanges entre le client et le prestataire (formalisation importante).

Nous avons donc adopté les méthodes agiles qui mettent le client au centre du projet et permettent de produire l’application la plus proche de ses besoins.

Pour cela, nous proposons d’appliquer une adaptation des méthodes UP, XP et SCRUM.

Extrem programming, unified process, scrum

Phase de cadrage

Cette phase est essentielle pour la réussite du projet.
C’est la période de l’expression des exigences et de l’analyse.
Pour cela, des ateliers de travail thématique sont organisés afin d’exprimer, d’ordonner les histoires utilisateurs.
Grâce à la modélisation métier de l’application, le cadrage permet de fixer le périmètre fonctionnel de l’application et de préciser le budget.

Phase de design

Suite au recueil et à l’analyse des besoins, une étape de conception et de modélisation est nécessaire afin de lancer les développements.
Cette phase permet d’aborder les points suivants :

  • Modélisation ergonomique de l’application
  • Architecture de la plateforme et des modules
  • Conception technique de la plateforme

Phase de construction

C’est la période des développements, durant laquelle nous appliquons la méthode SCRUM.
Le projet est divisé en sprints, chaque sprint faisant l’objet d’un objectif, d’un engagement de l’équipe sur les histoires qui vont être réalisées et d’une livraison au client sous forme d’une démonstration.
Les développements se font de manière itérative et incrémental.

Conformément à cette méthode, nous tenons plusieurs types de réunion d’équipes :

  • Avant chaque itération, nous faisons une réunion de planification qui permet de sélectionner les fonctionnalités à développer en fonction des priorité
  • Chaque jour, une réunion d’avancement permet de suivre l’avancement des développements
  • A la fin de chaque cycle, une réunion permet de faire le bilan sur l’itération passée

L’avancement du travail est visualisé en temps réel grâce au Burn down charts :

Burndown chart

Phase de finalisation

Lorsque les développements sont terminés, la release est préparée.
La documentation est finalisée, les tests affinés et le produit peut être déployé sur un serveur de pré-production puis après la recette sur le serveur de production.

1. Gestion de projet vers les méthodes agiles de Messager Rota V et Jean Tabaka – 7 mai 2009