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?
la source
Réponses:
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:
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.
la source
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
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
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
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.
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.
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.
la source
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" :)
la source
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
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.
la source