Le Touilleur Express

  • Accueil
  • A propos de l’auteur
  • A propos du Touilleur Express
Next Previous

Gérer les situations de blocage en tant que Staff Engineer

2 février, 2024

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 ?

Généré avec Chat GPT4 et le module images… ça claque non ?

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
MidJourney qui génère un Staff Engineer et un Engineering Manager… yolo

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 personnes face à face
ChatGPT4 peut aussi générer de belles images (à partir du contenu de l’article du blog)

3 likes

Articles similaires:

Réussir son démarrage comme Staff/Principal Engineer dans une nouvelle entreprise InariDevenir Staff Engineer : comment et pourquoi ? Default ThumbnailDe quoi s'envoler… Default ThumbnailLogiciels recommandés pour développeur sur Mac

Chercher

Derniers articles

  • L’instant T où tu poses ta dém…
  • The « Robinson » projection – comprendre son système d’information
  • Réussir son démarrage comme Staff/Principal Engineer dans une nouvelle entreprise
  • Gérer les situations de blocage en tant que Staff Engineer
  • Un monolithe, c’est quoi ?

Commentaires récents

  • Nicolas Martignole dans The « Robinson » projection – comprendre son système d’information
  • Lucas dans The « Robinson » projection – comprendre son système d’information
  • Guillaume dans The « Robinson » projection – comprendre son système d’information
  • Francois Dechery dans The « Robinson » projection – comprendre son système d’information
  • Gaëtan dans The « Robinson » projection – comprendre son système d’information

Les plus lus

  • Les revenus d’un informaticien indépendant en EURL - 89 684 affichage(s)
  • Optional en Java 8 - 70 951 affichage(s)
  • Changer la batterie d’un MacBook Pro de 2011 - 65 588 affichage(s)
  • Quelle est la différence entre volatile et synchronized ? - 65 464 affichage(s)
  • Retour sur la soirée du lundi 12 juillet chez Doctolib - 63 072 affichage(s)
  • Un modèle de Product Backlog et de Sprint Backlog avec Excel - 57 801 affichage(s)
  • Redis, découverte d’un moteur clé-valeur simple et puissant - 51 018 affichage(s)
  • Comment simuler le navigateur de l'iphone avec Firefox ou Safari ? - 45 656 affichage(s)
  • serialVersionUID mythes et légendes - 41 900 affichage(s)
  • Développeur après 31 ans ? Ridé et chauve tu seras - 39 394 affichage(s)

Mots clés

agile ajax Apple architecture barcamp BarCampJavaParis ddd devoxx esb exo flex geek google grails groovy humeur humour independant iphone Java javascript jazoon jboss jboss seam jsf jug Linux mac mule paris jug parisjug pjug play playframework portlet recrutement ria Scala scrum spring Startup usi usi2010 web xebia

Derniers articles

  • L’instant T où tu poses ta dém…

    Retour d’expérience sur la démission et le moment où vous devez quitter une entreprise.

    6 likes

    24 octobre, 2024
  • The « Robinson » projection – comprendre son système d’information

    Nous sommes en juillet 2022 chez Doctolib. Je travaille sur un projet

    5 likes

    22 octobre, 2024
  • Réussir son démarrage comme Staff/Principal Engineer dans une nouvelle entreprise

    Je prépare une présentation avec mon collègue Théotime pour la conférence Cloud

    3 likes

    6 octobre, 2024

Mots clés

Apple (32) Architecture (14) Big Data (5) Conference (8) Devoxx (55) Dev Web (37) Doctolib (2) geekevent (1) groovy (2) Innoteria (11) Java (517) Linux (10) Non classé (15) Perso (266) Recrutement (2) Scala (30) scrum (43) Société (3) Staff Engineer (5) Startup (21) Web 2.0 (67)

Le Touilleur Express

Blog par Nicolas Martignole

Contactez-moi : nicolas@touilleur-express.fr

Suivez-moi sur X (Twitter) : @nmartignole

Copyright© 2008 - 2024 Nicolas Martignole | Tous droits réservés
  • A propos de l’auteur
  • A propos du Touilleur Express
  • Reset Password

Le Touilleur Express