Développement Offshore Distribué en Méthodes Agiles

Les scénarios d’externalisation offshore de l’informatique connaissent une évolution rapide. Ces changements, tant dans la taille que dans la complexité des projets qui sont menés en offshore, mettent en exergue la criticité du modèle de collaboration choisi entre le client et le fournisseur.

Xebia est l’un des cabinets de référence de l’écosystème Java/J2EE en Europe et l’un des pionniers du développement d’applications Offshore dans ces technologies. Le modèle proposé par Xebia, appelé Agile Distributed Delivery Model (ADDM) est un véritable modèle de développement agile distribué en mode Offshore qui s’appuie sur notre filiale située en Inde, à Gurgaon – New Delhi. Xebia a acquis une expérience unique dans la conduite de projets distribués pour ses clients européens. Pour chaque projet, les équipes de réalisation sont de taille humaine, allant de 4 à 25 personnes. Les critères de sélection des collaborateurs de Xebia India sont strictement identiques à ceux de leurs collègues européens.

Les meilleures pratiques d’ingénierie logicielle combinées aux avantages apportés par les méthodes agiles et l’instauration d’une responsabilité collective sont les garants de projets menés dans le temps, à coûts réduits et cela sans compromis sur la qualité.

L’offshoring selon Xebia est donc un concept mûr et éprouvé, très différent des modes de réalisation Offshore traditionnellement proposés par les acteurs de l’informatique française.

Les risques liés au développement logiciel offshore

L’expérience acquise par Xebia tout au long des projets menés en Offshore montre que les critères de vigilance sont nombreux et variés. Réussir des projets Offshore nécessite de porter une attention toute particulière aux éléments suivants :

  • Différences culturelles et linguistiques.
  • Couts financiers de communication et efforts de communication accrus, engendrant un temps d’exécution plus long.
  • Défis ciblés dans la gestion des spécifications, la gestion de configuration et l’intégration du code applicatif.
  • Confiance limitée dans l’équipe offshore de la part des équipes sur site.
  • Propriété du projet non partagée entre l’équipe offshore et l’équipe sur site.
  • Manque d’informations contextuelles du côté offshore.
  • Manque éventuel de compétences et d’implication de la part de l’équipe offshore.
  • Etablissement inopportun d’une relation client – fournisseur entre les équipes sur site et offshore, au lieu d’une équipe unie avec des responsabilités partagées.

Facteurs clé de succès du modèle ADDM

En s’appuyant sur les méthodes Agiles Scrum et xP dans un contexte 100% distribué, Xebia a réussi à relever les défis du développement Offshore et est en mesure de proposer des projets en respectant des engagements de délais et de qualité très ambitieux grâce au strict respect des principes suivants :

  • Recruter les meilleurs profils pour l’équipe offshore en suivant une procédure d’évaluation technique exigeante.
  • Répartir les équipes : les membres des équipes offshore et sur site partagent les responsabilités et travaillent en étroite collaboration tant au niveau technique que fonctionnel, comme une seule équipe.
  • Créer un référentiel à code unique, mettre en place une intégration continue, concevoir et mettre en place une stratégie de tests distribuée.
  • Organiser des points quotidiens (Stand Up Meetings de Scrum), privilégier la communication entre tous les membres des équipes, utiliser des Webcams.
  • Développer le logiciel de manière itérative et incrémentale par Itérations courtes de deux à quatre semaines (selon les caractéristiques du projet).
  • Privilégier le travail collaboratif en utilisant tous les outils modernes : Wiki, listes de diffusion, blogs et podcasts.
  • Co localiser les membres des équipes sur site et offshore pendant les 2-3 premières itérations d’un projet et organiser des échanges transcontinentaux bidirectionnels réguliers tout au long du projet.

Ces éléments de notre approche peuvent s’appliquer à n’importe quel projet de développement logiciel, qu’il implique un travail offshore ou non. Utilisés conjointement, ils jouent un rôle essentiel dans la satisfaction de l’engagement pour un développement logiciel offshore.

