Quelles compétences devrais-je développer pour devenir un responsable du développement / technique? [fermé]

82

Je suis actuellement un programmeur professionnel. Je souhaite élargir mes compétences, mais je souhaite également que ma carrière devienne un chef de file dans le développement d'une équipe. Je sais qu'il y a beaucoup à apprendre (et ce ne sera pas instantané), mais je pense que je suis assez intelligent pour le faire et que je suis prêt à relever le défi.

Je suis sûr que beaucoup de membres ici ont probablement déjà vécu cette expérience et sont maintenant des leaders en développement. Malheureusement, même si je connais certains domaines personnels que j'aimerais améliorer (profondeur des connaissances, étendue des connaissances, compétences, etc.), je ne suis pas vraiment sûr de la manière dont je commencerais dans cette situation.

En tant que programmeur, quelles étapes dois-je suivre pour atteindre ce but? Que devrais-je prioriser?

lunchmeat317
la source
Existe-t-il des opportunités dans votre entreprise actuelle pour être promu chef d’équipe? Sans expérience en tant que chef d'équipe, je me demande si trop d'entreprises n'engagent que de l'intérieur.
JeffO
@JeffO Je viens de changer d'emploi. Je ne sais pas si j'aurai l'occasion ici - je pense qu'il y a une possibilité, mais c'est une petite startup et je pense qu'il n'y aura qu'un seul responsable de développement à la fois.
lunchmeat317
2
Une seule compétence: la capacité de persuader une personne qui peut donner ce poste de vous le donner.
Vortexwolf
1
En fin de compte, il est fort possible que je ne sois pas fait pour cela. Même si j'aimerais faire avancer ma carrière dans cette direction, je pense que je tombe davantage du côté des développeurs - je veux juste me prendre la tête et coder, parfois. Considérant toujours les possibilités, mais maintenant avec prudence.
lunchmeat317

Réponses:

90

Pour devenir un responsable technique, les éléments suivants sont essentiels

  • La capacité de guider les membres du personnel à tous les niveaux d’ancienneté, d’une personne qui n’a pas fréquenté l’université depuis 3 mois à une personne qui programme depuis 30 ans

  • Une bonne connaissance de votre domaine de développement. Cela comprend: les langages, les frameworks, les utilitaires, les environnements de développement

  • Une solide compréhension des systèmes de gestion de problèmes, des compétences en gestion de projet et du contrôle de version

  • Soyez le tueur de bogues le plus utile

  • Savoir comment procéder en temps voulu à l'examen des codes, ce qu'il faut rechercher et comment minimiser le temps nécessaire à leur publication et les modifications à apporter.

  • Tenez-vous au courant des développements dans votre domaine de développement. Par exemple, si vous n’appreniez pas de nouvelles infrastructures ou technologies à partir de .NET 2, vous agiriez de manière très arriérée aujourd’hui.

  • Comment écrire des tests unitaires et des simulacres, et pour que vos développeurs les écrivent aussi

  • Connaissance de ce que sont les modèles de conception et quand les utiliser

  • Connaissance de ce que sont les odeurs de code et comment les atténuer

  • Intégration continue

  • La capacité de planifier des projets et des communiqués

En fonction de votre organisation et de la présence d'architectes ou non, vous devrez probablement connaître les éléments suivants:

  • La possibilité de composant vos projets et de les diviser en parties fonctionnelles

  • Une compréhension approfondie de la sécurité, y compris la manière correcte de gérer les mots de passe, la séparation des systèmes, la sécurisation des données, etc.

  • Concepts d'entreprise tels que les bus de service, les files d'attente de messages, BizTalk

  • Modèles de conception d'entreprise

  • Architectures de service / RPC telles que SOAP et REST

  • Les frameworks ORM tels que Hibernate, Entity Framework, Doctrine

  • Déploiement continu

  • Le nuage

  • La possibilité de recommander les technologies appropriées à utiliser pour un projet. Cela pourrait être difficile si votre équipe / boutique ne fait que .NET, PHP ou Java.

  • Concevez l'application de manière à ce que les améliorations futures soient facilement prises en compte

Si vous souhaitez devenir responsable du développement, vous aurez également besoin de:

  • Compétences en entrevue et comment trouver le bon personnel
  • Comment traiter les problèmes de personnes avec les membres de votre équipe
  • Gestion des directives / objectifs commerciaux et conversion des informations pertinentes en informations destinées à vos développeurs
  • La capacité d'estimer le temps pour les programmeurs de compétences variées
  • La capacité d'attribuer des tâches aux développeurs appropriés en fonction de leurs compétences et capacités

