Qui devrait former de nouveaux programmeurs? Programmeurs juniors ou seniors? [fermé]

15

Dans mon équipe, nous demandons souvent aux programmeurs les plus expérimentés de former / encadrer les nouveaux programmeurs juniors. Cependant, ces mêmes programmeurs seniors sont ceux qui effectuent la majeure partie du travail réel et important.

J'ai essayé de faire valoir à mon manager qu'il est logique que les programmeurs juniors, qui font preuve d'une grande aptitude, prennent les nouveaux programmeurs sous leur aile. Tout d'abord, cela permettra aux développeurs seniors de travailler sur des initiatives plus importantes (pas que le mentorat ne soit pas important). Ensuite, cela donnera aux programmeurs juniors un peu de fierté dans leur travail qu'ils seraient recherchés pour une telle responsabilité et qu'ils pourraient apprendre quelque chose dans l'enseignement. Enfin, cela permettra à l'entreprise d'économiser de l'argent, car les développeurs seniors coûtent beaucoup plus cher que les juniors.

Mon patron n'a pas réussi à se persuader puisque c'est ainsi qu'il a fonctionné dans cette équipe depuis la nuit des temps, apparemment. En supposant que la décision a été prise qu'une sorte de formation / mentorat est obligatoire, quelqu'un peut-il me fournir de meilleurs arguments ou me dire pourquoi je me trompe? Que fait votre équipe?

** Nous pouvons tous convenir que l'ancienneté ne dénote pas nécessairement la compétence, alors supposez simplement par «les programmeurs seniors» que je veux dire les «meilleurs programmeurs».

smp7d
la source
1
Je souhaite que j'aurais formulé cette question comme "Top Programmers vs Intermediate to Mid-Level Programmers". Quelques bonnes réponses cependant.
smp7d
Vous pouvez le modifier vous savez ...
ChrisF
ha, ne serait pas juste pour ceux qui ont déjà répondu.
smp7d
Je pensais que tu parlais du titre ...
ChrisF
Eh bien, s'ils l'ont toujours fait de cette façon, ce doit être la bonne façon de faire les choses.
SoylentGray

Réponses:

11

J'ai eu cette situation dans une entreprise précédente. Les développeurs seniors, qui n'étaient que quelques-uns, encadraient un nombre croissant de développeurs juniors au point de ne plus pouvoir accomplir les autres tâches qui leur étaient assignées. Après un certain temps, les développeurs seniors en ont parlé à notre manager et il a été décidé que les développeurs qui se situaient entre les juniors et les seniors agiraient en tant que mentors, mais pour les problèmes difficiles, ils pourraient aller demander aux développeurs seniors.

Cela a plutôt bien fonctionné. Avant cela, quelques-uns des développeurs seniors commençaient à chercher de nouveaux emplois parce qu'ils n'étaient pas mis au défi au travail. Après, ils ont pu travailler sur de nouvelles fonctionnalités et faire avancer les choses. Que pensent vos développeurs seniors de la situation?

À mon avis, être senior ne concerne pas seulement l'expertise dans le domaine, le titre dans le pied de page de votre e-mail ou la durée de votre travail. C'est aussi un état d'esprit, pour aider et guider les développeurs juniors. Et quelle meilleure façon d'obtenir plus de développeurs seniors dans une équipe que de laisser le moins senior faire du mentorat?

fejd
la source
2
cela ressemble beaucoup à ma situation actuelle.
smp7d
21

Tous les meilleurs programmeurs ne sont pas des meilleurs enseignants. Je recommanderais de faire la formation par quelqu'un qui peut expliquer et qui a une vue d'ensemble sur «l'environnement» de votre entreprise (choses techniques, mais aussi organisationnelles comme les contacts).

knut
la source
c'est vrai, mais la bonne question est peut-être "ces personnes âgées techniquement formidables essaient-elles même d'être plus solidaires et d'enseigner moins expérimentées?". Je pense qu'il leur manque une partie importante du travail. personne n'est devenu un aîné par eux-mêmes, je suppose.
zeroDivider
7

Je réitère certaines des choses qui ont déjà été dites, mais j'ai deux vues.

Entreprise: En tant qu'entreprise, vous voulez de la productivité et des risques réduits. Bien que les développeurs seniors fassent la majeure partie du travail, vous voulez qu'ils transfèrent leurs connaissances du système vers le bas, ce qui réduit les risques. La productivité ne serait pas autant affectée car vous devez donner à ces seniors du temps de repos pour faire des choses moins critiques (enseigner aux développeurs juniors). Mis à part les systèmes, ils ont également de nombreuses disciplines que les développeurs juniors ne connaissent pas ou ne connaissent pas encore.

