Développement logiciel agile


La méthode agile est un type particulier de développement logiciel qui se caractérise par sa forme simple, répétitive et la moins bureaucratique possible. Les avantages de cette procédure sont les grandes économies de coûts et de temps par rapport aux méthodes de programmation classiques.

Contexte

Le développement logiciel agile est un concept qui n’existe que depuis le début des années 2000. Certains aspects isolés mais comparables ont cependant vu le jour dans les années 1990. Notamment, une équipe dirigée par l’informaticien Kent Beck crée à cette époque une théorie de base pour un futur processus agile et en fait part au sein de son ouvrage Extreme Programming. En 2001 est enfin publié le Manifeste agile[1] par un groupe de recherche toujours dirigé par Kent Beck. Il intègre les principes fondamentaux de la méthode agile :

"Nous découvrons de meilleures approches pour faire du développement logiciel, en en faisant nous-même et en aidant les autres à en faire. Grâce à ce travail nous en sommes arrivés à préférer et favoriser :
Les individus et leurs interactions plus que les processus et les outils.
Du logiciel qui fonctionne 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.
Cela signifie que bien qu'il y ait de la valeur dans les items situés à droite, notre préférence se porte sur les items qui se trouvent sur la gauche."

Un seul coup d’oeil sur ce manifeste montre que ce type de développement de logiciel est radicalement différent de la norme. Il met l’accent sur la fonctionnalité et place l’utilisateur au centre du développement. Les planifications et contrats sont subordonnés aux coopérations et aux changements.

Peu de temps après la publication de ce manifeste, la demande pour un développement logiciel agile a commencé à augmenter. En 2005, 14% des personnes interrogées pour le compte de la société Forrester Research, en Europe et en Amérique du Nord, travaillaient déjà avec des méthodes agiles. Huit ans plus tard, une nouvelle étude de VersionOne statue que plus de 80% des entreprises interrogées travaillent avec de telles méthodes.[2]

Composition

Le manifeste se compose de douze principes qui définissent la méthode dans son intégralité :

1. Des clients satisfaits par un développement et une livraison rapide du logiciel.
2. Le client obtient un avantage concurrentiel grâce à des changements rapides permis par les processus agiles.
3. Un logiciel qui fonctionne est fourni en peu de temps.
4. Une collaboration intensive entre les programmeurs et les experts pendant toutes les phases du projet.
5. La création d’un environnement motivant pour un travail prospère.
6. Si possible, uniquement une communication en face à face pour les négociations.
7. La mesure du progrès est réalisée par la performance et le fonctionnement du logiciel.
8. Un développement durable est garanti par un rythme de travail uniforme.
9. Une technique et un design parfaits sont au centre de tout le processus.
10. Le principe de la simplicité prévaut toujours.
11. Les équipes s’organisent seules.
12. Les équipes doivent réfléchir à leur propre travail afin d’accroître leur efficacité.

Afin de rendre les principes réalisables, on utilise souvent les méthodes agiles qui visent à créer le moins de contraintes administratives et bureaucratiques, ces dernières étant souvent à la source d’une productivité négative. Des méthodes agiles classiques sont par exemple :

  • un développement piloté par des tests
  • des story cards dans le cadre d’une user story
  • double programmation

Les procédures dites agiles accélèrent le travail dans le cadre du développement d’un logiciel. Les plus populaires comprennent :

Avantages et inconvénients

Les avantages du développement logiciel agile sont rapidement visibles. Tout d’abord, cela nécessite peu de temps et de planifications jusqu’à ce qu’un résultat soit apparent. Une certaine quantité de ressources financières peut être épargnée. En outre, le logiciel agile peut rapidement être ajusté lorsque des problèmes surviennent. Ces changements peuvent être dus à l’évolution du marché et aux exigences générales quant à un logiciel. Une liste détaillée des tâches à effectuer (qu’on appelle Sprint Backlog) aide aussi à la réalisation des objectifs.
Mais malgré tous les avantages, les équipes de programmeurs sont toujours soumises à des contraintes comme les budgets ou les délais dans lesquels le travail doit être accompli. Dans le même temps, la réussite d’un projet ne dépend jamais uniquement de la méthode, mais aussi d’une bonne coopération au sein de l’équipe. En conséquence, le développement logiciel agile peut représenter une option raisonnable et judicieuse face aux méthodes traditionnelles, mais ce n’est pas une solution universelle qui vaut pour chaque produit.

Références

  1. Manifesto Agile, par Martin Fowler et Jim Highsmith
  2. 7th annual state of agile development survey sur versionone.com, 06.07.2015

Liens web

Introduction aux méthodes agiles et Scrum, par Thierry Roche