Bonjour Cédric! Je suis coach agile technique. Je travaille actuellement à Murex. J’aide les équipes à atteindre un rythme plus productif et plus durable. J’ai fait une école d’aéronautique, mais j’ai tout de suite commencé à travailler dans le développement par passion. J’ai été développeur pendant 16 ans, intégrant toujours plus de coaching dans mon travail. Nous sommes début 2022 et cela fait maintenant 4 ans que je suis officiellement coach.
Je reprendrais le “pourquoi” de Kent Beck: “Permettre aux développeurs de se sentir en sécurité dans ce monde”, en y ajoutant mon grain de sel: “Montrer une autre manière, plus soutenable”. Pour résumer, je suis coach technique pour “Faire découvrir aux développeurs une manière plus efficace, calme, et durable de travailler dans ce monde”.
En pratique, j’interviens auprès d’équipes de développements pour les guider sur les techniques de développements agile, comme bien sûr le TDD (Test-Driven Development), mais aussi le pair et mob programming, la collaboration, le design par incrément, les conventions d’équipes…
Un coach a souvent deux clients. Le premier est le client qui finance la mission, ou l’entreprise qui embauche directement le coach. Les seconds sont les membres des équipes qui seront concrètement coachées.
Les premiers attendent souvent plus de productivité, moins de bugs, ou encore l’amélioration d’autres mesures visibles à court terme de la performance de l’équipe.
Les seconds ont des objectifs beaucoup plus variés, personnels, et parfois cachés. Le coach les découvre lorsqu’il commence sa mission. La plupart du temps, il est impératif d’avancer sur les objectifs des seconds pour atteindre durablement les objectifs des premiers.
Une organisation (une équipe ou une entreprise) étant un système, il est très difficile de poser des objectifs de résultats précis. Je préfère utiliser des objectifs d’experimentation, basés sur une hypothèse, en voici un exemple:
Hypothèse : Nous pensons qu’accompagner l’équipe sur les techniques de développement par incrément sur leur propre code
L’objectif suivant: livrer plus tôt tout en réduisant le nombre de bugs en production
Nous pourrons valider notre hypothèse lorsque le taux de bugs diminuera
Nous évaluerons notre progrès sur cette experimentation par le nombre de sessions effectuées avec l’équipe et leurs évaluations des sessions
J’ai écrit plus en détail sur ce sujet sur mon blog.
Le métier de coach agile technique est à la croisée de nombreuses disciplines: développement, architecture, agilité, conduite du changement, coaching… C’est un des aspects que j’aime le plus dans ce métier. Voici par exemple les principales compétences que j’ai eu l’occasion d’utiliser:
Dans mon passé de coach intégré à l’équipe, j’étais 100% du temps avec l’équipe. C’est une position intéressante puisqu’on reste au centre de l’action, et qu’on peut avoir un impact certes local, mais fort et sur le long terme. Dans ce cas, la journée type est celle d’un développeur, en passant la plupart de son temps à pair-programmer.
Maintenant que je suis officiellement coach, je ne suis plus 100% de mon temps avec les équipes. J’anime des code katas avec certaines d’entre elles, des sessions de mobs avec d’autres, ou encore des workshops spécialisés. Dans mon poste actuel, à Murex, nous avons créé une équipe de coaches techniques à temps partiels, qui sont des développeurs qui nous assistent pour coacher les autres équipes. Nous passons une journée par semaine avec eux pour les former à accompagner. En plus de ces activités, je consacre également du temps à imaginer comment étendre nos pratiques à d’autres équipes de l’organisation, ou à créer des nouveaux ateliers pour répondre aux derniers problèmes remontés par les équipes. Donc non, je n’ai pas vraiment de journée type, si ce n’est un mélange de toutes ces activités.
Le changement est un problème complexe, et par définition, il n’y a pas de recette garantie de succès! Il faut experimenter et s’adapter. J’ai cependant repéré quelques paramètres qui facilitent ou bloquent grandement mon style de coaching:
Je pioche mon inspiration de diverses sources. Comme je l’ai dit plus haut, je m’appuie beaucoup sur l’experimentation et l’adaptation.
Voici plusieurs exemples concrets:
Mes collègues coaches à Murex et moi avons également quelques prototypes en cours d’experimentation:
test && commit || revert
) a par nature un aspect ‘poker’ ou on parie sur son code. Nous pensons qu’on peut pousser cela plus loin en comptant des points en fonction du nombre de petits pas, du nombre de fois ou un test échoue… (https://github.com/daviddenton/refactoring-golf) ;Tout a fait. Voici ce que mon équipe et moi faisons actuellement à Murex:
test && commit || revert
) comme un outil pour rendre les katas plus amusants et pour encourager les participants à découper la programmation en étape encore plus petites ;Ce livre est une très bonne présentation du métier de coach agile technique. Le livre contient un guide à l’usage du développeur ou du coach qui voudrait devenir coach indépendant. Mais la grande majorité du livre présente la méthode Samman. Celle-ci consiste en quelques éléments clefs:
J’ai déjà évoqué ce point dans les conditions pour qu’une mission de coaching réussisse.
Il arrive cependant que nous nous rendions compte après le début du coaching que certaines personnes sont particulièrement réticentes. Si c’est une seule personne et qu’elle n’a pas trop d’influence, le problème se règle souvent de lui même lorsqu’elle voit les améliorations que le coaching apporte. C’est plus compliqué si elles sont plusieurs ou si elle a de l’influence. Dans ce cas là, j’ai appris qu’il fallait rapidement discuter avec la ou les personnes en tête à tête pour essayer de comprendre leurs besoins et voir comment collaborer de manière constructive. Il peut arriver qu’on en arrive à arrêter un coaching sans espoir plutôt que de s’épuiser et générer de la frustration des deux côtés.
Il faut admettre, puisque le changement est un problème complexe, que nous ne maitrisons pas tous les paramètres, et que parfois, cela ne fonctionne pas!
J’ai d’ailleurs écrit à ce sujet sur mon blog.
Trois difficultés majeurs me viennent tout de suite à l’esprit:
Très bonne transition! Malgré la difficulté, nous utilisons plusieurs techniques:
Enfin, il faut admettre que mesurer notre impact est quasi impossible. Henrik Kniberg le décrit dans Confession of a Change Agent. Il mesure son impact en fonction des sourires qu’il reçoit quand il entre dans l’open space de l’équipe.
Nous n’avons pas de durée type. En général, il faut compter un minimum de trois mois pour commencer à voir les effets.
Les interventions coachings n’ont d’ailleurs pas toutes la même intensité. Nous essayons de nous adapter au rythme des équipes. Certaines préfèrent ne nous voir que quelques heures par sprints. D’autres voudraient nous voir tous les jours!
Il est également bon d’avoir des pauses, de laisser les équipes assimiler seules, pour laisser le changement se faire.
Après un certain temps, les équipes deviennent des ‘alliées’ de transformation plutôt que des clients, et la relation s’inverse! Ce sont alors elles qui nous aident à construire des nouveaux outils et à nous promouvoir auprès des autres équipes.
Comme nous n’intervenons pas à 100% dans une équipe, il y a peu de risque de dépendance.
En revanche, il faut savoir sortir d’un coaching qui devient improductif. Malgré nos précautions, il arrive qu’on se retrouve dans une situation où notre action est devenue inutile. Il faut savoir dire stop à ce moment là. Cela sous-entend, que si on est un coach indépendant, il faut nourrir son réseau pour pouvoir s’extraire d’une mission, en trouver une autres, et pourquoi pas peut être trouver un autre coach qui sera peut-être plus compatible avec l’équipe.
C’est très variable. Ça dépend beaucoup d’où part l’équipe: état du code, technologie, pratiques en place, état d’esprit. Voici quelques éléments de réponse:
Pour résumer, je dirais que l’écueil principal est de ne pas accepter la nature complexe de la conduite du changement. En pratique, cela ce traduit par les 3 erreurs suivantes, dans lesquelles je retombe malheureusement plus souvent que je ne le souhaiterais :
Je crois réellement en ce que je fais. Je suis tombé dans eXtreme Programming au tout début de ma carrière, et ça changé ma vie de dev:
D’autres développeurs qui sont passés par XP m’ont fait le même témoignage. Une fois qu’on y a gouté, c’est très difficile de revenir en arrière. Ça ne veut pas dire que ce soit facile, XP met du temps à maitriser, et il faut dépasser beaucoup de blocages mentaux. Mais cela enlève 80% du stress du métier de développeur.
C’est un métier qui me permet de “Montrer une autre manière de travailler au développeurs, plus soutenable et plus sure”. Comme je l’ai dit plus haut, c’est un métier qui associe beaucoup de sujet intéressants. Enfin, lorsque l’on est développeur, les utilisateurs sont souvent éloignés, tandis que le coaching technique me permet d’être à leur contact tous les jours!
La plus grande différence que j’ai pu observer vient des contraintes de sécurités. Les exigences des clients poussent les entreprises à agir en amont sur la qualité.
Malheureusement, je n’ai pas observé de différence flagrante. On enseigne toujours la technique de ‘Faire parfaitement du premier coup’ pendant les études. Les entreprises recrutent maintenant sur un tableau blanc, sans test, sans possibilité de faire du développement par incrément, et sans droit à l’erreur. Enfin, le nombre de développeurs juniors augmentant exponentiellement, les bonnes pratiques ne sont malheureusement que rarement enseignées aux nouveaux entrants.
Je pense que ce sont des synonymes pour beaucoup de personnes.
Personnellement, je n’aime pas trop le terme de Coach Craft. Le terme “Crafter” est galvaudé, il semble qu’il soit devenu un synonyme de développeur.
Je comprends l’intention derrière le Software Craftsmanship, mais je trouve que cela sépare le développement des autres aspects de l’équipe. XP intègre toute cette diversité dans un tout cohérent.
Selon moi le coaching agile technique, c’est coacher les équipes à devenir plus agiles en intégrant les prérequis techniques (au découpage en stories par exemple), alors que coach craft ne m’évoque que du coaching de pratiques de dev, sans contexte. D’autre part, il est possible de coacher les développeurs aux principes agile par l’intermédiaire des katas! Le coaching agile technique, c’est du coaching agile via les techniques de dev, et pas du coaching aux techniques de dev agiles!
Si je ne devais en recommander qu’un seul, ça serait The Art of Agile Development de James Shore. C’est une référence complète qui fait un tour d’horizon du sujet et dans lequel je me replonge régulièrement.
Sinon, voici une courte sélection:
Après, la liste est trop longue! Le coaching agile technique est suffisamment divers pour qu’on puisse s’inspirer de presque tous les domaines.
Oui, je blog régulièrement à propos du coaching agile technique sur https://philippe.bourgau.net . Que vous soyez coach technique ou développeur souhaitant amener du changement, ça devrait vous intéresser.
[FR] Livre Blanc : Créer une culture de la connaissance dans vos équipes de développement logiciel [EN] White paper : Create a learning culture within your software development teams |