Les méthodes agiles sont-elles possibles à l’offshore ?

La prestation offshore est le plus souvent synonyme de cycle lourd de développement en cascade. Pourtant l’eXtreme Programming peut permettre d’assurer de bien meilleurs résultats dans de nombreux cas.

Quel est le but de l'eXtreme Programming : réduire les coûts du changement. Quel est le but du développement offshore : le même. C'est sur base de ce constat que nous avons fait évoluer depuis plus d'un an notre collaboration avec certains de nos clients, et tout particulièrement un éditeur de logiciel dans le monde de la gestion électronique de la relation client.

Après un an à utiliser les méthodes traditionnelles, à définir les besoins au début de chaque développement dans le cadre de l'évolution du produit, avec les difficultés de compréhension, à reprendre ensuite des besoins souvent trop figés en raison d'un marché sans cesse mouvant et évoluant, accroissant sans cesse les coûts de modifications, il nous fallait trouver un nouveau mode de collaboration

Une évidence,  l'eXtreme Programming, avec ces valeurs et ces principes, était la solution :

- La communication, moyen fondamental pour éviter les problèmes, a été  possible avec les nombreux moyens actuels (bureau virtuel, prise de main à distance, chat, partage de serveurs, etc...) afin d'avoir une communication de proximité quotidienne et intense,
- La compréhension, d'autant plus importante dans le cadre du développement offshore en raison des barrières de la langue, a été grandement améliorée par l'utilisation des métaphores permettant à chacun de bien comprendre ce qu'il attend de l'autre,
- Le refactoring, permettant une conception tout au long du projet, privilégiant la simplicité et permettant d'avancer au plus vite, a permis d'avoir un produit ayant toujours la meilleure qualité de code, maintenable et évolutif,
- Le testing, avec l'écriture des classes de test avant tout implémentation d'une nouvelle fonctionnalité, et la tenue de scénarii de tests fonctionnels sur la totalité de l'application, a permis de réduire drastiquement les coûts de correction,

Et surtout, des cycles de développement très rapides pour rester proche du besoin et s'adapter aux changements, a permis d'avoir un produit toujours proche des besoins du marché et de ces clients.

Aujourd'hui, cette approche permet d'avoir une vraie relation partenariale avec notre client, réduisant à la fois ses charges et ses coûts de développements. Seule contrainte pour lui, mais est-ce vraiment une contrainte : être toujours disponible pour communiquer, expliquer, tester afin d'avoir exactement le produit dont il a besoin ! N'est pas cela le but premier de tout développement ?