Personnes, produit et technologie : guide du débutant sur la gestion de l'ingénierie
Publié: 2022-03-11En tant qu'ingénieur logiciel, vos responsabilités sont généralement définies très clairement : des tâches vous sont assignées et votre travail consiste à les mettre en œuvre à temps et efficacement.
Dans le rôle de directeur de l'ingénierie, cependant, les responsabilités ne sont souvent pas définies aussi clairement . La gestion n'est pas binaire ; il n'y a pas de réponses simples à certaines questions et problèmes. Votre succès en tant que gestionnaire dépendra de votre capacité à diriger votre personnel, à gérer votre produit et à administrer vos technologies.
Les gens sont votre priorité
Dans le rôle de responsable de l'ingénierie, votre nouvelle priorité est votre équipe. Alors comment s'assurer d'avoir une bonne équipe ?
Construire une équipe et établir la confiance
La première étape consiste à vous assurer que vous embauchez les bonnes personnes pour votre équipe si vous n'en avez pas déjà une en place.
Une mauvaise embauche ne fera pas seulement perdre leur temps, mais aussi le temps des autres membres de votre équipe, qui devront prendre le relais. Cela démoralisera le reste de votre équipe. Même si une personne est un programmeur brillant, elle peut toujours être une mauvaise recrue si elle ne correspond pas bien à la culture de l'équipe.
Assurez-vous de poser non seulement des questions techniques, mais également des questions ouvertes sur le travail en équipe ou sur la prise d'un rôle de leadership. Par exemple, demandez à un candidat :
- Pour décrire un problème récent qu'ils ont dû résoudre
- Comment ils ont mis en œuvre la solution
- Quelles approches alternatives ont-ils envisagées
- Pour parler d'un moment où ils ont eu un problème critique en production, comment ils y ont répondu et ce qu'ils ont fait pour éviter le même type de problème à l'avenir
Une fois que vous avez une équipe, consacrez du temps à gagner le respect de votre équipe et à établir la confiance. Pour diriger une équipe efficacement, vous devez développer une relation saine avec les membres de votre équipe. Prenez le temps de comprendre leurs objectifs de carrière et ce qui est important pour eux.
Le rendez-vous one-to-one est un outil essentiel pour tisser des liens avec chacun des membres de votre équipe et apprendre à mieux les connaître. Quelle est la fréquence idéale de rendez-vous en tête-à-tête ? Cela dépendra des besoins spécifiques des membres de votre équipe, mais c'est une bonne idée de les rencontrer au moins deux fois par mois.
Cependant, si vous et votre équipe collaborez étroitement ou si vous avez une grande équipe, vous pouvez organiser des réunions une fois par mois.
Comment les responsables de l'ingénierie responsabilisent et améliorent les équipes
Une grande partie de votre travail consiste à identifier les forces et les faiblesses de chaque membre. Aidez-les à remédier à leurs faiblesses en les associant à un ingénieur senior et en effectuant des révisions de code fréquentes, et concentrez-vous sur leurs points forts. Après tout, ce sont nos forces qui nous motivent et façonnent ce que nous aimons faire.
Attribuez des tâches en fonction des capacités et des caractéristiques de chaque ingénieur afin d'extraire le meilleur de chaque personne et de créer une équipe formidable. L'automatisation peut aller très loin à cet égard. Configurez l'intégration continue pour identifier le code défectueux ou sous-optimal et la personne qui commet fréquemment ce code.
Les membres de votre équipe chercheront constamment à apprendre, à s'améliorer et à évoluer dans des domaines qui comptent pour eux ou pour l'équipe. Les rôles et les responsabilités qui avaient du sens pour chaque membre de l'équipe l'année dernière pourraient ne plus convenir cette année. Pour s'assurer que chaque membre de l'équipe continue de se sentir mis au défi et de s'améliorer :
- Portez une attention particulière à leur croissance personnelle, investissez dans leur développement et aidez-les à réaliser leurs ambitions.
- Rencontrez individuellement les membres de l'équipe pour créer des plans de développement personnel et leur donner les moyens de définir leurs stratégies de carrière.
- Essayez de consacrer plus de temps au développement personnel, permettez aux membres de l'équipe de changer de rôle périodiquement et organisez des ateliers ou des cours de formation internes.
En plus d'assurer l'épanouissement professionnel de chacun, la responsabilité d'un directeur de l'ingénierie est de protéger son équipe. Vous devez permettre à votre équipe de prendre des décisions sans avoir peur de l'échec. Si les choses échouent, prenez vos responsabilités et apprenez de vos erreurs.
Cela favorisera l'audace de votre équipe alors qu'elle essaie de nouvelles approches et développe un état d'esprit de croissance. Cela dit, les erreurs ne devraient pas se produire plus d'une fois si vous avez fourni des commentaires appropriés et pris des mesures en temps opportun pour orienter votre équipe dans la bonne direction.
Chefs de produit et responsables de l'ingénierie
Le deuxième aspect important du rôle d'un directeur de l'ingénierie est le produit. Vous devrez établir une relation étroite avec le chef de produit pour aligner les attentes et tirer parti de la technologie et des compétences de votre équipe pour livrer un excellent produit.
Voici six responsabilités de responsable de l'ingénierie que vous devriez poursuivre :
S'assurer que le projet est bien priorisé
Quel est l'objectif de 6 à 12 mois pour votre équipe ? Quel est votre public ? Qu'attendent vos clients du produit ? Votre équipe sait probablement sur quoi elle va travailler au cours des prochaines semaines, mais il est crucial de comprendre le produit complet et sa direction.
Être impliqué dans les décisions de développement de produits
En tant que responsable de l'ingénierie, vous travaillerez avec différentes équipes et serez plus engagé dans la direction et les mises à jour des produits que vous ne l'étiez en tant que contributeur individuel. Vous n'êtes pas obligé d'être d'accord avec chaque décision concernant le produit, mais vous devez croire au produit et vouloir l'améliorer. Vous pouvez contester le chef de produit si vous n'êtes pas d'accord avec sa décision, mais gardez à l'esprit que le chef de produit a le dernier mot. Respectez-les et soutenez leurs décisions.

