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

42

Je suis développeur de logiciels (à temps plein ou à temps partiel) depuis près de 3 ans. J'ai toujours été du genre à avoir le don de prendre les devants et de fournir à l'organisation le moyen de faire avancer les choses. Depuis que je dirigeais mon projet de design senior à l'université, je sentais que c'était ma vraie vocation, ne pas rester 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 coder. Je travaille sur de nombreux projets parallèles à la maison en dehors du travail, suis au fait des meilleures pratiques de codage et essaie de continuer à approfondir ma connaissance du domaine.

Ma question principale est la suivante: quel type de choses ou de possibilités devrais-je rechercher qui m'aidera à faire évoluer ma carrière vers un rôle de gestion plutôt que de codage. 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 sur le plan technique. décisions ici et là. Ce genre de choses me rend vraiment heureux, au lieu de rester assis derrière un bureau à coder toute la journée.

Évidemment, un de mes rêves principaux est de créer un logiciel à moi seul qui pourrait éventuellement exploser et le rendre gros, puis de commencer à embaucher une équipe et de tout faire moi-même, mais je sens que les chances que cela se produise sont bien pires. que de 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 n'avais pas ressenti cela auparavant, je pense que c'est principalement parce que je ne fais pas ce que je veux VRAIMENT faire.

Des conseils, des indications ou des choses à garder à l'esprit? Quelqu'un qui a fait cela, et si oui, comment l'avez-vous fait?

moucheron
la source
Quel type d'éducation avez-vous? Depuis combien de temps occupez-vous votre poste actuel?
Thomas Owens
J'ai un baccalauréat en sciences en informatique. Je suis à mon poste actuel depuis environ un an.
1
@slandau Je voudrais explicitement dire que vous ne cherchez pas à entrer dans un rôle de PM. alors que cela peut apparaître comme la direction évidente; votre description et vos désirs diffèrent d'un rôle de premier ministre et je ne crois pas qu'un rôle de premier ministre sera ce que vous rechercherez ultimement.
Aaron McIver
1
@AaronMcIver Cela dépend de l'endroit où vous travaillez. Certains PM sont des affaires, d'autres sont de nature plus technique. Dans certains endroits, "responsable de l'ingénierie" pourrait être un titre plus courant, ou dans d'autres, simplement "ingénieur en logiciel".
Thomas Owens
2
Eh bien, premièrement, abandonnez votre âme ... :-)
Paul Tomblin Le

Réponses:

41

