Après diverses discussions au sujet d’Agile au sein de LINAGORA, j’ai décidé d’écrire un petit billet pour expliquer les principes du développement Agile. Pour ce faire, je me base sur les 10 principes du développement Agile. Par la suite, je pourrais détailler chaque principe dans des billets différents.
Qu’est-ce qu’Agile ? À part une nouvelle méthode pour faire de la gestion de projet de développement ! Tout d’abord, Agile est fondamentalement différent des méthodes de projets de développements traditionnelles sur les points suivants :
- La participation des utilisateurs de manière active est impérative
- L’équipe doit être autorisée à prendre des décisions
- Les besoins évoluent, mais les délais sont fixes
- Des besoins macro, léger et visuel
- Des petits développements, itératifs et des livraisons incrémentales
- Concentrez-vous sur la livraison fréquente des fonctionnalités
- Compléter une fonction avant de commencer une autre
- Appliquer la règle du 80/20
- Les tests sont intégrés dans tout le cycle de vie de projet – Tester très tôt et souvent
- Une approche en collaboration et coopération entre tous les collaborateurs est essentielle
Il y a diverses méthodes et standards qui adressent les divers aspects du développement logiciel, par exemple PRINCE2 pour la Gestion de projet, utiliser UML pour l’analyse et la conception, ISEB pour les tests, etc. Bien que ceux-ci soient typiquement appliqués aux projets de développement en cascade, les éléments de ces méthodes peuvent aussi être appliqués dans une approche de développement Agile.
Il y a aussi les méthodes qui sont spécifiquement conçues autour du Développement Agile :
DSDM : est probablement la méthode originelle du développement Agile. DSDM (Dynamic systems development method) était présent avant que le terme le Développement Agile est été même inventé, il est basé sur tous les principes qui sont connus dans le développement Agile
SCRUM : est aussi une méthode de développement Agile qui se concentre notamment sur la façon de gérer les tâches au sein d’une équipe axée sur l’environnement de développement.
XP (eXtreme Programming) est la plus radicale des méthodes Agile, en se concentrant sur le processus de développement logiciel et l’analyse, le développement et les phases de test avec de nouvelles approches en vue d’apporter une différence substantielle à la qualité du produit final.
DSDM est probablement la plus complète des méthodes Agile, alors que SCRUM et XP sont plus faciles à mettre en œuvre et sont complémentaires, car elles abordent différents aspects des projets de développement et sont à la fois fondées sur les mêmes principes de développement agile.
En réalité, il n’y a pas de méthode magique pour le développement logiciel. La meilleure approche est de connaitre un tas de techniques provenant des méthodes en cascade et des méthodes de développement Agile et de choisir un mélange des meilleures techniques qui sont les plus appropriées pour n’importe quelle situation donnée. La réussite exige un très bon niveau d’expérience et de compétences.
Dans des projets de développement Agile, la gestion de projet prend une forme légèrement différente, comptant plus sur les compétences du chef de projet pour la communication, la facilitation et la coordination et en soulignant moins la planification et le contrôle. Le développement agile peut être très passionnant et excitant, bien que certains projets conviennent mieux au développement Agile plus que d’autres. La collaboration et la visibilité peuvent fournir une expérience beaucoup plus riche et plus utile pour les équipes qui développent des grands logiciels. Le développement Agile peut être beaucoup plus agréable que l’approche en cascade qui exige beaucoup plus de documentation et est moins souple par sa nature. Et quand les gens aiment leur travail, c’est incroyable ce qu’ils peuvent réaliser.
Attention : les prochains billets expliqueront un par un les 10 points clés du développement Agile.
Commentaire