Et enfin, quelques autres points recommandés:

  • Apprenez en dehors de votre domaine de développement

  • Apprenez à dire NON lorsque les choses sont impossibles, hors de portée ou en conflit avec des contraintes telles que le budget ou le temps.

Gérer une équipe est un rôle stimulant. Vous devez être la personne qui peut répondre à toutes les questions, vous devez connaître les bonnes technologies à utiliser (sauf si vous avez un architecte), vous devez posséder des compétences en gestion des personnes et être accessible. par votre personnel (occupant un poste de direction). En plus de cela, vous devez avoir des compétences en estimation précises pour assurer la rentabilité du projet et pouvoir vous familiariser avec le code de quiconque pour identifier les problèmes et les résoudre rapidement. Vous devez éviter de vouloir tout faire vous-même et favoriser un environnement d'équipe non toxique. Vous devez rester continuellement à la pointe de votre technologie et apprendre les derniers développements et techniques, ainsi que les tendances générales du secteur.

Vous devez également connaître au moins une plateforme de base de données et bien la connaître. Savoir comment effectuer la réplication, les procédures stockées, le fonctionnement de l'optimiseur de requêtes, comment concevoir correctement un schéma et quels champs indexer.

Quel que soit le poste occupé, tout poste de haut niveau nécessite une capacité de communication efficace. Si vous n'êtes pas un conférencier confiant, envisagez de faire quelque chose comme Toast Masters (prise de parole en public). Apprenez comment faire et maintenir un contact visuel. Être confiant. Habillez-vous convenablement pour le poste. Mener par l'exemple.

Sam
la source
2
Je viens d'esquisser quelques idées auxquelles je pourrais penser rapidement. Je reviendrai et ajouterai plus tard. Bonne question.
Sam
Je peux seconder les avantages de Toastmasters. Cela m'a beaucoup aidé dans ma carrière. Etre capable de communiquer clairement vos pensées (surtout techniques à des personnes non techniques) est une compétence inestimable.
Jason Swett
27

D'après mon expérience, le responsable a un peu moins à voir avec le sale travail de programmation pratique et plus avec la gestion. À cette fin, je recommanderais ce qui suit

  1. Investissez plus de temps dans les activités de conception, d'architecture et de développement . En tant que responsable, votre fonction se concentrera sur la fourniture de conseils techniques et d'une orientation à votre équipe. Vous serez mieux chargé de comprendre comment les éléments d'un ensemble s'emboîtent et moins de comprendre le fonctionnement de la plomberie. Ne vous méprenez pas, vous avez besoin de solides compétences techniques pour être un leader efficace et compétent, mais une vision plus globale de ce qui se passe et de la façon dont cela fonctionnera sera plus cruciale ici. Vous devriez connaître davantage de modèles de conception de meilleures pratiques et de pratiques de codage efficaces

  2. Apprenez à gérer plusieurs tâches à la fois et à gérer votre temps . Si vous êtes doué pour le moment, c'est bien: développez-vous davantage. En tant que développeur, vous devez vous soucier de votre tâche / projet actuel. En tête, vous aurez

    • Pour assister à plus de réunions que vous ne l'aimez. C'est peut-être la partie la plus abrutissante du leadership d'équipe
    • Travailler sur l'allocation des ressources. Si vous avez de la chance, les ressources seront rares et les projets nombreux.
    • Prendre en charge l'architecture et la conception de projets
    • En fonction de la taille et de la structure de l'organisation, fournissez une multitude de rapports, dans les délais et dans les délais impartis. Pensez au chef de file en tant que gestionnaire de projet à faible loyer
  3. Préparez-vous à déléguer efficacement . Cette OMI sera la partie la plus difficile à régler. En tant que développeur, vous êtes habitué à vous salir les mains et à faire avancer les choses. Faire toute la plomberie et la recherche. Cela va devoir s'arrêter ou être réduit. Les concerts arrivent, vous les distribuez à l’équipe. Vous obtiendrez une partie de l'action, pas autant que vous êtes habitué. Et vous allez vous mordre la langue pour résister à la tentation de prendre plus d’action pour vous-même.

  4. Le long de la ligne plus professionnelle, envisagez une formation qui non seulement augmentera vos capacités, mais changera vos perspectives . Un cours intensif sur la gestion de projet logiciel ne fera pas de mal. Lean Six Sigma est également un très bon programme de formation (je peux attester de son efficacité) qui vous aidera à envisager la résolution de problèmes sous un angle plus logique. Sans oublier que depuis le poste de responsable, vous êtes prêt à occuper des rôles encore plus importants, ce qui nécessitera moins de compétences techniques pratiques et davantage de capacités de gestion.

  5. Affinez vos compétences en communication et en relations interpersonnelles . Vous serez le point d'entrée principal de votre équipe du monde extérieur. Votre responsable ou autre superviseur viendra d'abord vers vous. Les autres unités / équipes de votre organisation établiront une interface avec vous pour tout ce qui concerne l'équipe en premier. Vous allez gérer la ressource la plus difficile et imprévisible de tous: les personnes. Vous devez développer une peau épaisse, apprendre à avaler de grandes quantités de fierté et assumer la responsabilité des échecs de votre équipe.

