Wer sollte neue Programmierer ausbilden? Junior oder Senior Programmierer? [geschlossen]


15

In meinem Team müssen häufig die erfahrensten Programmierer die brandneuen Junior-Programmierer schulen / betreuen. Dieselben erfahrenen Programmierer erledigen jedoch den größten Teil der eigentlichen, wichtigen Arbeit.

Ich habe versucht, meinem Manager gegenüber zu argumentieren, dass es sinnvoll ist, dass die jungen Programmierer, die eine hohe Begabung zeigen, die neuen Programmierer unter ihre Fittiche nehmen. Zunächst werden die leitenden Entwickler für wichtigere Initiativen freigesetzt (nicht, dass Mentoring nicht wichtig ist). Als nächstes wird es den Junior-Programmierern ein wenig Stolz auf ihre Arbeit geben, dass sie für eine solche Verantwortung gesucht werden und möglicherweise etwas im Unterrichten lernen. Schließlich spart es dem Unternehmen Geld, da Senior-Entwickler viel mehr kosten als Junior-Entwickler.

Mein Chef hat sich nicht überzeugen lassen, da es anscheinend seit Beginn der Zeit in diesem Team so funktioniert hat. Unter der Annahme, dass die Entscheidung getroffen wurde, dass eine Art Training / Mentoring obligatorisch ist, kann mir jemand bessere Argumente liefern oder mir sagen, warum ich falsch liege? Was macht dein Team?

** Wir können uns alle einig sein, dass Seniorität nicht unbedingt Kompetenz bedeutet. Nehmen wir also einfach "Senior Programmierer" an, ich meine "Top Programmierer".


1
Ich wünschte, ich hätte diese Frage als "Top-Programmierer gegen mittelschwere Programmierer" formuliert. Einige gute Antworten.
smp7d

Sie können es bearbeiten, wissen Sie ...
ChrisF

ha, wäre nicht fair zu denen, die schon geantwortet haben.
smp7d

Ich dachte du sprichst über den Titel ...
ChrisF

Nun, wenn sie es immer so gemacht haben, muss es der richtige Weg sein, Dinge zu tun.
SoylentGray

Antworten:


11

Ich hatte diese Situation bei einer früheren Firma. Die leitenden Entwickler, bei denen es sich nur um einige handelte, betreuten immer mehr Nachwuchsentwickler, bis sie die anderen ihnen zugewiesenen Aufgaben nicht mehr ausführen konnten. Nach einer Weile sprachen die Senior-Entwickler mit unserem Manager darüber, und es wurde beschlossen, dass die Entwickler, die irgendwo zwischen Junior und Senior lagen, als Mentoren fungieren würden, aber bei schwierigen Problemen die Senior-Entwickler fragen könnten.

Es hat ganz gut geklappt. Davor begannen einige der leitenden Entwickler, sich nach neuen Jobs umzusehen, weil sie bei der Arbeit nicht herausgefordert wurden. Danach konnten sie an neuen Funktionen arbeiten und Dinge erledigen. Was halten Ihre leitenden Entwickler von der Situation?

Meiner Meinung nach geht es bei Senioren nicht nur um Fachkenntnisse in der Domäne, den Titel in Ihrer E-Mail-Fußzeile oder wie lange Sie gearbeitet haben. Es ist auch eine Denkweise, um Nachwuchsentwicklern zu helfen und sie anzuleiten. Und gibt es einen besseren Weg, um mehr erfahrene Entwickler in ein Team zu holen, als weniger erfahrene Entwickler das Mentoring übernehmen zu lassen?


2
das klingt meiner jetzigen situation sehr ähnlich.
smp7d

21

Nicht jeder Top-Programmierer ist ein Top-Lehrer. Ich würde empfehlen, das Training von jemandem zu machen, der erklären kann und einen Überblick über die 'Umgebung' Ihres Unternehmens hat (technische Dinge, aber auch organisatorische wie Kontakte).


