Développer des produits avec des équipes distribuées

Après la conférence que j’ai donné le 10 avril pour le ScrumDay, je suis en train de préparer celle que je donnerais lors de Mix-IT le 30 avril 2014.

Le résumé de la session est assez similaire entre les deux, voici celui du ScrumDay :

De nos jours, presque tout le monde sait faire grandir une infrastructure de machines en mode distribué, avec une très bonnes communication entre elles, et en évitant les points uniques de défaillance (c’est une traduction de SPOF, single point of failure). En y réfléchissant, des serveurs distribués à travers le monde ne sont pas si différents que des équipes distribuées, elles ont besoin de connexion et de synchronisation…

Vraiment ?

Nous sommes des humains … pas des machines …

Dans cette session, nous allons voir comment eNovance, une société qui conçoit des produits destinés à bâtir des infrastructures informatiques, d’ou le pitch initial… Nous allons donc voir comment eNovance a fait grandir son équipe de développement produits en mode distribué en suivant les valeurs et principes Agile. Cette session expliquera comment nous nous appuyons sur nos Product Owner pour guider nos contributions à des logiciels libres constitutifs de nos produits. Nous verrons par exemple comment nous planifions nos itérations en suivant le rythme donné par le projet Openstack. Nous verrons également comment nous organisons nos scrums, sprint planning, sprint review et retrospectives en nous adaptant à des équipiers positionnés sur différents fuseaux horaires.

La session présentera le mode de fonctionnement d’un projet open source emblématique : Openstack. Ainsi que la façon de contribuer de l’équipe eNovance.

La différence entre les sessions va se jouer sur plusieurs aspects :

  • l’expérience acquise par la première présentation,
  • les retours et les questions des participants,
  • les questions posées par un des organisateurs de Mix-IT qui vont orienter la présentation sur des aspects différents.

Franck Depierre, l’organisateur qui a posé ces questions stimulantes, m’a demandé de préciser certains points. Les questions sont en gras :

  • Pourquoi faudrait-il avoir toutes les équipes distribuées qui travaillent ensemble ?
    Ce sont les membres des équipes qui sont distribués à travers le monde. Pour une équipe qui développe un produit, les équipiers sont répartis entre les bureaux de Bangalore, Paris, Montreal et San Francisco, de plus certains équipiers travaillent de chez eux (Hambourg, Dallas, San Francisco, New-York, Bordeaux, Toulouse…). Les équipes sont composées de personnes ayant les compétences nécessaires pour développer le produit, leur localisation n’est pas un critère de choix.
  • N’est-il pas plus simple de faire l’intégration sans avoir de communication entre équipe ?
    Nous préférons une approche ou l’équipe livre un produit déployable. Les produits sont modulaires et combinables entre eux : une infrastructure cloud de base peut être associée à l’usine de développement logiciel par exemple.
  • A qui est destiné cette session ?
    A des agents de changement dans l’organisation, à ceux qui, dans le flux de développement d’un produit, s’intéresse à faire évoluer l’organisation de leurs équipes.
  • On a l’impression que tout est bien dans le meilleur des mondes. Quels sont les freins, les problèmes qu’il faut identifier ? Est-ce uniquement un pb de product owner ? Ne pourrais-tu pas donner des recommendations pour tout les profils de l’organisation ?
    Tout est encore loin d’être bien dans le meilleur des mondes… La distance créée de nombreux problèmes que nous n’aurions pas avec une équipe colocalisée et des communications face à face (on s’en doute)… Je compte évidement aborder ces difficultés et les solutions que nous avons identifiées pour l’instant.
  • Est-ce qu’un coach ou facilitateur aide à ce mode de travail ? Si oui, est-ce que le coach doit être unique et intervenir sur tous les sites ? Est-ce qu’il faut monter une équipe de coaches ? Quelles sont les réunions à mettre en place ? Sur quel cycle répétitif, basé sur Scrum ?
    C’est mon role dans l’organisation. Nous formons progressivement une équipe de personnes intéressées qui diffusent dans leurs équipes la culture agile et open source de l’entreprise. Et oui, avec une approche itérative 🙂
  • Comment justifier que les équipes distribuées sont plus viables que les colocalisées ?
    Les équipes distribuées permettent de regrouper des personnes compétentes sur un produit sans avoir besoin de leur imposer une localisation… Dans l’idéal, je préférerais que toutes les personnes puissent travailler dans la même pièce.

Il me reste une semaine pour revoir la session afin de maximiser la valeur des messages à transmettre ! Vous pouvez également me poser des questions via Twitter, en commentaire de ce billet ou par mail pour que je les prenne en compte dans ma préparation.

Pour en savoir plus sur cette édition de Mix-IT 2014, consultez les actualités et particulièrement les articles présentant le programme.

 

[modification du 15 novembre : la vidéo de la session de Mix-IT vient d’être publiée http://www.infoq.com/fr/presentations/produits-avec-equipes-distribuees]