Le chemin vers le leadership technique: comment passer du développeur au chef d'équipe

Si le développement de logiciels semble ne constituer qu'une partie de votre objectif professionnel, vous devriez peut-être envisager de devenir un responsable technique. Un responsable technique peut signifier différentes choses: un chef d'équipe (sans rapport direct) ou un gestionnaire. Par exemple, un responsable de l'ingénierie est une personne qui est responsable de l'équipe et de ses projets. Cela signifie qu'ils sont également responsables de la carrière des gens, de la croissance de l'entreprise, des livrables, des délais, de la culture, des normes de code, de la dette technique, etc.

Si vous êtes un développeur, vous ne savez peut-être pas comment vous rendre à un poste de direction technique. Si votre objectif est de devenir manager prochainement, vous devrez vous demander pourquoi vous souhaitez ce poste. Devenir manager peut ou non correspondre à vos objectifs à long terme.

Je me suis lancé dans le développement de logiciels parce que je me sentais plus à l'aise avec les ordinateurs qu'avec les gens. Mais au bout d'un moment, je me suis retrouvé à aider de plus en plus d'autres développeurs. J'ai aimé diriger des projets et pousser pour de meilleures normes de code. C'était un choix évident pour moi personnellement.

Pour de nombreux ingénieurs en logiciel, se développer en tant que contributeur individuel (IC) pourrait être une voie plus appropriée. De nombreuses entreprises proposent des alternatives IC à la gestion. Ces alternatives incluent un ingénieur d'état-major, un ingénieur distingué ou un collègue ingénieur. Ce sont des rôles techniques très élevés, mais personne ne relève d'eux comme ils le feraient à un gestionnaire.

Alors, vous souhaitez devenir ingénieur ou autre type de chef d'équipe? Il est important d'être honnête sur ce qui vous motive - est-ce l'écriture de code et le logiciel d'architecture? Ou est-ce que cela aide les autres à obtenir de meilleurs résultats, à négocier des délais avec les parties prenantes et à convaincre votre équipe commerciale que la refactorisation du code n'est pas une perte de temps? Vos réponses à ces questions devraient vous aider à déterminer quel chemin est le plus approprié pour les résultats souhaités.

Si vous êtes toujours convaincu qu'une voie de leadership technique vous convient, alors vous avez du travail à faire. Pensez à travailler avec votre gestionnaire ou un mentor pour qu'il vous aide dans des domaines où vous êtes moins familier. Voici un aperçu de dix domaines clés:

Intensifier . Un vrai leader peut diriger sans titre ni autorité. Toute personne avec un titre sophistiqué et suffisamment d'autorité donnée par l'organigramme peut donner des ordres. Mais ce n'est pas ce qu'est le leadership - c'est ce que vous faites.

Par conséquent, vous devriez commencer petit. Prenez plus de responsabilités lors de projets difficiles. Aidez vos pairs en fournissant des commentaires dans les pull requests. Bénévole pour présenter les mises à jour du projet. Proposez des améliorations à votre équipe ou au workflow produit. Mentor un collègue.

Il y a suffisamment d'opportunités que les gens ne veulent pas voir ou n'ont pas suffisamment d'expertise ou de confiance pour les saisir. Déterminez ce avec quoi vos collègues ont du mal, puis faites-le.

Propriété . Lorsque vous prenez des responsabilités, soyez responsable de tout ce que vous faites ou ne faites pas. Un leader prend ses responsabilités et évite de blâmer les autres pour des erreurs, des délais manqués ou des bugs.

Plutôt que de se plaindre d'un bug que quelqu'un a introduit, aidez-le simplement à le corriger et expliquez comment l'éviter à l'avenir. Trouver des excuses n'aide personne. Prenez le temps de livrer ce à quoi vous vous êtes engagé. Si nécessaire, négociez un meilleur délai avec votre responsable. Dirigez un projet comme votre propre entreprise et en vous souciez réellement.

Récemment, l'un des responsables techniques de mon équipe a retiré la dernière branche principale. Ils ont vu une forte baisse de la couverture des tests unitaires. Plutôt que de se plaindre, il a ajouté une couverture de test manquante. Et ensuite présenté comment vérifier correctement la couverture et comment écrire un test unitaire pour des fonctionnalités complexes. Il a proposé d'aider si quelqu'un en avait besoin sans blâmer personne. L'équipe a apprécié cela.

Relations (ou politique). Parfois, les gens interprètent mal les relations et les appellent «politique». Ce sont les mêmes choses. Si vous ne voulez pas vous occuper de «politique», réfléchissez peut-être à nouveau si vous voulez commencer par devenir un leader.

L'établissement de relations significatives est l'une des responsabilités des responsables de l'ingénierie. La direction fait bouger les choses par l'intermédiaire d'autres personnes. Commencez à établir de bonnes relations avec d'autres responsables de l'ingénierie. Ce sont vos futurs pairs.

Il existe plusieurs façons de le faire, comme faire une présentation lors de discussions techniques, organiser des ateliers et encadrer des développeurs en dehors de votre équipe. Les responsables de l'ingénierie apprécieront les relations que vous construisez grâce à ces tâches.

Expertise technique . Un directeur de l'ingénierie doit d'abord être un ingénieur. Ils doivent avoir une solide expérience en génie logiciel et une expérience pratique. Devenir l'un des ingénieurs les plus forts de l'équipe est une exigence. Un manager qui ne peut pas coder ou ne comprend pas les détails techniques ne peut pas participer aux discussions techniques. Une fois que vous êtes devenu gestionnaire, vous devez toujours garder vos compétences suffisamment pointues pour être compétent dans une architecture de niveau supérieur.