Passer d’un rôle de développement de logiciel à un rôle de direction ou de direction prend du temps. Je me suis spécialisé en génie logiciel, en mettant l'accent sur les processus de génie logiciel, et minored en gestion des affaires et de la 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 constaté que la plupart des rôles de gestion et de leadership, en particulier dans le secteur que je recherchais pour travailler, il faut au moins cinq ans d'expérience en génie logiciel (j'en ai eu deux, y compris les stages et les stages).

Entre temps, j'ai simplement poursuivi mes études sur des sujets liés à la 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, des décisions doivent être prises avec les collègues, les clients et les utilisateurs. Parfois, vous devez avoir des conversations difficiles et parvenir à un accord avantageux pour tout le monde. Ce n'est pas un objectif facile, mais le livre Conversations difficiles: comment discuter de ce qui compte le plus est un de ceux que je recommanderais qui couvre ce sujet. Il y en a d'autres, comme Passer au-dessus de Non et se rendre à Oui: négocier un accord sans céder, cela serait également utile. Celles-ci sont pertinentes quelle que soit votre position.

Sur le plan plus technique, il est important de comprendre le cycle de vie du développement logiciel 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 logicielle, la conception, la mise en œuvre, les tests, l’assurance qualité et les tâches de maintenance. Bien que vous ne puissiez être un expert du tout, un responsable ou un dirigeant doit au moins les comprendre tous. En tant que développeur, vous effectuez probablement l'essentiel de votre travail de conception, de mise en œuvre et de maintenance, avec quelques tests également. Je recommanderais beaucoup des ouvrages tels que Software Requirements (et son compagnon, En savoir plus sur les exigences logicielles ), Architecture logicielle en pratique (bien que mon université soit passée àArchitecture des systèmes logiciels: Travailler avec les parties prenantes Utilisation de points de vue et de perspectives après avoir suivi le cours d'architecture (il m'a été recommandé), et Métriques et modèles en ingénierie de la 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 planifiées, telles que Waterfall et Spiral. Il existe également des cadres méthodologiques, tels que CMMI et le processus logiciel personnel / processus logiciel d'équipe. Celles qui vous intéressent dépendent de votre lieu de travail, du secteur et de la société. Il existe un certain nombre de livres sur diverses méthodologies et structures, mais je recommanderais vivement Rapid Development: Taming Wild Software Schedules pour la gestion de l’ingénierie logicielle générale et les processus d’ingénierie logicielle.

Si vous souhaitez poursuivre vos études, vous pouvez utiliser une piste de gestion technique plutôt qu'une piste de gestion d'entreprise. Si vous souhaitez occuper un poste de gestion technique, consultez les programmes de génie logiciel, de gestion de logiciel et de gestion d'ingénierie. Pour plus de filière de gestion d'entreprise, vous pouvez envisager des programmes de MBA, de gestion d'entreprise ou certains programmes de gestion d'ingénierie comportant une forte composante économique ou financière.

Thomas Owens
la source
1
Oui, mais comment passez-vous réellement du statut d'ingénieur principal en logiciel à celui de gestionnaire? Je veux dire, si je sens que je connais toutes les choses que vous avez énumérées ci-dessus, que puis-je faire pour prouver que je peux le faire étant donné que je n’ai aucune expérience officielle du rôle de gestionnaire et que j’ai le sentiment que je connais vraiment toutes ces choses? Comment fait-on cette étape?
trusktr
19

Ces autres réponses sont excellentes, mais je vais ajouter 0,02 $. Je suis passée de développeur junior dans mon entreprise actuelle à celle de développeur senior, puis de chef d'équipe et maintenant d'architecte. Cela a pris plusieurs années. Chaque fois que je recevais une promotion, c’était parce que je travaillais déjà sur certains aspects du travail et que la direction ne faisait que le reconnaître et me donner le titre approprié. Donc, mon conseil est de ne pas attendre pour être informé que vous êtes un responsable technique ou un responsable. Il suffit de commencer à assumer les responsabilités incombant aux personnes occupant ces rôles. Après quelques mois ou un an, vous constaterez que vous faites essentiellement le travail que vous ciblez, et vous pouvez le signaler à votre direction si elle ne l’a pas remarqué.

RationalGeek
la source
2
Je me suis fait virer pour avoir fait exactement ce que vous avez dit dans une entreprise (et le responsable qui m'a viré a quitté l'entreprise plus tard). Ce n'était pas un bon ajustement. J'avais l'impression que c'était toujours une lutte pour atteindre les plus hauts postes de la société, très compétitif et égocentrique. C’est bien mieux d’être dans une entreprise où, lorsque les gens prennent l’initiative d’essayer d’accomplir de plus grandes choses qu’avant, ils reçoivent du soutien, des encouragements et des conseils de la part de ceux qui sont déjà plus haut placés.
trusktr
9

Je ne tenterai 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; commence juste à le faire. Je ne veux pas dire que cela va à l'encontre de votre patron actuel, mais plutôt à prendre des initiatives pour l'aider. Si votre patron est un peu comme le mien, il est généralement surchargé de tâches / réunions dans son assiette. S'il voit que vous fournissez une direction où il n'aura peut-être pas assez de temps pour suivre, il sera probablement plus qu'heureux de vous déléguer certaines responsabilités de gestion. Au fil du temps, si vous le faites bien, votre patron vous déléguera de plus en plus (moins pour lui ce qui le préoccupe) et il vous soutiendra probablement pour assumer davantage de responsabilités à un point où vous êtes officiellement responsable.
  2. Gardez à l'esprit que la constitution d'équipes et le leadership sont davantage de la sociologie que de la technologie (tiré de l'un des livres de méthodologie logicielle les plus populaires, peut-être Brooks). En tant que responsable, votre objectif est de comprendre les gens et leur comportement, ce qui est très différent de comprendre le fonctionnement des ordinateurs. Sans cette prise de conscience, de bons ingénieurs font l’un des pires chefs d’équipe car ils ne font pas ce changement de mentalité et se rendent compte que vous ne pouvez pas contrôler les personnes de la même manière que vous pilotez des machines. En fait, la seule approche qui semble fonctionner est de ne pas contrôler du tout 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.0

... et maintenant je vais passer en revue les liens que Thomas a postés

DXM
la source
C'est un mauvais conseil, suggérant que quelqu'un fasse quelque chose que son patron ne lui a pas demandé de faire, la plupart des patrons mécontentant les personnes qui font des choses qu'on ne leur a pas demandé de faire.
Professeur de programmation le
J'ai répondu à cette question il y a 5 ans, lorsque j'étais développeur. Pour en revenir à présent, je peux le lire du point de vue d’un gestionnaire. @Bonner - vous avez raison. il y a différents gestionnaires avec différents styles. Certains vont vous froncer les sourcils si vous faites quelque chose qui ne vous a pas été demandé. Dans ce cas, mon conseil est de fuir ce responsable. Depuis que je suis devenu un leader, tout ce que j'ai fait est d'apprendre à mes gars à penser de manière indépendante et à me rendre remplaçable. Je demande à chacun de faire la part des choses entre son travail et ses objectifs, mais aussi de regarder de l'avant pour lui-même et d'avoir une image plus large.
DXM
5

Personnellement, je n'ai aucune envie de quitter mon poste actuel pour le moment, mais en fonction de l'état du cycle de publication, je consacre entre 10% et presque 100% de mon temps à des tâches autres que le codage. Si vous êtes patient et observateur, vous pouvez saisir d’autres possibilités que de simplement «coder» votre position actuelle. Par exemple:

  • Volontaire 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 des comités interfonctionnels.
  • Parlez de vos idées.
  • Invitez-vous à concevoir des réunions pour les fonctionnalités à venir.

Dites à votre responsable que vous êtes intéressé par ce type d'opportunités et si vous assumez bien vos responsabilités actuelles, il dirigera les opportunités vers vous lorsqu'elles se présenteront à vous. L'initiative compte pour beaucoup. La plupart des gestionnaires vous laisseront au moins observer même s'ils ne pensent pas que vous êtes qualifié pour le moment.

Karl Bielefeldt
la source
4

Si vous souhaitez occuper un poste de gestion de projet, suivre des cours du soir et travailler en vue de l'obtention de votre MBA ne vous fait absolument pas de mal.

Une autre option consisterait à examiner la certification du corps de connaissances en gestion de projet PMBOK . De nombreux endroits ne vous considéreront pas à moins d'avoir 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’études pour le réussir. Je pense aussi qu'ils ont des exigences en matière de gestion de projet et d'expérience en leadership, juste pour pouvoir passer le test.

arbre_érable
la source
3
Peut-être que c'est juste moi, mais j'aurais plutôt tendance à obtenir un diplôme en gestion de logiciel ou un diplôme en gestion de l'ingénierie, surtout si vous vouliez faire de la gestion technique ou du leadership. J'ai vu des ingénieurs obtenir un MBA et se lancer dans le volet commercial d'un logiciel, sans gérer ni diriger les ingénieurs.
Thomas Owens
@ThomasOwens, c'est une bonne note. J'ai toujours hésité à obtenir un MBA car je ne savais pas si cela se traduirait ou non dans la plupart des endroits techniques.
slandau
L'examen PMP n'est pas si difficile.
Morons
@Morons Je raconte ce que quelques PM m'ont raconté de leur expérience, je ne l'ai jamais prise moi-même. Mais maintenant que j'y pense, ces deux personnes n'étaient pas si brillantes.
maple_shaft
2

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

Je rechercherais des postes dans lesquels vous pourrez assumer des responsabilités qui vous permettront d'obtenir la gestion / direction que vous désirez. En gravissant les échelons, l'apparence peut être différente selon la façon dont les choses fonctionnent à l'endroit où vous travaillez. Mais même avec un peu d'expérience en matière de codage, des postes de GP sont disponibles si vous avez une expérience en leadership, en gestion.

RÉ..
la source
Cela était indiqué dans la question initiale: "... quel type de choses ou de possibilités devrais-je rechercher qui m'aidera à faire évoluer ma carrière vers un rôle de gestion plutôt que de codage ...". @slandau cherche des conseils sur la façon de procéder.
Thomas Owens
1
Oui je suis d'accord. Avez-vous des conseils pour commencer à travailler dans ce sens?
slandau
Oui, j'ai accidentellement appuyé sur le bouton de publication avant de le faire.
D ..
@D .., j'ai un peu d'expérience en leadership, mais tout cela a été fait dans le cadre de projets parallèles et de projets que j'ai réalisés au collège… je ne sais pas si cela suffit. Est ce
slandau
Probablement pas, vous souhaitez privilégier une expérience professionnelle qui vous en donne l'occasion. Vous trouverez peut-être plus facile de jouer un rôle de développeur principal à certains endroits. Je voudrais garder un œil sur les positions ouvertes faisant ce que vous voulez, examiner les exigences et saisir toutes les occasions possibles pour en obtenir les plus courantes. La plupart des endroits où j'ai travaillé sont petits et m'ont permis de passer au niveau suivant sans effort. Regardez votre emploi actuel ... pouvez-vous vous déplacer là-haut? Peut-être avez-vous un chemin défini à partir duquel vous êtes maintenant que vous pouvez tirer parti.
D ..