Kolossus
la source
2
Excellentes réponses, j'aime bien la façon dont vous avez noté tous les éléments qui, en tant que développeur, ne sont généralement pas connus - en particulier la délégation. Dernier emploi, j'ai délégué tout ce que je pouvais et il me restait une montagne de choses pour me tenir occupé. Ensuite, pendant les (rares) moments libres, je faisais les choses "ennuyeuses": offrez une aide pour résoudre les bugs mineurs, de la documentation. Je dois mener par l'avant.
Rocklan
2
+1 pour souligner que les rôles de «premier plan» impliquent souvent beaucoup plus de compétences de gestion que de compétences techniques
Krease
C’est une réponse remarquable qui capture vraiment l’essence du rôle. Bien joué.
Lloyd Moore
14

Les choses que Sam n'a pas dites sont aussi importantes:

  • Comment définir des spécifications et donner du travail aux autres développeurs. Une partie de votre travail consiste à garder les autres développeurs 100% utilisés. Rédiger des spécifications sans ambiguïté est très important.

  • Comment créer une application squelette / prototype que tout le monde devrait suivre

  • Comment favoriser le bon moral des équipes

  • Comment assister, animer et animer des réunions, comment documenter des points d'action

  • Comment évaluer, rédiger un plan de projet et mettre à jour le plan de projet

  • Comment envisager l'avenir - si un problème se produit dans 3 mois, vous voulez essayer de le régler le plus tôt possible. Si un développeur part en vacances pendant 7 semaines, vous devez commencer à planifier dès maintenant.

  • Comment parler à la direction. Ils parlent une langue différente pour nous. Donnez-leur des solutions, pas des problèmes. Dites-leur ce que les problèmes techniques représentent pour eux.

Et bien que Sam ait déjà dit cela, l'une des choses les plus importantes est d' apprendre à dire non . Vous le ferez beaucoup . L'autre façon de voir les choses est de dire oui , mais "seulement si nous pouvons obtenir plus d'argent / temps / ressources" - ou "c'est pour la deuxième version" :)

Rocklan
la source
Je pense que beaucoup de vos pièces vont dans le seau Architecte ou PM. Mais yeh, parfois, le responsable du développement doit faire cela.
SandRock
11

Tout cela est dans le livre et de bonnes réponses. Permettez-moi de vous frapper par la réalité.
Croyez-le ou non, vous passerez une grande partie de votre temps à expliquer les gestionnaires

  • comment un problème est difficile à résoudre ou
  • pourquoi il ne peut pas être résolu dans le temps imparti ou
  • même combien il est moins important de le résoudre.

Pour cela, vous devez avoir les compétences nécessaires pour expliquer des choses techniques à des personnes non techniques, en termes non techniques. Et c'est très difficile. Par exemple, pensez à expliquer P = NP à 6 ans. Malheureusement, il n’ya pas de formation formelle pour cela, et vous devez l’apprendre par vous-même.

C'est aussi la position où le gouvernement politique commence à vous frapper. Le responsable vous dira de privilégier une personne car il / elle suit le processus, mais vous savez que cette personne ne vous sera d'aucune utilité dans votre équipe pour diverses raisons, du manque de compétences techniques à un membre de l'équipe non pas bon. Vous devez donc non seulement travailler avec cette personne, mais également lui donner de bonnes notes. Le contraire est la personne qui a de bonnes compétences et un membre de l’équipe très efficace mais qui ne sait pas comment faire plaisir à la direction et obtient donc moins d’évaluations.
Il y a ensuite des réunions inutiles, une personne occupant un poste élevé occupant un poste éloigné, qui donne des conférences sur les processus efficaces et sur la manière dont la dernière variation de processus va augmenter la productivité. Vous devez savoir comment cacher votre visage ennuyeux et avoir l'air énergique.

Manoj R
la source
1
"il faut savoir cacher son visage ennuyeux et avoir l'air énergique" hahaha
Adrien Be
Je me sens toujours ennuyé quand ces réunions commencent, sauf que quelque chose de technique est discuté
Akshay Mukadam Le