Respect: les juniors qui prennent de nouveaux développeurs sous leur aile sont un peu comme les aveugles conduisant les aveugles. Les juniors ne sont pas encore au courant de tout pour être en charge d'enseigner aux autres. De plus, cela pourrait ne pas fonctionner parce que le respect pourrait ne pas être là. Le respect envers le développeur junior est en cause car votre ensemble de compétences par rapport à l'ensemble de compétences du débutant n'est probablement pas si loin. S'attaquer à un problème ensemble est une autre histoire. Il n'est pas question de respect en termes de devs seniors enseignant débutants ou même juniors. Nous savons tous que lorsque le respect fait défaut à deux personnes ou à une équipe, une catastrophe attend de se produire ...

QuanhD
la source
6

Regardez cela sous un autre angle. Quels types de compétences et de connaissances souhaitez-vous transférer parmi les programmeurs ici? Si les programmeurs seniors font la plupart du travail réel et important, cela ne maintient-il pas un peu d'isolement en termes de qui sait quel système? Faire en sorte que les juniors connaissent le système afin qu'ils puissent être des sauvegardes pour les seniors est une direction plutôt logique à prendre car c'est la connaissance par les seniors de potentiellement des années de connaissances accumulées qui est le plus importante ici. Les seniors qui encadrent les juniors me semblent une sorte de formation naturelle.

Un programmeur junior encadrant un autre programmeur junior n'a pas vraiment de sens pour moi. Jumeler deux programmeurs juniors ensemble pourrait cependant avoir un sens. Faire travailler deux personnes ensemble sur une tâche afin que ce ne soit pas l'idée d'une seule personne peut être très utile et aider à favoriser un environnement plus collaboratif où une équipe se rassemble dans un sens. Selon l'environnement que vous avez, cela peut ou non avoir beaucoup de sens.

JB King
la source
4

Eh bien, si les programmeurs seniors de l'équipe ne maîtrisent pas vraiment leur métier plus que les juniors, ont seulement été plus longtemps et / ou ont un statut social / politique plus élevé au sein de l'équipe, alors cela ne fait pas vraiment une grande différence qui - le cas échéant - encadre les nouveaux arrivants. Il y a de fortes chances qu'ils gravitent tous vers le même niveau de médiocrité de toute façon ... :-(

Si, OTOH, un senior est vraiment (au moins sensiblement plus proche) un programmeur maître au vrai sens du monde, cela peut faire une grande différence. Un junior peut facilement enseigner des pratiques pas si bonnes au nouvel enfant du quartier. Et il est beaucoup plus difficile de désapprendre plus tard une approche sous-optimale ou mauvaise que de commencer par apprendre les meilleures pratiques .

Cela dit, si un junior a le talent et a démontré de manière fiable qu'il sait ce qu'il fait concernant un certain outil, technique ou domaine, il peut en effet être un formateur utile dans ce domaine spécifique. .

Mais notez que - d'un certain point de vue - le but du mentorat / de la formation est de permettre aux personnes âgées de déléguer certaines de leurs tâches pas si difficiles à d'autres, afin qu'elles puissent se concentrer sur les choses vraiment difficiles. Pour que cela se produise, ils doivent d'abord enseigner ces tâches et ces compétences à leurs pairs, et bien les enseigner, afin que les tâches soient correctement prises en charge, une fois pour toutes.

Péter Török
la source
4

Réponse simple: la personne qui fait la formation doit être celle qui est la meilleure à la formation et qui veut aussi faire de la formation.

Certaines personnes aiment la formation et le mentorat. Certaines personnes détestent ça. Vous ne voulez pas que les gens fassent des choses qu'ils détestent - c'est mauvais pour eux, c'est probablement mauvais pour la personne en formation, et c'est probablement mauvais pour toute l'équipe. Cela n'ajoute rien. Pendant ce temps, laisser les gens faire ce qu'ils aiment est bon pour eux, pour l'équipe et, espérons-le, le stagiaire suscitera de l'enthousiasme.

De même, certaines personnes sont bonnes à l'entraînement et d'autres non. Il existe un type d'interaction humaine ou d'intelligence qui permet à certaines personnes de bien comprendre comment les autres cochent; un formateur doit être capable de transmettre des connaissances d'une manière que le stagiaire comprendra. Un bon formateur peut le faire et peut apprendre que le stagiaire aime «comprendre» les choses, ou «voir» les choses ou «faire» les choses - les différentes façons dont les gens apprennent. Un mauvais entraîneur prononce un discours répété et est inflexible, et sera frustré lorsque le stagiaire ne comprend pas ses façons d'apprentissage idiosyncratiques.

