Synthèse du rôle de Leader Technique
31 Mai 2021
Introduction
Ce document a pour but dans un premier temps de décrire le rôle de Leader Technique dans une entreprise de développement informatique. Dans un second temps, il s’agit d’effectuer un bilan de compétences vis-à-vis du rôle puis de définir un plan d’action pour développer les compétences manquantes.
Description du rôle de Leader Technique
Contexte
Le rôle de Leader Technique consiste essentiellement à gérer une équipe pour qu’elle fournissent les meilleurs produits possibles. C’est un rôle qui peut tendre vers la position de CTO par la suite.
Mission
Ce rôle peut se décomposer en quatre pôles particuliers : La garantie de la qualité du produit, la formation de l’équipe, l’accompagnement de l’équipe et la médiation et la facilitation avec d’autres équipes. Chaque pôle est décrit en détail dans les paragraphes suivants.
Garantir la qualité du code nécessite une excellente maîtrise technique du développement logiciel. Il faut connaître de nombreux langages de programmation, des protocoles, des librairies, des frameworks, des outils, etc... Cela permet notamment de faire des choix d’architecture judicieux pour les projets futurs. Des périodes de veilles technique sont également nécessaires pour rester informé des dernières technologies. Notons que l’expertise technique ne peut se maintenir qu’avec une pratique du code régulière, c’est pourquoi un Leader Technique doit activement coder avec le reste de l’équipe. La garantie de qualité du code passe également par le suivi des bonnes pratiques de code (Software Craftmanship), le suivi de méthodes rigoureuses de cycles de développement ainsi que la mise en place de revue de code. Il faut néanmoins rester vigilant et ne pas forcer ces décisions au reste de l’équipe, exiger des standards sans consulter l’équipe ou bien devenir le solutionneur de facto.
La formation de l’équipe est essentielle pour faire progresser les compétences techniques internes. Il est nécessaire de créer une dynamique d’apprentissage à l’équipe où transmettre est une habitude et où chacun se met dans une posture de progression. On peut notamment organiser des formations. Attention à ne pas devenir le professeur de l’équipe et plutôt laisser chacun apprendre en autonomie lorsque c’est possible.
Ensuite, l’accompagnement de l’équipe passe par le fait de motiver ces différents membres, donner l’exemple et coder avec l’équipe. On peut également organiser des revues de codes pour faire progresser l’équipe. Ce rôle nécessite aussi de connaître les compétences ne l’équipe pour cibler les axes de progression.
Enfin, le Leader Technique est un médiateur et facilitateur avec le reste des équipes. Il est important d’être bienveillant avec chacun, les aider avec la notion de “Servant Leadership” et de faciliter la résolution de problèmes. Il faut également faire l’intermédiaire avec d’autres équipes et le client pour communiquer le besoin dans un sens et les points techniques dans l’autre.
Compétences
Chacun des pôles décrits dans la section précédente requiert des compétences spécifiques. Les paragraphes suivants en font une synthèse.
L’expertise technique passe par des connaissances approfondis sur les langages de programmation, les outils de développements, les librairies et les Framework. Puis, il faut connaître les méthodes de développement et les bonnes pratiques à mettre en place. Ensuite, il faut avoir des connaissances en gestion de budget et projet. C’est essentiel pour la communication avec le client et l’organisation de l’équipe ou l’allocation de ressources. Puis les compétences en communication pour bien transmettre le savoir, les besoins, les problèmes, etc... Enfin, il faut faire preuve l’intelligence émotionnelle pour écouter et comprendre son interlocuteur.
Bilan de compétences général
Le bilan de compétences permet de définir le plan de progression pour atteindre le niveau de Leader Technique. On peut décomposer les compétences en « hard skills » et « soft skills ».
Hard Skills
Les hard skills peuvent s’établir avec le fameux « Full Stack » Burger dans le milieu du Web. Il s’agit de sélectionner parmi les technologies plusieurs de chaque niveau du burger afin d’avoir une vision d’ensemble.
Dans un second temps, il faut connaître les méthodes qui assure la qualité du produit. On peut par exemple citer The Software Craftsman de Sandro Mancuso et Becoming a technical leader de Gerald Weinberg comme références pour développer ses compétences en termes de qualité de code.
Le tableau suivant synthétise les compétences techniques nécessaires :
Compétence | Exemple |
---|---|
Maîtriser un langage compilé | C ou C++ |
Maîtriser les langages Web | Javascript et HTML et CSS PHP ou Python ou Ruby, etc… |
Maîtriser un langage de script | Python ou Perl ou Ruby |
Maîtriser une base de données relationnelle | Postgres ou MySQL |
Maîtriser une base de données non relationnelle | MongoDB ou CouchDB ou Neo4J |
Maîtriser une librairie de tests unitaires | Jest ou Mocha ou Python unittest ou JUnit |
Maîtriser les outils de Dev Ops | GitLab CI/CD ou Github CI/CD Docker Ansible Kubernetes Jira Unix et Shell Apache ou Nginx |
Soft Skills
Les soft skills s’acquiert principalement par la pratique et l’expérience. Les différents aspects sont résumés dans le tableau suivant :
Soft Skills |
---|
Effectuer des présentations d'un projet |
Animer des formations |
Résoudre des problèmes projet |
Communiquer avec le client |
Identifier les compétences et lacunes des collaborateurs |
Être à l'écoute des membres de l'équipe et du client |
Conclusion
En définissant en détail les rôles et compétences du Leader Technique, on peut définir un plan de route permettant en l’espace de quelques années de devenir un bon candidat au poste. L’essentiel est désormais de planifier la monté en compétences et de la respecter dans la durée.