Non ! Encore cette étiquette d’extrémistes !
Comment Schumacher aurait-il pu gagner un championnat de formule 1 s’il n’appuyait pas au maximum sur l’accélérateur ? Voila l’idée de l’eXtreme Programming. Il ne s’agit pas d’aller trop loin, mais de rechercher la performance optimum des pratiques qui la constituent.
Il ne faut pas croire que eXtreme Programming signifie extrême effort, ou horaires extrêmes. Il s’agit en fait d’optimiser la méthode de travail. Quel effort y-a-t’il à pousser sur l’accélérateur jusqu’à sa position idéale ? Aucun, ce n’est qu’une question d’habileté ! D’un autre coté, se contenter d’appuyer mollement, de façon modérée, apporte plus de sécurité, mais certainement pas moins d’effort. Quand Toyota réorganise une ligne de production pour augmenter sa rentabilité, il s’ensuivra moins de gestes de la part de l’opérateur pour effectuer la même tache. L’optimisation des processus conduit à une réduction de la quantité de travail pour le même résultat.
Comment justifier auprès d’un client que l’on s’est contenté d’utiliser les ressources à notre disposition de manière modérée ? Notre façon de travailler doit être optimisée continuellement pour permettre un rendement efficace de notre activité. L’informatique a besoin de ça. En tant qu’utilisateur quotidien des nouvelles technologies, n’êtes-vous pas fatigué de cette philosophie du “Good enough”1 ?
Certains pourraient penser que l’eXtreme Programming est la galère du développement logiciel, les développeurs devant travailler au son des tambours rythmant les itérations toujours plus rapidement. Et bien non, il ne s’agit pas de cela même si l’expression “extrême” pourrait le laisser penser. Si vous désirez trouver une image mentale plus cool, pensez par exemple aux sports extrêmes. Imaginez un informaticien qui sauterait d’un immeuble avec un parachute et un ordinateur portable et qui écrirait un programme tout en tombant en chute libre avant d’ouvrir son parachute in extrémis. Tout le monde sait que ces sports spectaculaires ne contiennent en fait qu’un risque mesuré pour les sportifs. Il faut être préparé, mais cela est naturel pour ces professionnels du sport.
Avec l’eXtreme Programming, vous allez pouvoir coder dans une maison en feu ! C’est une méthode agile et elle permet de développer un logiciel dans un environnement où les spécifications sont floues et changeantes… n’est-ce pas une maison en feu ? n’est-ce pas un sport extrême ? Certaines pratiques telles que le binômage, l’automatisation des tests, l’intégration continue, permettent de gérer avec beaucoup plus d’efficacité la crise probable de la fin de projet ! Alors pourquoi se priver de cet extrémisme ?
Il est vraiment dommage que ce terme “extrême” ait une si mauvaise image. Dans mes essais à venir, je ferai attention de l’utiliser associé à des adjectifs positifs pour lui donner une meilleure connotation. (Il est extrêmement utile de… Il faut faire extrêmement attention à…)
- Good enough software: du logiciel suffisant [return]