Agile
Les méthodes agiles visent à satisfaire le client par la livraison rapide et continue (incrémentale) d’applications de qualité ayant une valeur ajoutée pour le client.La plupart des méthodes agiles sont constituées de bonnes pratiques, de principes (voir le manifeste) et de techniques permettant de construire et de gérer efficacement un projet de développement informatique.Parmi ces bonnes pratiques, celles offrrant le maximum de bénéfices sont :
- proximité de tous les intervenants (autant client qu’informatique);
- équipe dédiée (autant client qu’informatique);
- carnet de commandes porté par le client;
- développement en itérations (ou micro-livraison ou sprint) courtes (2 à 4 semaines);
- gestion de projet adaptée (estimation en groupe et état d’avancement visuel);
- souplesse, ouverture aux changements;
- mêlées quotidiennes;
- intégration continue et essais automatisés;
- refactoring.
Bien qu’à la base, un développement forfaitaire ne semble pas cadrer avec les méthodes agiles, il existe des techniques permettant d’assurer au client le respect d’un rapport portée-qualité-prix. Les principaux bénéfices des méthodes agiles sont :
- la concrétisation : une application partielle mais fonctionnelle est présentée rapidement au client;
- la souplesse aux changements permet au client de tenir compte de ses besoins qui se précisent et évoluent pendant le projet;
- le client est partie prenante du projet et s’approprie beaucoup plus l’application, assurant un meilleur succès lors de son implantation.
Mais attention! Il y a des pièges et des pré-requis à l’utilisation de telles approches. Par exemple, une première étape ou itération 0 doit permettre de stabiliser tout l’environnement de développement et de communication de même que de produire un carnet de commandes assez étoffé et précis pour être estimé (à l’aide d’une technique d’estimation relative permettant d’établir le poids du carnet de commandes). Aussi, la documentation doit être allégée par rapport aux approches traditionnelles plutôt lourdes.
