Cet article traîne en brouillon depuis plusieurs mois sur mon blog. J’y ajoute des idées et des témoignages. Comment poser le sujet sans que les personnes concernées se reconnaissent? J’ai enfin trouvé le temps de synthétiser ce que j’ai observé depuis plusieurs années.
Alors de quoi on parle ? J’aimerai vous raconter l’histoire de Greg et de Andy.
Greg est Staff Engineer et Andy est un Engineering Manager. Greg doit aider Andy à sécuriser un important projet de migration d’outil. Depuis plusieurs semaines, l’ambiance entre les deux se dégrade. Elle est même tendue. Les risques et les retards s’accumulent. Greg découvre qu’il n’est pas invité dans des réunions importantes. Andy souhaite contrôler complètement le sujet. La situation est bloquée.
Gérer une situation de mise à l’écart et d’isolement demande quelques techniques de ninjas. J’en ai observé plusieurs, je n’ai pas de recettes magiques. Il y a quelques outils à connaître.
Mon plan d’attaque (méthode certifiée en 5 étapes, la 4ème va vous étonner…)
- Comprendre la situation
- Communiquer son rôle et ses intentions
- Rendre le travail de l’autre plus facile
- Utiliser d’autres moyens de communication
- Créer une bonne relation et une culture de l’échange
Comprendre pourquoi la personne se bloque et ne veut pas de votre aide
On passe d’abord par une étape de confirmation et d’empathie, en essayant de lister les différents bloqueurs. A-t-elle le temps ? A-t-elle compris votre rôle ? Y-a-t-il un manque d’informations ou des peurs ?
Entre ce que vous ressentez, et les faits, pouvez-vous établir une liste ? Comment la personne en face pense en ce moment ? Quel est son quotidien ou son agenda de la semaine passée ? A-t-elle eu le temps ?
Il est parfois intéressant d’aller à la rencontre de personnes neutres, ou de tiers qui travaillent sur le même projet. Est-ce que d’autres personnes observent et ressentent la même situation ? C’est peut-être aussi l’occasion de trouver des personnes moins impactées par le projet, d’anciens collègues, des amis, et des personnes à même de comprendre la situation.
Afin d’avoir un retour positif, si vous commencez à échanger avec d’autres personnes : restez sur les faits, racontez et partagez uniquement les faits. N’ajoutez pas forcément votre ressenti. Cela doit permettre aux personnes avec lesquelles vous échangez, de se concentrer sur le problème (et pas sur les conséquences).
Dans l’étape d’analyse où vous cherchez à comprendre le blocage, les raisons apparentes ne sont pas forcément les vraies raisons du blocage. Tanya Reilly, dans le livre The Staff Engineer’s Path, page 199, raconte le cas d’un collègue qui ne lui délivrait pas un script python promis. Il avait toujours une raison pour ne pas remplir la mission demandée. Après avoir posé la situation, pris le temps de comprendre, elle raconte qu’il s’avère qu’il était bloqué. Il était intimidé et il n’avait pas osé communiquer cela.
Le « plantage » du décor est donc la première étape.
Communiquer votre rôle et clarifier les responsabilités
J’ai vu des tensions entre des personnes lorsque les attentes d’une part, et les missions effectuées d’autre part n’étaient pas correctement documentées. Cela entraîne des attentes d’un côté, et de l’incompréhension de l’autre.
Dans le cadre d’un projet important, il est intéressant d’établir une matrice de responsabilités. Pour cela, on commence par établir la liste des « outcomes » du projet. Puis ensuite, on applique une matrice RACI. Enfin, on vérifie que tout le monde a compris son rôle et les attentes par rapport au projet.
J’ai aussi vu des projets où les personnes pensent que « ...parce que tu es Product Manager, c’était à toi de le faire…« . Votre titre/rôle dans l’entreprise est peut-être différent des attentes sur ce projet en particulier, dans ce contexte précis.
La matrice RACI signifie : Responsability / Accountable / Consulted / Informed).
Si je passe rapidement les 4 rôles possibles :
- Responsible: (Responsable) personne ou parties prenantes qui réalisent le travail ou la tâche. Ils doivent prendre les décisions, accomplir l’activité et réaliser la tâche (definition of « done »). Il peut y avoir plusieurs personnes responsables.
- Accountable: (Responsable ultime?) Personne ou partie prenante qui est le « propriétaire/client » du travail. Il ou elle doit donner son accord ou approuver lorsque la tâche, l’objectif ou la décision est complété(e). Cette personne doit s’assurer que les responsabilités sont attribuées dans la matrice pour toutes les activités liées. Le succès exige qu’il y ait seulement une personne Accountable, ce qui signifie que « tout s’arrête ici ».
- Consulted: (Consulté) Il s’agit des personnes qui doivent fournir leur avis avant que le travail ou la tâche ne soit réalisé(e) et validé(e). Ce sont les personnes « dans la boucle » d’information et qui participent activement.
- Informed: (Informé) Personnes ou parties prenantes qui doivent être tenues « au courant ». Elles ont besoin de mises à jour sur l’avancement ou les décisions, mais elles n’ont pas besoin d’être formellement consultées, ni ne contribuent directement à la tâche ou à la décision.
Peu importe que Greg ait le titre de Senior Staff Engineer. Il est responsable de la migration du logiciel et il a été désigné come tel. Le VP of Platform est Accountable car c’est lui qui a lancé cette migration, qui prend les décisions et qui attend le résultat. L’équipe « Securité » a été consultée, et elle est dans les échanges. Elle a donné ses recommandations. Enfin l’équipe « Achats » est juste informée, après une phase de négociation avec le vendeur du nouveau logiciel. Tout devrait bien se passer.
Peut-être que le blocage vient d’un manque de définition de la matrice de responsabilité pour une activité/une tâche particulière. Comment résoudre alors ce problème ?
Rendre le travail de l’autre plus facile
Greg doit avancer et il est bloqué par Andy.
Est-il possible d’identifier et de traiter des tâches secondaires sur l’agenda de la personne que vous voulez aider ? Pouvez-vous aller chercher de l’aide (en ramenant un technical program manager par exemple) pour libérer du temps ? Pouvez-vous identifier la première étape de ce que devrait faire votre interlocuteur, pour faire un premier pas ?
J’ai vu un manager débordé, qui était sollicité en permanence, et qui avait un agenda trop remplis. En reprenant la partie « recrutement » dans son agenda, j’ai pu libérer de son temps pour qu’il m’aide à avancer sur mon projet. Echange de bons procédés. Je ne pouvais pas faire la tâche à sa place, mais je pouvais prendre d’autres tâches pour l’aider.
Attention amis développeurs (H/F) : sur les sujets techniques complexes, on ne vous demande pas de faire « à la place de…« . Je pense que ce genre d’attitude amplifie encore plus le sentiment d’échec. La dure réalité de cet incendie, c’est que vous n’allez pas l’éteindre. Il faut que la personne en face de vous le fasse. Essayez de privilégier une solution ensemble, co-écrite, pour que tout le monde réussisse.
Lorsqu’elle trouve la solution grâce à vous, et qu’elle se débloque, la confiance reviendra rapidement.
En tant que Staff, vous devez avoir en réserve DES solutions. Ce qui est attendu de votre intervention, c’est votre capacité à proposer différentes solutions techniques ET organisationnelles. Plus vous êtes sénior, plus vous devez être en mesure de « faire faire » par les autres, jusqu’à ce que cela réussisse. Un projet qui marche est un projet sur lequel j’ai eu de l’influence, mais je n’ai rien fait.
Vous êtes la caféine dans le café. On ne vous voit pas, mais vous faîtes en sorte que les personnes se débloquent et réussissent.
Le Plouf n’aime pas l’action. Si on commence à agir on a gagné. Pour cela il faut donc décider et faire. Guillaume Duquesnay, USI 2009
source
Changer de moyens de communication
Il est 18h45, tu vois un message sur Slack apparaître en DM, avec juste « Salut! ». Et ton coeur fait boum car c’est ce @#%$ d’Andy (le gars du début, essaye de suivre stp…) qui répond à ta question de 9h10.
Soyons honnêtes, parfois le travail en remote évite de sombrer dans les faits divers dans les grandes entreprises à base de cassage de genoux.
Je n’invente rien, j’en parlais déjà en 2015 dans cet article.
Plus la tension monte, plus je vous conseille de trouver un moyen d’aller voir la personne, physiquement. Passez d’abord par des échanges par vidéo-conf via Zoom ou Google Meet. Mais je peux vous l’assurer : rien de tel qu’une bonne conversation, les yeux dans les yeux.
J’ai cru parfois voir de la tension ou un refus d’échanger, et le malentendu s’est dissipé en allant voir la personne. Attention à vous même : nous sommes parfois dans l’interprétation, car nous n’avons pas la personne en face pour discuter
Je me suis parfois invité dans des réunions (merci les agendas ouverts sur Google) pour pouvoir simplement écouter. C’était mon moyen de m’assurer que mon travail pouvait être effectué. Autant il semble compliqué d’entrer dans une salle de réunion en vrai, autant je peux vous dire que votre arrivée magique dans le stand-up du matin sur Zoom, peut passer crème.
Lorsque vous n’avez pas accès aux bonnes informations, vous pouvez aussi solliciter d’autres personnes. Il est parfois intéressant de relire des pages Confluence, de revoir l’enregistrement vidéo d’un échange avec un partenaire, ou de retrouver les slides utilisés par les orateurs. Un vrai métier, je vous assure.
Une fois arrivé face à votre interlocuteur, je vous invite à regarder et à apprendre les principes de la « Communication NonViolente« , venant des travaux de Marshall B.Rosenberg. Observation, Sentiment, Besoin et Demande. Cela marche aussi en tant que parent avec les enfants.
Et parfois, il n’y a rien à faire. Il n’est pas toujours possible de résoudre une situation d’inter-blocage de Threads, je vous laisse un indice pour terminer le travail à la maison.
Créer une relation et une culture de la collaboration
Idéalement, en tant que Staff Engineer, je vous invite à mesurer votre jauge de leadership. Elle se remplira lorsque vous allez voir, aider, présenter et écouter les personnes. Elle se vide lorsque vous restez devant votre éditeur de code. Vous ne pouvez fonctionner/activer et influencer que par les autres. Si vous pensez que la solution à votre problème actuel se trouve dans IntelliJ/PyCharm/RubyMine/VScode, et que vous êtes SEUL devant cet éditeur de code, posez-vous la question du rôle de Staff Engineer.
Pour impacter votre équipe, puis votre domaine, puis l’ensemble du département technique, puis toute l’entreprise, et enfin toute l’industrie… il faut trouver et créer des moments d’échange et de collaboration. Au fil des années, j’ai l’impression que je dois regarder sans cesse au delà de ma zone d’influence actuelle.
Je propose souvent de travailler à plusieurs sur les sujets délicats. C’est parfois aussi le moyen d’améliorer une relation tendue avec une personne. En étant en groupe, la dynamique globale réduira les tensions.
Enfin il est important de s’assurer que le travail des autres (et pas uniquement votre) soit reconnu. L’un des moyens de montrer votre impact, c’est de montrer qui a réussi aux autres. Cela doit être sincère. C’est une attitude, un état d’esprit.
Conclusion
En conclusion, biens que l’histoire entre Greg et Andy ne soit que de la fiction, j’espère vous avoir partagé le rôle pivot du Staff Engineer. Ce n’est pas autant le lead technique, que le rôle de facilitateur qui est attendu. En plaçant l’empathie, la compréhension et la communication au coeur de leur approche, les Staff Engineers peuvent transformer efficacement les défis en entreprise.
2 likes
Commentaires récents