Quelles sont les qualités d'un bon
manager de développeurs ?
En 2018, Microsoft a mené une étude nommée
"What makes a Great Manager of Software Engineers?"
pour comprendre les qualités attendues d’un Engineering Manager selon
les développeurs eux-même.
En voici les points clés par ordre d'importance.

Un bon manager cultive l'"Engineering Wisdom".
-
Laisse de l’autonomie
En décrivant les résultats souhaités tout en laissant le soin aux développeurs de faire leurs propres choix d’implémentation.
-
Soutient l’innovation
En laissant les développeurs essayer de nouvelles choses, tout en offrant un contexte sécurisé ou l’erreur est permise.
-
Développe les talents
-
En fournissant des opportunités pour du travail stimulant
En fournissant des feedbacks activables
-
En créant des situations permettant d’apprendre par soi même.
-
-
Construit la culture de l’équipe
Par exemple en définissant les normes de qualité de travail auxquelles l’équipe doit aspirer.
-
Guide l’équipe
En rappelant par exemple les points clés à considérer (mise à l’échelle, stabilité, disponibilité...). Et en faisant en sorte que l'équipe soit convaincues de l’importance du travail effectué.

Un bon manager motive.
-
Promeut l'équité “Praise publicly, correct privately”.
-
Par exemple en montrant une reconnaissance pour le travail fourni, et en l’exposant au top managment.
-
En donnant l’occasion aux développeurs de présenter leur travail devant le reste de l’entreprise.
-
-
Construit une relation avec chaque membre de l'équipe.
-
Reconnait les particularités individuelles
Adapte le travail au intérêts et aux compétences de la personne concernée.
-
Maintient une ambiance travail positif
Par exemple via de la flexibilité dans les horaires de travail, facilitant la qualité de vie. Ou en fêtant les succès de l’équipe.
Un bon indicateur de la bonne santé de l’équipe semble être l’ambiance aux stand-up meetings.
-
Inspire l’équipe
(Ce point n'a été rapporté que par les managers eux-même.)

Un bon manager arbitre les communications.
-
Libère le passage
En faisant en sorte que les développeurs soient le moins interrompus possible.
-
Facilite les communications externes
En essayant d’obtenir ce dont l’équipe a besoin ou en représentant l’équipe face au top-management.
-
Gère le (re)alignement avec l'entreprise
En partageant de façon claire les infos stratégiques sur les objectifs à atteindre et en expliquant les résultats souhaités.
Le but est de s’assurer que les efforts soient dirigés dans la bonne direction.

Un bon manager est technique.
Le manager ne doit pas nécessairement produire de code ni prendre des décisions techniques.
Un manager ayant des connaissance techniques moyennes mais d’excellentes compétences sociales semble être d'ailleurs le plus apprécié.
Cependant, avoir des connaissances techniques permet:
-
D’être respecté par l’équipe
-
D’être plus vigilant quant aux problèmes de qualité de code
-
D’évaluer plus justement le travail fourni par les développeurs
-
De sympathiser avec l'équipe
-
De faciliter leur travail
-
De représenter au mieux l’équipe
-
D’avoir des discussions pertinentes pour aider les développeurs dans leurs décisions techniques

Conclusion
-
Cette étude offre une trame des principaux attributs des managers de développeurs, ainsi que des stratégies actionnables pour les mettre en place.
-
Elle donne des preuves empiriques de similitudes et des différences entre le management dans le domaine de la conception logicielle et le management dans d'autres domaines.
-
Elle fournit des données à considérer en cas de recrutement ou de formation de managers.