Mentorat . Tout «très bon développeur» de l'équipe qui n'est pas un joueur d'équipe est plus nuisible qu'utile. Si vous êtes techniquement fort, vous devriez aider les autres à atteindre votre niveau. La programmation en binôme, les révisions de code, les présentations, les projets open source ou internes sont tous d'excellents exemples de la façon de commencer à encadrer les autres.

Il est rare que quelqu'un vienne vous voir et vous demande de le conseiller. Pourtant, en vous identifiant comme «l'expert» et en faisant de manière proactive les choses mentionnées ci-dessus, les gens commenceront naturellement à vous demander conseil. En aidant les autres, vous construisez des relations significatives et gagnez le respect des autres. Espérons qu'ils font de même en retour et encadrent les autres également.

Gestion de projet . La livraison des projets à temps est l'une des principales responsabilités de tout leader. Si, en tant que développeur, vous manquez constamment des délais et sous-estimez les tâches, les autres ne peuvent pas vous faire confiance. Vous devez être organisé et être au top de vos tâches.

Nous savons tous que l'estimation des projets logiciels est difficile car il y a beaucoup d'incertitude. Cependant, avec le bon processus, ce n'est pas impossible. Communiquez en permanence l'avancement et les attentes du projet avec votre manager ou vos parties prenantes.

Par exemple, mon équipe rédige un rapport de situation hebdomadaire, où les responsables techniques du projet ont la possibilité de communiquer les progrès, de mentionner tout bloqueur ou de soulever une préoccupation majeure de ne pas livrer à temps.

Communication . Communiquer de manière claire et concise est une caractéristique très importante de tout leader. Si vous ne pouvez pas expliquer clairement ce que vous attendez de votre équipe, c'est que vous avez échoué en tant que leader avant même que le travail ne commence.

La communication prend de nombreuses formes, y compris le langage verbal, écrit et même corporel. Travaillez toujours à améliorer toutes vos compétences en communication.

Mon équipe a manqué quelques délais parce que je n'ai pas communiqué les exigences clairement et à temps. Il y a eu quelques cas où le manque de communication a créé de la confusion dans l'équipe qui était censée faire quoi. J'ai appris que se fier aux chefs de projet ou aux parties prenantes de l'entreprise pour expliquer les détails du projet ne fonctionnait pas. Un responsable de l'ingénierie doit comprendre le projet, puis l'expliquer et le vendre à l'équipe. Et motivez-les à vouloir y travailler.

Gérer . Gérez votre manager (et parfois son manager). Cela signifie communiquer constamment avec eux et gérer les attentes. Les managers aiment rarement les surprises, bonnes ou mauvaises. Établissez des relations de confiance avec votre manager. Soyez la personne de référence pour les projets importants et de grande envergure, et réalisez-les dans les délais et dans le budget. Ensuite, d'autres projets suivront et vous pourrez répéter le processus.

Conflit et crises . Des problèmes de production surviennent, quel que soit le nombre de tests unitaires ou d'intégration que vous avez. Oui, vous souhaitez minimiser le nombre de bogues de vos projets. Ce qui compte plus, c'est la manière dont vous gérez les problèmes de production. Une personne qui commence à paniquer sous la pression est immédiatement disqualifiée en tant que leader aux yeux des autres. L'équipe et les autres managers veulent voir une personne calme qui a tout sous contrôle, même dans les situations les plus stressantes.

Un responsable technique avec lequel je travaillais était toujours calme. Il n'y avait pas de conflit ou de pression qui pouvait le faire craquer. Au moins personne ne l'a vu stressé. Quand il s'agissait de gérer un problème de production à 3 heures du matin, il n'a pas déçu. Le problème a été résolu en quelques minutes et il s'est présenté au travail comme si de rien n'était.

Un autre responsable technique a été tellement stressé par la date limite qu'il a appelé malade le jour où nous étions censés lancer la fonctionnalité. Il était tellement anxieux que tout le monde autour de lui était mal à l'aise de travailler avec lui.

Même s'il s'agit de deux opposés complets, vous pouvez deviner lequel a eu le plus de succès en tant que chef de file technologique.

Vision . Pour tout ce dont ils sont responsables, un leader doit comprendre «pourquoi». Ils sont également responsables de s'assurer que tous les autres comprennent «pourquoi» ils travaillent sur un projet. Un leader doit expliquer (souvent plusieurs fois) pourquoi le projet se déroule, pourquoi les personnes spécifiques y travaillent et comment ce projet s'inscrit dans la «vue d'ensemble». Une équipe doit croire en ce qu'elle fait, ce n'est qu'alors qu'elle peut être efficace.

Ouvrez la voie, à partir d'aujourd'hui

Le leadership ne se limite pas à une ou deux personnes, alors n'attendez pas la permission, intervenez aujourd'hui. Soyez un expert dans votre domaine et commencez à aider les gens lorsqu'ils sont bloqués. Travaillez vos compétences en communication, même quelque chose de mineur comme la documentation technique. Établissez d'excellentes relations professionnelles avec vos pairs actuels et potentiels. Assurez-vous de bien gérer votre temps et de respecter les délais de vos projets. Et n'oubliez pas que le leadership concerne les gens, alors aidez vraiment les gens à grandir et à faire de leur mieux.

Vous pouvez me trouver sur Twitter //twitter.com/netxm si vous avez des questions ou si vous voulez simplement dire «bonjour».