Définir et piloter la stratégie technique et la méthodologie de développement
Alors que le travail du chef de produit consiste à définir la stratégie et les concepts du produit, votre rôle consiste à définir la vision architecturale et la conception technique du produit. Vous êtes également responsable de définir la méthodologie de développement et de veiller à son adoption par l'équipe. N'oubliez pas : le chef de produit peut être propriétaire du produit, mais vous et votre équipe êtes propriétaires de l'implémentation du produit.
Dans certains cas, il peut être possible d'implémenter des fonctionnalités utiles avec un petit effort d'ingénierie. Par exemple, vérifiez si la mise à niveau vers la version la plus récente du framework utilisé par le produit peut vous aider à implémenter une fonctionnalité spécifique plus rapidement ou plus efficacement. Avoir une bonne vue d'ensemble du produit peut vous aider, vous et votre équipe, à identifier de tels cas et à les suggérer au chef de produit.
Équilibrer la création et le remboursement de la dette technique et développer de nouvelles fonctionnalités
Lorsque vous construisez votre produit minimum viable, le délai de mise sur le marché est la priorité absolue, vous pouvez donc accumuler une dette technique. Au fur et à mesure que le produit évolue, l'accent est mis sur l'ajout de nouvelles fonctionnalités et l'amélioration du produit tout en remboursant la dette technique. Sans aborder les compromis que vous avez faits initialement, l'ajout de nouvelles fonctionnalités prendra plus de temps et sera plus coûteux. Prenez le temps de comprendre et de suivre les compromis que vous avez faits et de trouver un équilibre entre la résolution de la dette et l'ajout de nouvelles fonctionnalités.
Utiliser la technologie et l'automatisation pour aider à gérer la dette technique**
Utilisez des analyses statiques du code source pour identifier le code avec le plus grand nombre d'indices de maintenabilité et donner la priorité à la refactorisation du code. De cette façon, il devient plus facile de travailler sur de nouvelles fonctionnalités et les performances du produit seront améliorées.
S'assurer que l'exécution du produit est sur la bonne voie
Vous devez avoir une compréhension de l'état actuel du travail de votre équipe. Si votre équipe est en retard, identifiez les blocages apparents et supprimez-les. Par exemple, si l'équipe est régulièrement bloquée sur des problèmes techniques, organisez de fréquentes sessions de programmation en binôme pour améliorer le partage des connaissances des membres de l'équipe. Si l'équipe passe beaucoup de temps à déployer le code sur les serveurs, automatisez le processus pour gagner du temps et le rendre moins sujet aux erreurs. Minimisez les interruptions et créez des processus clairs sur la façon d'entreprendre de nouveaux travaux et de traiter les rapports de bogues.
Technologie et Délégation
Même si vous êtes encore ingénieur, en tant que manager, développer des solutions logicielles n'est plus votre fonction première. Vous avez des ingénieurs seniors dans votre équipe, et ils sont responsables de la plupart des solutions techniques. Les généraux ne font pas la guerre avec des fusils ; les gestionnaires ne devraient pas avoir à microgérer chaque ligne de code.
Cependant, vous devez utiliser vos connaissances et votre expérience pour vous assurer que les décisions prises par les ingénieurs seniors correspondent à la feuille de route technique et à l'orientation du produit. Déléguez les décisions techniques à vos ingénieurs seniors, mais posez les bonnes questions pour vous assurer que le produit est évolutif, sécurisé et fiable.
Par exemple, contestez leurs choix avec « Et si nous avions 20 fois plus d'utilisateurs ? Serait-ce durable ? ou "Cette technologie sera-t-elle encore supportée dans deux ou trois ans ?"
Vous pouvez et devez proposer des solutions et des cadres alternatifs basés sur vos connaissances et vos domaines d'expertise, mais ne forcez pas ou ne faites pas pression sur votre équipe pour les accepter. Outre les suggestions technologiques, vous pouvez également faire des recommandations liées au processus et à la méthodologie de développement.
Assurez-vous également de surveiller les mesures clés du produit. Les mesures commerciales et techniques sont tout aussi importantes. Travaillez avec l'équipe DevOps pour créer des alarmes de surveillance du système et tenez votre équipe informée des problèmes de fonctionnement. Enfin, développez une méthodologie pour traiter les incidents lorsqu'ils se produisent afin de s'assurer qu'ils ne se reproduisent plus.
Enfin et surtout, restez à jour avec les dernières technologies et tendances. Plus vous avez de choix et plus vous en savez, plus vous aurez de solutions et de frameworks à votre disposition. Prévoyez du temps pour lire des articles, effectuer des révisions de code et participer à des discussions techniques avec votre équipe.
Plus vous en savez sur les questions techniques, plus votre équipe vous respectera. Se familiariser avec les technologies nouvelles et émergentes et encourager votre équipe à faire de même vous aidera à créer une atmosphère de curiosité et à mettre votre équipe au défi de rechercher des moyens nouveaux et innovants de résoudre des problèmes techniques complexes.