Auf jeden Fall wahr, aber die richtige Frage könnte lauten: "Versuchen diese technisch großartigen Senioren überhaupt, mehr Unterstützung zu leisten und weniger erfahren zu unterrichten?". Ich denke, sie vermissen einen wichtigen Teil des Jobs. Ich denke, niemand wurde von sich aus ein Senior.
ZeroDivider

7

Ich wiederhole einige der Dinge, die bereits gesagt wurden, aber ich habe zwei Ansichten.

Geschäft: Als Unternehmen möchten Sie Produktivität und geringere Risiken. Obwohl erfahrene Entwickler den größten Teil der Arbeit erledigen, möchten Sie, dass sie ihr Wissen über das System weitergeben, um das Risiko zu senken. Die Produktivität würde nicht so sehr beeinträchtigt, da Sie diesen Senioren etwas Ruhe geben müssen, um weniger kritische Dinge zu tun (Unterrichten von Junior-Entwicklern). Abgesehen von Systemen haben sie auch viele Disziplinen, die Junior-Entwickler noch nicht kennen oder verstehen.

Respekt: ​​Junioren, die neue Entwickler unter ihre Fittiche nehmen, sind wie die Blinden, die die Blinden führen. Die Junioren sind noch nicht auf dem neuesten Stand, wenn es darum geht, andere zu unterrichten. Auch könnte es nicht funktionieren, weil der Respekt möglicherweise nicht da ist. Der Respekt gegenüber dem Junior-Entwickler ist fraglich, da Ihre Fähigkeiten im Vergleich zu den Fähigkeiten des Anfängers wahrscheinlich nicht so weit entfernt sind. Ein Problem gemeinsam anzugehen, ist jedoch eine andere Geschichte. Es gibt keine Frage des Respekts in Bezug auf ältere Entwickler, die Anfänger oder sogar Junioren unterrichten. Wir alle wissen, dass eine Katastrophe bevorsteht, wenn bei zwei Personen oder in einem Team der Respekt fehlt ...


6

Betrachten Sie dies aus einem anderen Blickwinkel. Welche Fähigkeiten und Kenntnisse möchten Sie hier unter den Programmierern vermitteln? Wenn die erfahrenen Programmierer den größten Teil der eigentlichen, wichtigen Arbeit erledigen, bleibt dies nicht ein bisschen isoliert, wenn es darum geht, wer welches System kennt? Die Junioren mit dem System vertraut zu machen, damit sie Backups für Senioren erstellen können, ist eine ziemlich logische Vorgehensweise, da hier das wichtigste Wissen über potenziell jahrelang aufgebaute Kenntnisse ist, die weitergegeben werden. Senioren, die Junioren betreuen, scheinen mir eine Art natürliche Bildung zu sein.

Ein Junior-Programmierer, der einen anderen Junior-Programmierer betreut, ergibt für mich keinen Sinn. Ein paar Junior-Programmierer zusammen zu bringen, könnte in gewisser Weise Sinn machen. Wenn mehrere Personen gemeinsam an einer Aufgabe arbeiten, sodass es nicht nur die Idee einer einzelnen Person ist, kann dies sehr nützlich sein und dazu beitragen, ein kollaborativeres Umfeld zu schaffen, in dem ein Team in gewisser Weise zusammenarbeitet. Abhängig von Ihrer Umgebung kann dies sinnvoll sein oder auch nicht.


4