Je suppose que vous voulez que les stagiaires reçoivent la meilleure formation - approfondie et efficace. Si vos «meilleurs programmeurs» souhaitent se former, ils devraient le faire. Si les «programmeurs juniors» sont à la hauteur, ils devraient aussi avoir leur chance. Cela ne fait pas de mal de faire participer quelques personnes au programme de formation - de cette façon, vous pouvez déterminer qui veut s'entraîner et qui est bon en formation.

Je ne suis pas sûr de votre question si vous êtes un programmeur senior qui veut sortir de la formation (pas de critique - vous avez des choses plus importantes à faire, ou tout simplement ne l'aimez pas), ou un programmeur junior qui veut y entrer. Mais de toute façon, vous essayez de faire ce que vous aimez - et ne voulons-nous pas tous faire les tâches qui nous plaisent? Des employés heureux mènent à de meilleurs environnements de travail et à de meilleurs résultats.

Kirk Broadhurst
la source
3

Dans la plupart des entreprises dans lesquelles j'ai travaillé, un programmeur junior était quelqu'un avec moins de 3 ans d'expérience. Bien que je serais heureux, en tant que programmeur expérimenté ayant une expérience de mentorat, de référer un nouveau programmeur à un programmeur junior pour une formation sur un sujet particulier, je voudrais garder le contrôle, plutôt que de déléguer toute la responsabilité du mentorat à quelqu'un qui a encore besoin d'une supervision de mentorat se.

Michael Shaw
la source
2

J'ai trouvé que des choses comme les règles commerciales et les directives de conception sont les choses les plus critiques qu'un programmeur plus expérimenté doit pouvoir transmettre aux développeurs juniors ou même aux développeurs ou entrepreneurs seniors / experts nouvellement embauchés. Les problèmes ont tendance à survenir lorsque ces informations clés sont stockées ou ne sont jamais expliquées. C'est peut-être ce qui préoccupe votre manager plus que les connaissances réelles en programmation.

Quant à la connaissance de la programmation elle-même, il vaut mieux la faire circuler dans le groupe à tous les niveaux. Même les programmeurs expérimentés apprennent constamment de nouvelles choses, en particulier dans les cadres de développement complexes. Ce partage peut être formel, comme lors d'une séance de déjeuner et d'apprentissage, ou par le biais de discussions informelles lorsque le temps le permet.

jfrankcarr
la source
1

J'opterais pour des mentors étant principalement une étape ou deux en dessous des meilleurs programmeurs de l'organisation.

Bien que vous ayez donné de bonnes raisons à cela, je voudrais en souligner une autre qui, à mon avis, est particulièrement importante: l'enseignement est l'une des meilleures façons d'apprendre, en particulier en apprendre suffisamment plus pour que certaines de ces dernières étapes soient vraiment bonnes. trop bien. Une partie particulièrement importante de ceci est d'apprendre non seulement à bien faire les choses, mais à bien articuler ce que vous faites et pourquoi. Pour ma part, j'ai souvent constaté que pour bien expliquer pourquoi je fais quelque chose d'une manière particulière, je dois m'asseoir et y penser suffisamment pour que 1) ma propre compréhension s'améliore considérablement et 2) je réévalue souvent suffisamment la situation pour améliorer mon propre travail.

Bien qu'il puisse être plus difficile pour eux de le faire, cela peut être particulièrement utile pour les programmeurs dont les compétences sociales peuvent être quelque peu ... manquantes par rapport à leurs pairs. Les pousser un peu hors de leur zone de confort du codage pur vers des aspects plus sociaux comme le mentorat peut les aider autant que les personnes qu'ils encadrent. Évidemment, si vous voulez le faire, vous devez être particulièrement prudent dans le choix des personnes à associer - le mauvais appairage pourrait finir par leur nuire.

Jerry Coffin
la source
0

Je pense que cela fonctionne mieux lorsque les mentors se portent volontaires pour la tâche. Ici, nous n'avons pas de processus de mentorat très formel. Parfois, notre manager a quelque chose de spécifique en tête, mais d'autres fois, il dit quelque chose comme: "Quelqu'un a une bonne idée sur un projet pour le nouveau gars?" et celui qui a la meilleure idée finit par faire du mentorat.

Ce qui finit par arriver, c'est que la nouvelle recrue est mise sur un projet qui peut se permettre le temps de la courbe d'apprentissage et encadrée par la personne la plus familière avec le projet. C'est peut-être quelqu'un qui est ici depuis 10 mois ou 10 ans. Parfois, les gens finissent par encadrer un peu les mentors, mais l'avantage est que les nouvelles personnes se souviennent encore de toutes les difficultés d'être nouveau et de la façon dont elles les ont surmontées.

Karl Bielefeldt
la source