web-dev-qa-db-fra.com

Comment passer d'un développeur de logiciel à un gestionnaire de logiciel ou à un chef d'équipe?

Je suis développeur de logiciels (à temps partiel ou à temps plein) depuis près de 3 ans. J'ai toujours été le genre de personne à avoir le don de prendre les devants et de fournir l'organisation pour faire avancer les choses. Depuis que j'étais à la tête de mon projet de design senior à l'université, je sentais que c'était ma vraie vocation, pas assis derrière un codage de bureau. Maintenant, je sais que je dois comprendre comment coder pour que les autres développeurs me respectent vraiment. De plus, j'aime vraiment le codage. Je travaille sur de nombreux projets parallèles à la maison en dehors du travail, je suis au courant des meilleures pratiques de codage et j'essaie d'approfondir continuellement mes connaissances du domaine.

Ma principale question est de savoir quel type de choses ou d'opportunités devrais-je rechercher qui m'aidera à progresser dans ma carrière vers un rôle plus managérial plutôt que codé. Comme je l'ai dit, j'adore coder, mais j'aimerais encore plus pouvoir concevoir des choses à un niveau élevé et organiser l'équipe de manière à faire avancer les choses et à suivre leurs progrès, tout en aidant les techniciens décisions ici et là. Ce genre de choses me rend vraiment heureux, plutôt que de rester assis derrière un bureau tout au long de la journée.

De toute évidence, l'un de mes rêves principaux est de produire moi-même une sorte de logiciel qui finirait par exploser et deviendrait grand, puis commencer à embaucher une équipe et à tout faire moi-même, mais j'ai l'impression que les chances que cela se produise sont bien pires que de simplement modifier un peu mon cheminement de carrière pour arriver là où je veux aller. Je sens que je peux obtenir la même satisfaction en le faisant pour un employeur plutôt que pour moi-même. Même si je ne l'avais pas ressenti auparavant, j'ai l'impression que c'est principalement parce que je ne fais pas ce que JE VEUX VRAIMENT faire.

Des conseils, des conseils ou des choses à garder à l'esprit? Quiconque a fait exactement cela, et si oui, comment avez-vous procédé?

42
anon

Passer d'un rôle de développement logiciel à un rôle de gestion ou de leadership est quelque chose qui prend du temps. Je me suis spécialisé en génie logiciel, en mettant l'accent sur le processus de génie logiciel, et mineure en gestion d'entreprise et en communication. Même avec cette expérience académique sur la façon de gérer des projets logiciels, comment recruter et embaucher, comment diriger des équipes et comment communiquer avec des groupes verbalement et par écrit, j'ai trouvé que la plupart des rôles de gestion et de leadership, en particulier dans l'industrie que je voulais pour travailler, nécessite 5+ années d'expérience en génie logiciel (j'en ai eu 2, y compris les coops et les stages).

En attendant, j'ai simplement poursuivi mes études sur des sujets de gestion de projet.

La première chose que je recommanderais est de devenir un bon communicateur et négociateur. Apprenez à avoir les conversations qui comptent. Même en tant que développeur, il y a des décisions à prendre avec les collègues, les clients et les utilisateurs. Parfois, vous devez avoir des conversations difficiles et parvenir à un accord qui profite à tout le monde. Ce n'est pas un objectif facile, mais le livre Conversations difficiles: comment discuter de ce qui compte le plus est celui que je recommanderais qui couvre cela. Il y en a d'autres, comme Passer devant Non et Obtenir à Oui: Négocier un accord sans donner Dans ce serait également utile. Ces informations sont pertinentes quel que soit le poste dans lequel vous vous trouvez.

Sur le plan plus technique, une compréhension du cycle de vie du développement logiciel est importante pour diriger et gérer des équipes logicielles. Les postes de direction signifient probablement que vous êtes impliqué dans l'ingénierie des exigences, l'architecture du système logiciel, la conception, la mise en œuvre, les tests et l'assurance qualité et les tâches de maintenance. Bien que vous ne puissiez pas être un expert dans tous ces domaines, un manager ou un leader doit au moins les comprendre tous. En tant que développeur, vous effectuez probablement la majeure partie de votre travail dans la conception, la mise en œuvre et la maintenance, avec quelques tests également. Je recommanderais vivement des livres tels que Software Requirements (et son compagnon, More About Software Requirements ), Software Architecture in Practice (bien que mon université passé à Architecture des systèmes logiciels: travailler avec les parties prenantes à l'aide de points de vue et de perspectives après avoir suivi le cours d'architecture, et il m'a été recommandé), et Métriques et modèles en ingénierie de qualité logicielle =.

Du point de vue de la gestion de projet, vous pouvez en apprendre davantage sur les modèles de processus et les méthodologies. Il existe des méthodes agiles, telles que Scrum et Extreme Programming et des méthodes pilotées par plan telles que Waterfall et Spiral. Il existe également des cadres méthodologiques, tels que CMMI et le processus logiciel personnel/processus logiciel d'équipe. Ceux qui vous concernent dépendent de votre lieu de travail, en termes d'industrie et d'entreprise. Il existe un certain nombre de livres sur diverses méthodologies et cadres, mais je recommanderais vivement Développement rapide: Taming Wild Software Schedules pour la gestion générale du génie logiciel et le processus de génie logiciel.