Nun, wenn die erfahrenen Programmierer im Team ihr Handwerk nicht wirklich besser beherrschen als die Junioren, nur länger da sind und / oder einen höheren sozialen / politischen Status im Team haben, dann macht es in der Tat keinen großen Unterschied Wer - wenn überhaupt - betreut die Neuankömmlinge? Die Chancen stehen gut, dass sie sowieso alle zu demselben Grad an Mittelmäßigkeit tendieren ... :-(

Wenn ein Senior, OTOH, wirklich (zumindest spürbar) ein Master-Programmierer im wahrsten Sinne des Wortes ist, kann dies einen großen Unterschied bewirken. Ein Junior kann dem neuen Kind auf dem Block leicht nicht so gute Praktiken beibringen. Und es ist viel schwieriger, eine suboptimale oder schlechte Herangehensweise später zu verlernen, als mit dem Erlernen der besten Praktiken zu beginnen .

Das heißt, wenn ein Junior das Talent hat und verlässlich gezeigt hat, dass er weiß, was er in Bezug auf ein bestimmtes Werkzeug, eine bestimmte Technik oder einen bestimmten Bereich tut, kann er in der Tat ein nützlicher Trainer in diesem bestimmten Bereich sein .

Beachten Sie jedoch, dass es unter bestimmten Gesichtspunkten beim Mentoring / Training darauf ankommt, dass Senioren einige ihrer weniger anspruchsvollen Aufgaben an andere delegieren können, damit sie sich auf die wirklich schwierigen Dinge konzentrieren können. Dazu müssen sie ihren Kollegen diese Aufgaben und Fähigkeiten zuerst beibringen und sie gut unterrichten, damit die Aufgaben ein für alle Mal richtig übernommen werden.


4

Einfache Antwort: Die Person, die das Training durchführt, sollte die Person sein, die am besten trainiert und auch trainieren möchte.

Einige Leute genießen Training und Mentoring. Manche Leute hassen es. Sie wollen nicht, dass Leute Dinge tun, die sie hassen - es ist schlecht für sie, es ist wahrscheinlich schlecht für die trainierte Person und es ist wahrscheinlich schlecht für das gesamte Team. Es fügt nichts hinzu. In der Zwischenzeit ist es gut für sie, das Team und hoffentlich den Auszubildenden, die Menschen tun zu lassen, was ihnen Spaß macht.

In ähnlicher Weise können manche Leute gut trainieren und manche nicht. Es gibt eine Art von menschlicher Interaktion oder Intelligenz, mit der manche Menschen gut verstehen können, wie andere ticken. Ein Trainer sollte in der Lage sein, Wissen so zu vermitteln, dass es der Teilnehmer versteht. Ein guter Trainer kann dies tun und kann lernen, dass der Auszubildende gerne Dinge "versteht" oder "sieht" oder "tut" - die verschiedenen Arten, wie Menschen lernen. Ein schlechter Trainer hält eine geprobte Rede, ist unflexibel und wird frustriert, wenn der Auszubildende nicht an seine eigenwilligen Lernmethoden herankommt.

Ich gehe davon aus, dass Sie möchten, dass die Auszubildenden die beste Ausbildung erhalten - gründlich und dennoch effizient. Wenn Ihre „Top-Programmierer“ gerne trainieren, sollten sie es tun. Wenn die "Junior-Programmierer" es drauf haben, sollten sie auch eine Chance haben. Es tut nicht weh, ein paar Leute am Trainingsprogramm teilnehmen zu lassen - auf diese Weise können Sie bestimmen, wer trainieren möchte und wer es ist gut trainiert.

Ich bin mir bei Ihrer Frage nicht sicher, ob Sie ein Senior-Programmierer sind, der aus dem Training aussteigen möchte (keine Kritik - Sie haben wichtigere Dinge zu erledigen oder lieben es einfach nicht), oder ein Junior-Programmierer, der will hineinkommen. Aber wie auch immer, Sie versuchen zu tun, was Ihnen Spaß macht - und wollen wir nicht alle die Aufgaben erledigen, die uns Spaß machen? Zufriedene Mitarbeiter führen zu einem besseren Arbeitsumfeld und einer besseren Leistung.


3

In den meisten Unternehmen, in denen ich gearbeitet habe, war ein Junior-Programmierer jemand mit weniger als 3 Jahren Erfahrung. Ich würde mich freuen, als erfahrener Programmierer mit Mentoring-Erfahrung einen neuen Programmierer an einen Junior-Programmierer zu verweisen, um ein bestimmtes Thema zu trainieren, aber ich möchte die Kontrolle behalten, anstatt die gesamte Mentoring-Verantwortung an jemanden zu delegieren, der noch Mentoring-Aufsicht benötigt sich.


2

Ich habe festgestellt, dass Dinge wie die Geschäftsregeln und Designrichtlinien die wichtigsten Dinge sind, die ein erfahrener Programmierer an Junior-Entwickler oder sogar neu eingestellte Senior- / Experten-Entwickler oder Auftragnehmer weitergeben muss. Probleme treten in der Regel auf, wenn diese Schlüsselinformationen gehortet oder nie erklärt werden. Vielleicht ist es das, worum sich Ihr Manager mehr als nur um tatsächliche Programmierkenntnisse kümmert.

Was das Programmierwissen selbst anbelangt, so ist es am besten, es auf allen Ebenen in der Gruppe zu verbreiten. Sogar erfahrene Programmierer lernen ständig neue Dinge, insbesondere in komplexen Entwicklungsumgebungen. Dieses Teilen kann formal sein, wie in einer Mittag- und Lernsitzung, oder durch informelle Diskussionen, wenn es die Zeit erlaubt.


1

Ich würde mich dafür entscheiden, dass Mentoren in erster Linie ein oder zwei Schritte unter den Top-Programmierern in der Organisation sind.

Obwohl Sie einige gute Gründe dafür angegeben haben, möchte ich noch einen hervorheben, den ich für besonders wichtig halte: Lehren ist eine der besten Lernmethoden, insbesondere genug, um einige dieser letzten Schritte von wirklich gut zu machen zu toll. Ein besonders wichtiger Teil davon ist das Lernen nicht nur tun Dinge gut, aber einen guten Job tun artikulierenden , was Sie tun und warum. Ich habe zum Beispiel häufig festgestellt, dass ich mich zurücklehnen und genug darüber nachdenken muss, um zu erklären, warum ich etwas auf eine bestimmte Weise tue, damit sich 1) mein eigenes Verständnis erheblich verbessert und 2) ich bewerte die Situation oft genug neu, um meine eigene Arbeit zu verbessern.

