Ouverture au changement
Les démarches traditionnelles, basées sur la fameuse séquence « spécification > conception > réalisation > validation », concentrent la plupart des décisions en début de projet :
L'objectif d'une telle approche est louable : le client veut des garanties sur ce qu'il obtiendra en fin de projet, et le chef de projet veut disposer des informations nécessaires à l'organisation de son équipe.
Malheureusement, les équipes qui évoluent dans un environnement changeant ou complexe savent à quel point il est difficile de s'en tenir aux décisions initiales. Le client réalise que ses besoins ont changé, ou bien l'équipe découvre en phase d'implémentation des erreurs de spécification ou de conception qui compromettent les plans de développement. Le changement s'impose donc tôt ou tard, mais voilà : cette organisation suppose l'absence de changement, et celui-ci se révèle bien vite très coûteux - suffisamment parfois pour compromettre la rentabilité du projet.
Mais puisque le changement est une composante incontournable de tout projet de développement logiciel, pourquoi ne pas l'accepter ? N'existe-t-il pas un moyen pour que les équipes de développement n'opposent plus de rigidité excessive aux demandes de leur maîtrise d'ouvrage ?
Les créateurs d'XP ont trouvé une réponse à ces questions en découvrant que certaines pratiques d'organisation d'équipe et de programmation, appliquées ensemble, permettent de rendre le logiciel extrêmement malléable – à tel point qu'il devient plus avantageux de le faire évoluer progressivement que de chercher à le spécifier et le concevoir complètement dès le départ. Partant de ce constat, ils ont conçu une démarche qui diffuse le processus de décision tout au long du projet grâce à l'enchaînement de cycles itératifs très courts :
Le grand gagnant de cette démarche est d'abord le client du projet. Plutôt que de voir son intervention cantonnée à la phase initiale de recueil du besoin, il intègre véritablement le projet pour en devenir le pilote. A chaque itération, il choisit lui-même les fonctionnalités à implémenter, collabore avec l'équipe pour définir ses besoins dans le détail, et reçoit une nouvelle version du logiciel qui intègre les évolutions en question.
Cette démarche présente de nombreux avantages en termes de conduite de projet :
- Le client jouit d'une très grande visibilité sur l'avancement des développements.
- Le client utilise le logiciel lui-même comme support de réflexion pour le choix des fonctionnalités à implémenter – il peut en particulier intégrer très tôt les retours des utilisateurs pour orienter les développements en conséquence.
- La première mise en production du logiciel intervient très tôt dans le projet, ce qui avance d'autant le moment à partir duquel le client peut en tirer des bénéfices.
- L'ordre d'implémentation des fonctionnalités n'est pas guidé par des contraintes techniques, mais par les demandes du client. Celui-ci peut donc focaliser les efforts de l'équipe sur les fonctionnalités les plus importantes dès le début du projet, et ainsi optimiser l'utilisation de son budget.
La démarche itérative d'XP est donc son principal atout du point de vue de la maîtrise d'ouvrage. Elle est présentée plus en détail dans les sections qui suivent.