Si vous souhaitez poursuivre vos études, vous pouvez envisager davantage une piste de gestion technique que davantage une piste de gestion d'entreprise. Si vous vouliez un poste de gestion technique, regardez l'ingénierie logicielle, la gestion de l'ingénierie logicielle et les programmes de gestion de l'ingénierie. Pour plus d'une piste de gestion d'entreprise, vous pouvez envisager des programmes de MBA, de gestion d'entreprise ou certains programmes de gestion d'ingénierie qui ont une forte composante économique ou financière.

41
Thomas Owens

Ces autres réponses sont excellentes mais je mettrai mes 0,02 $. Je suis passé d'un développeur junior dans mon entreprise actuelle à un développeur senior, puis chef d'équipe et maintenant architecte. Cela a pris plusieurs années. Chaque fois que je recevais une promotion, c'était parce que j'étais déjà en train de faire certains aspects du travail, et ma direction ne faisait que le reconnaître et me donner le titre approprié. Je vous conseille donc de ne pas attendre d'être informé que vous êtes un responsable technique ou un manager. Commencez simplement à assumer les responsabilités des personnes dans ces rôles. Après quelques mois ou un an, vous constaterez que vous faites essentiellement le travail que vous visez, et vous pouvez le signaler à votre direction si elle ne l'a pas remarqué.

19
RationalGeek

Je n'essaierai pas de fournir une réponse complète car Thomas Owens a déjà énuméré de très bons conseils (+1 à cela).

Je voulais juste ajouter quelques conseils/suggestions:

  1. N'attendez pas que quelqu'un vous fasse diriger; commencez juste à le faire. Je ne veux pas dire va à l'encontre de votre patron actuel, mais prenez plutôt l'initiative de l'aider. Si votre patron est quelque chose comme le mien, il est généralement surchargé avec beaucoup trop de tâches/réunions dans son assiette. S'il voit que vous donnez des directives là où il n'a peut-être pas assez de temps pour suivre, il sera très probablement plus qu'heureux de vous déléguer certaines responsabilités de gestion. Au fil du temps, si vous le faites correctement, votre patron vous déléguera de plus en plus (moins pour lui de s'inquiéter) et il vous aidera plus probablement à assumer plus de responsabilités au point où vous serez le responsable officiel.
  2. Gardez à l'esprit que le renforcement de l'équipe et le leadership sont plus sur la sociologie que sur la technologie (à partir d'un des livres de méthodologie logicielle populaire, peut-être Brooks). En tant que chef de file, votre objectif est de comprendre les gens et leur comportement, ce qui est très différent de la compréhension du fonctionnement des ordinateurs. Sans cette réalisation, les bons ingénieurs font les pires chefs d'équipe car ils ne font pas ce changement mental et se rendent compte que vous ne pouvez pas contrôler les gens de la même manière que vous contrôlez les machines. En fait, la seule approche qui semble fonctionner n'est pas du tout de contrôler les gens mais de leur donner une direction. Lisez, lisez et continuez à lire des livres/articles/blogs sur le leadership. Un livre que je pourrais recommander est Management 3.

... et maintenant je vais revoir les liens que Thomas a postés

9
DXM

Personnellement, je n'ai aucune envie de quitter mon poste actuel pour le moment, mais selon où nous en sommes dans le cycle de publication, je passe de 10% à près de 100% de mon temps à des tâches autres que le codage. Si vous êtes patient et attentif, vous pouvez saisir de nombreuses opportunités pour faire autre chose que "simplement coder" dans votre position actuelle. Par exemple:

  • Bénévolat pour encadrer un nouveau membre de l'équipe.
  • Devenez un expert des nouveaux outils, processus ou technologies que l'entreprise envisage d'adopter.
  • Bénévole pour les comités interfonctionnels.
  • Parlez de vos idées.
  • Invitez-vous à concevoir des réunions pour les fonctionnalités à venir.

Faites savoir à votre manager que vous êtes intéressé par ce type d'opportunités et, en supposant que vous vous acquittez bien de vos responsabilités actuelles, il vous orientera vers elles dès qu'elles se présenteront. L'initiative compte beaucoup. La plupart des gestionnaires vous laisseront au moins observer même s'ils ne pensent pas que vous êtes qualifié pour le moment.

5
Karl Bielefeldt

Si vous voulez passer à un rôle de gestion de projet, cela ne fait absolument aucun mal de prendre des cours du soir et de travailler pour votre MBA.

Une autre option serait d'examiner la certification PMBOK Project Management Body of Knowledge . De nombreux endroits ne vous considéreront pas à moins que vous ayez quelques années d'expérience en leadership ou l'un des deux éléments énumérés ci-dessus.

Le PMBOK est un test extrêmement difficile et nécessite BEAUCOUP d'étude pour le réussir. Je pense également qu'ils ont des exigences en matière de gestion de projet et d'expérience de leadership pour être éligibles au test.

4
maple_shaft

Cela me semble que vous souhaitiez peut-être travailler à la gestion de projet. Un grand nombre de postes PM au sein du développement logiciel nécessitent également une expérience en codage.

Je chercherais des postes où vous pouvez devenir des responsabilités qui vous procureront le navire de gestion/leader que vous désirez. Le fait de gravir les échelons peut différer selon la façon dont les choses fonctionnent là où vous travaillez. Mais même avec de plus petites quantités d'expérience en codage, PM postes sont disponibles si vous avez une expérience en leadership et en gestion.

2
D..