Auch wenn es für sie schwieriger sein mag, kann dies insbesondere für Programmierer hilfreich sein, deren soziale Fähigkeiten im Vergleich zu ihren Kollegen etwas ... mangelhaft sein können. Wenn Sie sie ein wenig aus ihrer Komfortzone verdrängen, indem Sie sich mehr mit sozialen Aspekten wie Mentoring befassen, kann dies für sie genauso hilfreich sein wie für die Menschen, die sie betreuen. Wenn Sie dies jedoch tun, müssen Sie besonders vorsichtig sein, wenn Sie festlegen, wen Sie koppeln möchten. Eine falsche Kopplung kann letztendlich beiden schaden.


0

Ich denke, es funktioniert am besten, wenn sich die Mentoren freiwillig für die Aufgabe melden . Hier haben wir keinen sehr formalen Mentoring-Prozess. Manchmal hat unser Manager etwas Bestimmtes im Sinn, aber manchmal sagt er etwas wie: "Hat jemand eine gute Idee für ein Projekt für den neuen Mann?" und wer die beste Idee hat, macht am Ende das Mentoring.

Was am Ende passiert, ist, dass der neue Mitarbeiter für ein Projekt eingestellt wird, das sich die Lernzeit leisten kann, und von der Person betreut wird, die mit dem Projekt am besten vertraut ist. Das könnte jemand sein, der 10 Monate oder 10 Jahre hier ist. Manchmal werden die Mentoren ein bisschen von den Leuten betreut, aber der Vorteil ist, dass sich die neueren Leute immer noch an alle Schwierigkeiten erinnern, neu zu sein und wie sie sie überwunden haben.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.