Avantages

  • Scale Up – linéarité de la démarche. Comme l’a précédemment démontré le projet de référence Sirsidynix et comme nous l’avons-nous même expérimenté, ce paradigme de conduite de projet est parfaitement scalable. Cela signifie qu’une équipe de 14 personnes sera deux fois plus productive qu’une équipe de 7 personnes. Les projets classiques n’atteignent jamais ces niveaux de productitivé et cela même s’ils sont co localisés.
  • Scale Down – c’est un point souvent négligé. L’un des principaux avantages de notre approche consiste à pouvoir réduire la taille des équipes sans perte de connaissance. En effet, tout comme l’équipe, les connaissances et l’expertise technique sont également réparties. Cette caractéristique permet de réduire le risque de dépendre totalement d’un seul site pour un certain type d’activité (notamment et par exemple, l’administration de base de données et la création de scripts de test).
  • Contrôle qualité continu – Etant donné que toute l’équipe est responsable de la qualité du logiciel livré, il n’est pas nécessaire d’élaborer une procédure de transfert vers une équipe de contrôle qualité distincte rendant possible une assurance qualité aussi efficace que si elle était menée par une équipe co-localisée.
  • Transparence – La progression du projet et du travail de l’équipe est affichée quotidiennement par l’intermédiaire de tableaux de bords à destination des commanditaires et à des fins de transparence absolue entre les membres de l’équipe, qu’ils soient sur site ou en Offshore.

L’approche OneTeam

Les personnes, les processus et la technologie sont employés à bon escient afin de réduire les risques liés à l’offshoring et de permettre la livraison d’un produit de qualité dans les temps.

Le schéma ci-dessous présente les pratiques utilisées par Xebia pour le développement de logiciels offshore.

Le concept OneTeam ne repose pas sur la séparation des équipes en fonction de critères géographiques, mais plutôt sur la création de plusieurs équipes comprenant chacune des membres sur site et en offshore. Les spécifications du logiciel à fournir sont ainsi mieux comprises, la volonté de collaborer est plus naturelle, les connaissances sont partagées et toute l’équipe tend vers le même but.

En outre, les membres de l’équipe sont plus enthousiastes, ce qui génère une meilleure productivité et des résultats optimaux. Grâce au concept OneTeam, Xebia a réussi à briser la barrière de la communication et à rendre la collaboration efficace.

Une équipe Scrum possède un chef de projet agile (le Scrum Master) localement et un coordinateur d’équipe en Inde. L’équipe a une structure horizontale : chaque membre a un rôle à jouer et est impliqué de façon opérationnelle dans le codage. Chaque fonctionnalité est développée conjointement par les différents sites grâce à une véritable propriété collective du code.

Dès que l’équipe atteint la taille de 7 à 9 personnes, elle est divisée en deux, chacune étant coachée par un Scrum Master.

Pour garantir une communication fluide, lorsque plusieurs équipes travaillent sur un même logiciel, un Scrum of Scrums (SoS) est organisé. Cette réunion rassemble les représentants de chaque équipe afin qu’ils partagent les informations entre eux et recherchent les interdépendances éventuelles. Ces réunions sont simples et se déroulent sous la même forme que les Stand Up meetings quotidiens tenus au sein de chaque équipe.

Toutes les réunions s’articulent autour de 3 questions simples : Que se passe-t-il aujourd’hui ? Que s’est-il passé hier ? Qu’est-ce qui empêche l’équipe de progresser ? Ainsi, les équipes examinent la manière dont elles peuvent s’entraider et supprimer tous les obstacles les empêchant d’avancer correctement. Ces réunions sont reconnues au sein de la communauté agile internationale comme d’une efficacité incontestable.

L’organisation OneTeam présente les avantages suivants :

  • Des relations interpersonnelles durables sont créées, permettant de dépasser les barrières linguistiques et culturelles.
  • Les problèmes de communication restent inévitables, mais sont contraints d’être résolus, en toute transparence.
  • La propriété de chaque portion du travail est repartie, ce qui crée des responsabilités partagées.
  • La connaissance est intégralement partagée et de façon instantanée, continue et réciproque. L’apprentissage est constant !
  • Un même processus technologique est suivi et amélioré par tous.
  • Partage du contexte fonctionnel, des processus et propriété collective du code.
  • Culture de l’amélioration continue, pratique de l’introspection et éradication instantanée des problèmes.
  • Respect entre pairs et cela qu’ils soient sur site ou en Offshore.

Lorsque l’organisation sur site pratique cette approche de “pair”, les membres de l’équipe offshore se sentent appréciés, valorisés et s’approprient le logiciel. Par conséquent, malgré les différences culturelles, les membres des deux équipes sont plus réceptifs aux idées et aux suggestions.


Posted

in

by

Tags: