Was sollten Sie tun, wenn Ihr Junior Ihren Vorschlag nicht angenommen hat? [geschlossen]

30

Ich leite ein Team von 3-4 Nachwuchsentwicklern. Meine Aufgabe - neben dem Schreiben von Code - ist es, die Junioren zu beaufsichtigen und zu begleiten.

Aber ich verstehe vollkommen, wie sehr Entwickler Autonomie in ihrer Arbeit schätzen, und ich möchte ihre intrinsische Motivation nicht zerstören, indem ich sie mit meinen Gedanken und meinen Algorithmen füttere. Ich möchte, dass sie das Problem auf ihre eigene Weise untersuchen, selbst darüber nachdenken und nur dann zu mir kommen, wenn sie wirklich mit unüberwindlichen Problemen konfrontiert sind.

Wenn sie zu mir kommen, müsste ich manchmal einen völlig anderen Algorithmus vorschlagen, um das Problem zu lösen, weil ihr Algorithmus nicht robust genug ist (denken Sie daran, ich bin der Ältere und ich habe mehr als sie gesehen). Natürlich würde ich dies auf eine nette Art und Weise erklären, um ihre Gefühle nicht zu verletzen, und ich würde sanft skizzieren, wie weit überlegen meine Lösung ist, ohne herablassenden Ton oder verurteilende Worte.

Dennoch zögern sie manchmal, meinen Vorschlag anzunehmen, zum Teil, weil sie so viel in ihren eigenen Algorithmus investiert haben, oder weil sie befürchten, dass die Verwendung einer neuen Methode mehr Lernzeit mit sich bringt und sie dem Management so erscheinen lässt, als ob sie es wären gehen nirgendwo hin. Aber tief in meinem Herzen weiß ich sehr gut, dass mein Algorithmus viel besser ist als der ihre und sie sollten ihn einfach übernehmen.

Was soll ich tun, wenn sie meinen Vorschlag nicht angenommen haben? Soll ich sie einfach bitten, meinem Weg zu folgen, oder soll ich sie einfach noch viele Male mit dem Kopf gegen die Wand schlagen lassen und warten, bis sie zu mir zurückkehren? Ersteres zu tun, macht mich zu einem Diktator, aber letzteres würde uns wertvolle Entwicklungszeit kosten und Fehlerbehebungskosten verursachen. Ich bin hier wirklich in einem Dilemma.

Graviton
quelle
9
Programmierer sind arrogant. Sind Sie zuversichtlich, dass Ihre Lösung überlegen ist, weil sie ist oder weil Sie sie entwickelt haben? Wenn Sie den Grund für die Methode der Nachwuchsentwickler wirklich übertroffen haben, sollte es sich wahrscheinlich um ein Szenario handeln, in dem es nach meinem Geschmack geht.
Rig
6
Hallo Graviton, allgemeine arbeitsplatzbezogene Themen wie dieses sind hier nicht themenbezogen: Möglicherweise sind Sie an einem bevorstehenden Standortvorschlag ( Professional Matters) interessiert , bei dem solche allgemeinen beruflichen Fragen themenbezogen wären.
27
@MarkTrapp: Würde es Ihnen etwas ausmachen, Ihre Argumentation zu erläutern, warum Sie die Teamführung von Programmierern als nicht thematisch betrachten? Anstatt diese Frage zu schließen, sollte sie aus Konsensgründen besser in StackOverflow verschoben oder offen gelassen und später in Professional-Angelegenheiten migriert werden, sobald sie verfügbar ist. Meiner Meinung nach ist dies ein Thema, das für Softwareentwickler von Interesse ist, und angesichts der Tatsache, dass Programmierer nur für die Programmierung zuständig sind, halte ich dies für definitiv thematisch. Vielen Dank.
S.Robins
35
Warum werden die interessantesten Fragen geschlossen?
ThomasX
11
Ich könnte zustimmen, dies zu schließen, wenn es um das einfache Verwalten von Personen ging, die unter Ihnen arbeiten, aber die Frage betrifft das Verwalten des Codes von Personen, die unter Ihnen arbeiten, was meiner Meinung nach für diese Site vollkommen in Ordnung ist. Zur Wiedereröffnung gewählt.
Rachel

Antworten:

28

Helfen Sie ihnen zu verstehen, warum sie die von Ihnen vorgeschlagene Änderung vornehmen sollten. Und hören Sie ihnen zu, wenn sie einen guten Grund haben, die Änderung nicht vorzunehmen. Besprechen Sie sich und einigen Sie sich auf das Beste, was zu tun ist.

Dieser Ansatz ist aus folgenden Gründen wichtig:

  • Sie möchten, dass sie die Änderung aus soliden geschäftlichen / technischen Gründen vornehmen. Es ist wichtig, dass klar ist, was das ist (jeder denkt daran, dass du auch falsch liegen könntest , also sei demütig ...).
  • Sie möchten wirklich die Argumentation hinter Ihrem Vorschlag vermitteln - auf diese Weise wird der Empfänger lernen, ähnliche Probleme in Zukunft selbst zu lösen. Sie werden auch ein besseres Verhältnis haben, wenn Ihre Junioren das Gefühl haben, dass sie einige gute Einsichten von Ihnen lernen.
  • Sie werden nicht respektiert, wenn Sie Ihr Dienstalter verwenden und nicht nachweisen können, dass Sie tatsächlich gute Gründe haben.
  • Ihr Chef möchte vermutlich zuversichtlich sein, dass Sie die Zeit Ihrer Junioren effektiv für Dinge einsetzen, die echten Wert schaffen, und nicht nur, um es so zu machen, wie ich es will.

Wenn Sie schlau sind, können Sie sie auch dazu bringen, die Antwort zu finden, indem Sie einfach Fragen stellen . Richtig gemacht, kommt Ihr Junior selbst zum richtigen Ergebnis (und ist daher viel eher bereit, es umzusetzen). Beispielfragen:

  • Ihr Code setzt den Zugriff auf die Produktionsdatenbank voraus. Wie können wir das ändern, damit es weiterhin funktioniert und von JUnit in einer nicht verbundenen Entwicklungsumgebung korrekt getestet werden kann? (Mögliche Antwort: ah! Wir sollten Abhängigkeitsinjektion verwenden ....)
  • Was passiert, wenn ein Angreifer in Ihrem Online-Dateneingabeformular absichtlich geschickt konstruiertes SQL gesendet hat? (Mögliche Antwort: ah! Vielleicht sollten wir keine SQL-Anweisungen erstellen, indem wir nicht verifizierten Text aus dem Internet verketten.)

BEARBEITEN : Wenn es Ihnen gelingt, Ihren Junior davon zu überzeugen, dass das Richtige darin besteht, Ihrem Vorschlag zu folgen, der jedoch weiterhin zögert, finden Sie hier einige zusätzliche Ratschläge:

  • Finden Sie heraus, warum sie zögern. Es ist möglich, dass sie zu einer persönlichen Erkenntnis kommen müssen, dass es egal ist, ob Sie Code rauswerfen oder nicht, vorausgesetzt, Sie erhalten das Ergebnis. Oder es könnte sein, dass sie sich aufgrund einer bestimmten Frist unter Zeitdruck fühlen. Sie müssen wissen, sonst können Sie ihnen nicht helfen .....
  • Sie können darauf hinweisen, dass sie die Änderung als einen Weg zur Verbesserung ihrer Refactoring-Fähigkeiten behandeln können. Sobald die Refactoring-Fähigkeiten gut genug sind, sollten Sie in der Lage sein, auch eine relativ große und komplexe Codebasis relativ schnell neu zu definieren.
  • Sie sollten betonen, dass sich alles in der Quellcodeverwaltung befindet, sodass bei Bedarf jederzeit auf eine alte Version zurückgegriffen werden kann.
mikera
quelle
Ich habe Ihre Antwort nicht gesehen, als ich anfing, meine zu tippen! Also +1 von mir, weil Sie die Essenz dessen, worüber ich schrieb, nur eleganter und prägnanter eingefangen haben. ;-)
S.Robins
@mikera, sie sind sich einig, dass meine Lösung besser ist, aber sie zögern, alten Code zu löschen und in neuen Code zu investieren.
Graviton
Es gibt kein Schwarz oder Weiß. Menschen können über Kleinigkeiten hin und her gerissen werden. Sie sind Menschen, keine Roboter. Obwohl ich damit einverstanden bin, dass es wichtig ist, Ihren Standpunkt klar und objektiv zu vermitteln, versuchen Sie, diplomatisch zu sein. Es gibt eine ganze Literatur darüber, wie man Menschen überzeugt. Es ist eine Wissenschaft für sich. siehe eins en.wikipedia.org/wiki/How_to_Win_Friends_and_Influence_People
siamii
8

Ich hasste die überhebliche Haltung meines letzten Teamleiters, aber respektiere ihn für die Tatsache, dass er überlegenes technisches Wissen verfügt und mir viel beigebracht hat, ohne mich zu belehren. Am wichtigsten ist, dass er mich nie gezwungen hat, seinen Plan umzusetzen. Er würde Devil's Advocate mit meinem Plan spielen und mich zwingen zu beweisen, dass mein Plan fehlerfrei war. Er würde nach Schlupflöchern suchen und auf meine Erklärung warten, warum es keine Lücke oder eine weniger teure Lösung ist. Er würde mich fragen, ob es alternative Lösungen gäbe und einige Ideen vorschlagen, wenn ich keine hätte. Ich musste seine Ideen bewerten und feststellen, dass sein Plan nicht optimal war. Wenn er davon überzeugt war, dass mein Plan richtig war oder zumindest das gleiche Risiko-Ertrags-Verhältnis wie sein hatte, gab er die Erlaubnis. Wenn ich mit meiner Idee gescheitert wäre, müsste ich seine Lösung ausprobieren.

Es muss einen Kompromiss zwischen Freiheit und Fristen geben. Sie haben nicht den Luxus, die Frist zu verlängern, und Sie können nicht zulassen, dass Ihre Junioren gegen diese Frist verstoßen. Sie müssen höflich, aber fest mit ihnen sein, dass sie die Pflicht haben, Ihnen zuzuhören, wenn sie ihren Algorithmus einmal ausprobiert und nicht zum Laufen gebracht haben. Zeigen Sie mit gutem Beispiel, dass Sie sich auskennen. Aber, ebenso wichtig, lass sie lernen, unterrichte sie nicht.

DPD
quelle
5

Wenn es eine Anforderung ist, notieren Sie es als das. Wenn es sich, wie Sie bemerken, nur um einen Vorschlag handelt, sollte es ihnen freigestellt sein, dies ansonsten zu tun. Einige Fragen, die ich stellen würde:

  • Haben Sie die Befugnis, auf bestimmte Lösungen zu drängen?
  • Was ist der Umfang für diese Behörde?
  • Gibt es eine schlechte oder nur eine andere Lösung?

Ich bin sicher, Sie könnten mehr fragen, aber die ersten beiden konzentrieren sich auf Ihre Autorität und die letzte darauf, ob es sich wirklich lohnt, das Problem anzugehen.

Die folgende Antwort enthält einige wichtige zusätzliche Punkte, und ich möchte hier hinzufügen, dass Sie sie eher als einen kollaborativen Prozess behandeln müssen, bei dem Sie zumindest einige davon mit Ihrem "Team" durcharbeiten, anstatt ihnen nur Diktate zu erteilen. Sie werden lernen, während sie mit Ihnen die Probleme durcharbeiten, und nicht nur erfahren, "wie Sie es tun sollten".

Brad Andrews
quelle
Ich habe die Autorität, aber ich bevorzuge es nicht zu verwenden
Graviton
Autorität ist definitiv ein zweischneidiges Schwert. Es ist besser, die Unterstützung Ihrer Kollegen zu haben, als deren Ressentiments. Wenn Sie sich nicht an einem inklusiven Prozess beteiligen, wird Ihre Behörde später häufig vor Herausforderungen gestellt. Wenn Sie nicht mehr in der Lage sind, Ihren eigenen Manager einzubeziehen, um Ihre Autorität geltend zu machen, haben Sie in Zukunft keine Chance mehr, sich erfolgreich zu engagieren mit Ihren Junioren unter ähnlichen Umständen.
S.Robins
1
"Die folgende Antwort". Es ist nicht zu erwarten, dass Antworten in einer bestimmten Reihenfolge angezeigt werden. Verwenden Sie den Link "Link", um eine URL zu erhalten, auf die Sie in Ihrer Antwort verweisen können.
4

Lernen findet wirklich nur dort statt, wo es zu Fehlern kommt, denn Misserfolg ist ein Motivator und liefert Erinnerungshinweise für zukünftige Erinnerungen. Dies ist im Wesentlichen das, was wir als Erfahrung bezeichnen, und gute Erfahrungen am Arbeitsplatz werden daraus resultieren, dass wir gescheitert sind und aus den Fehlern gelernt haben. Wenn Ihre Junioren in der Lage wären, beim ersten Mal alles richtig zu machen, würden sie entweder nichts lernen oder sie wären keine Junioren.

Wenn zu viele Nachwuchskräfte Probleme haben, hat Ihr Unternehmen möglicherweise zu viele Nachwuchsentwickler, bei denen aufgrund zeitlicher Beschränkungen erfahrene Mitarbeiter erforderlich sind, um Ihre Risiken zu minimieren. Dennoch kann es zu Problemen und Verzögerungen kommen, da Nachwuchsentwickler Fehler machen auch davon lernen.

Ihre Junioren müssen lernen und Erfahrungen sammeln, um in einem Umfeld mit engen Fristen zurechtzukommen. Als Teamleiter ist es Ihre Aufgabe, ein Beispiel zu geben und Ihre Junioren zu einer effizienten Arbeit zu inspirieren. In der Realität müssen Sie jedoch Bedenken hinsichtlich des persönlichen Stolzes und Ihrer engen Zeitpläne ausräumen, wenn Ihre Junioren tatsächlich etwas lernen möchten , und deshalb müssen Sie zulassen, dass sie fehlschlagen. Daher ist es Ihre Aufgabe, einen Anruf zu tätigen. Manchmal müssen Sie dem Junior den Raum zum Scheitern geben und ihn dann geduldig durch einen Überprüfungsprozess führen, um ihm zu zeigen, wo er seine Ideen verbessern kann. In anderen Fällen müssen Sie Ihren Fuß nach unten setzen, aber dies auf eine Weise, die es Ihnen ermöglicht zu zeigen, dass dies aus einem echten Bedürfnis heraus geschieht, das die Fähigkeiten Ihres Nachwuchses an sich nicht schlecht widerspiegelt.

In Bezug auf knappe Fristen müssen Sie hier Ihre Arbeit nach den relativen Stärken und Schwächen Ihres Teams planen und zuordnen. Letztendlich hört das Geld bei dir auf. Wenn Sie für andere verantwortlich sind, sind Sie nicht da, um die Freunde aller zu sein, sondern um unter schwierigen Umständen einen schwierigen Job zu erledigen. Wie Sie alle auf Ihrer Seite halten, hängt davon ab, wie Sie die Menschen über Ihre Anliegen und Probleme informieren und begründen, warum Ihre Teammitglieder etwas auf eine bestimmte Art und Weise tun müssen.

Nach meinen persönlichen Erfahrungen müssen Sie Ihrem Nachwuchs eine bestimmte Zeit reservieren, um die Stärken und Schwächen beider Ideen zu besprechen, und dann gemeinsam nach der besten Lösung suchen, die das vorliegende Problem löst - auch unter dem Risiko, es sich selbst zu erlauben sich als falsch erweisen - und dann vorwärts gehen. Wenn Sie beide bis zum Ende Ihrer zugewiesenen Zeit keinen Konsens erzielen können, müssen Sie zu diesem Zeitpunkt die Besprechung mit einer Zusammenfassung abschließen, die die besprochenen Bedenken berücksichtigt und feststellt, dass kein Konsens erzielt wurde. Unabhängig vom Ergebnis Ihres Meetings danken Sie Ihrem Junior für die aufgewendete Zeit und geben an, dass Sie mit Ihrer Entscheidung zurückkehren werdenkurz. Nach sorgfältiger Prüfung Ihrer Diskussion haben Sie die Möglichkeit, entweder zusätzliche Zeit für die weitere Diskussion bereitzustellen oder den Junior zu beauftragen, mit dem Plan fortzufahren, den Sie je nach dem Ergebnis Ihrer Besprechung festgelegt haben.

Ja, Zeit ist manchmal kostbar. Wenn Sie sich jedoch dafür entscheiden, Junioren einzustellen, müssen Sie akzeptieren, dass Sie die Verantwortung übernehmen, in deren berufliche Entwicklung zu investieren und diese zu fördern, und Sie müssen akzeptieren, dass dies für eine Weile der Fall sein wird Zumindest kostet dich das Zeit.

S.Robins
quelle
4

Ich würde fragen, ob Sie Ihren Vorschlag tatsächlich auf eine Weise präsentieren, die nicht herablassend ist. Wenn Sie Ausdrücke verwenden wie:

Meine Lösung ist weit überlegen als ihre

und

Tief in meinem Herzen weiß ich sehr gut, dass mein Algorithmus viel besser ist als der ihre und sie sollten ihn einfach übernehmen.

es lässt mich denken, dass Sie mit einer Haltung "mein Weg ist überlegen" rüberkommen könnten. Niemand mag es, diese Einstellung zu bekommen. Als ich es in der Vergangenheit erhalten habe, habe ich mich aktiv bemüht, einen anderen Algorithmus zu verwenden, um die Person als falsch zu beweisen. Es könnte sein, dass Ihre Junioren dasselbe tun.

Ein besserer Weg sollte sein, sich mit der Person zusammenzusetzen und ihren Algorithmus zu besprechen. Zeigen Sie auf, warum Sie nicht glauben, dass es funktionieren wird, und hören Sie die Antworten, die sie Ihnen geben, mit offenem Geist. Überprüfen Sie, ob der Algorithmus so geändert werden kann, dass er ordnungsgemäß funktioniert.

Wenn das, was Sie als Junior haben, definitiv nicht funktioniert, erklären Sie ihnen, warum es nicht funktioniert. Welche Teile sind falsch oder werden später neu geschrieben oder passen nicht zum Geschäftsmodell. Stellen Sie sicher, dass sie Ihre Gründe gut verstehen. Erklären Sie ihnen dann Ihren Algorithmus und weisen Sie sie auf die Stellen hin, an denen er funktionieren und deren Code fehlschlagen würde.

Briddums
quelle
3

Kennen Sie zuallererst den wahren Grund, warum Ihr Junior Ihren Vorschlag nicht angenommen hat?

Manchmal weißt du, dass ein Junior aufgrund neuerer Perspektiven und einer aktuelleren CS-Ausbildung tatsächlich etwas Besseres als sein Senior schreibt. Obwohl Sie als Senior vielleicht mehr Beispiele aus der Praxis gesehen haben. Aber eine schlechte Falle, in die meine Senioren manchmal geraten, ist das Vergessen, dass sich bewährte Methoden im Laufe der Zeit ändern können. Ich bin mir sicher, dass dies nicht auf Sie zutrifft, da Sie sich auf Websites wie diesen selbst aktualisiert haben. ;)

Ich würde vorschlagen, dass Sie versuchen, sich an Ihre Junioren zu wenden, ohne die geringste Aura eines Senioren zu haben. Versuchen Sie, mit ihnen auf Augenhöhe zu sprechen, und zeigen Sie Neugier in dem Code, den sie geschrieben haben. Fragen stellen, Antworten hören. Fragen Sie nicht anklagend wie:

"Ihr Code ist ziemlich unflexibel, Sie müssen ihn in diesen ändern ..."

stattdessen fragen

"Ich frage mich nur, was wäre, wenn jemand ... schafft es Ihr Code, damit umzugehen? ... Ich denke, ein Strategiemuster könnte hier Abhilfe schaffen. Was denken Sie?"

Ich glaube, dies wird Ihnen dabei helfen, gesündere Gespräche mit ihnen zu führen, als wenn Sie als Professor / Dozent auf sie herabblicken und alles wissen. Es wird Ihnen auch helfen, ihre Argumentation und Perspektiven besser zu verstehen.

Schneepolar
quelle
2

Steuern Sie den Push-Zugriff auf das Repository?

Bei Open Source wird der Push-Zugriff immer von einem Gatekeeper gesteuert, der für die Durchsetzung der Qualität verantwortlich ist. Wenn Sie die Commits, die sie vorantreiben, aktiv überwachen, sollten Sie genau wissen, wo sie sich verbessern können.

Können sie Ihren Code hacken oder verbessern? Wenn sie die Möglichkeit haben, die Interna zu sehen, wie Ihr Code funktioniert, lernen sie möglicherweise, wie sie sich besser an Ihren Stil anpassen können. Wenn Sie Ihre Vorschläge vorantreiben, ohne sie offen anzunehmen, sind sie weniger geneigt, Ihrer Meinung zuzuhören.

Unter bestimmten Umständen gibt es keine richtige Antwort (z. B. Einstellungen für den Codierungsstil). Versuchen Sie in diesem Fall, eine unternehmensweite Richtlinie zu erstellen (oder durchzusetzen), damit sie verstehen, dass der Stil des Codes auf die Hauptcodebasis abgestimmt sein sollte. Die Verwendung einer bereits etablierten Stilrichtlinie (wie Microsofts Stilrichtlinie für C #) ist der beste Weg, insbesondere für neue Entwickler im Team.

Wenn Sie pauschale Aussagen über ihre Codierungstechniken machen, besteht die Möglichkeit, dass Sie die Gründe für ihre Auswahl nicht vollständig verstehen. Schon der Ton Ihrer Frage lässt Sie arrogant klingen. Was gewinnen / opfern Sie, wenn Sie Ihre Herangehensweise an die jüngeren Entwickler forcieren?

Die Schlüsselfrage, die Sie sich stellen müssen, ist, ob Ihre Vorschläge darauf abzielen, die Qualität der Codebasis aufrechtzuerhalten / zu verbessern oder Ihre Dominanz / Überlegenheit gegenüber Ihren Kollegen zu behaupten. Ersteres ist eine einfache Qualitätskontrolle und kann als solche gerechtfertigt werden. Die Leiter ist nachteilig für die Teamdynamik, unabhängig davon, ob Sie das Recht haben oder nicht.

In jedem Fall sollten Sie einen konkreten Beweis dafür haben, dass Ihre Lösung tatsächlich überlegen ist, wenn Sie sie auf Ihre Kollegen übertragen möchten. Eine Leistungssteigerung sollte leicht zu verbessern sein, und alles andere ist den Aufwand nicht wert (mit Ausnahme von leistungskritischen Anwendungen). Wenn Sie Ihre Arbeit anderen zur Rechtfertigung Ihres persönlichen Überlegenheitsgefühls aufzwingen, werden Sie schließlich als der "altbackene Kerl" herausgegriffen.

Anmerkung: Die besten und talentiertesten Programmierer, denen ich im Laufe der Jahre begegnet bin, schienen immer diejenigen zu sein, die bereit waren, die Hintergrundgeschichte zu erklären, aus der ihr Ansatz hervorging.

Evan Scholle
quelle
2

Nun, das scheint interessant und sehr natürlich zu sein, da junge Programmierer sehr an den Code gebunden sind, den sie geschrieben haben. Vielleicht haben sie einige Zeit damit verbracht, den gleichen Code zu finden, oder sie haben ihn von einer guten Site ausgewählt (also tatsächlich, Hey Jon skeet hat das geschrieben Mann ! !).

Die hier angehängte grundlegende Zeichenfolge enthält jedoch den Code, auf den Sie sich konzentrieren müssen, und ich denke, Sie müssen erhebliche Anstrengungen unternehmen, um zu verstehen, dass die Ausführung und das erwartete Ergebnis von größerer Bedeutung sind als der Name in die Quell-Repositorys geätzt, um diesen Code einzuschieben. Sie müssen Linien zeichnen , wie , warum Ihr Code besser und ist auch gut in Bezug auf die Aufrechterhaltung es für weitere Werke.

Bedenken Sie, dass einige Misserfolge bedeutend sind (einige Herzbrüche für jeden Eigensinn erforderlich sind), aber ich denke, dass sie mit allmählicher Anstrengung auftreten und Ihre Bemühungen besser einschätzen können. Ein bisschen Zeit und ein paar Ausfälle, denke ich, würden Sie brauchen. Sie dazu zu zwingen, würde umgekehrt zu einigen Erfolgsgeschichten und dann zu Weltuntergang und Revolte führen.

V4Vendetta
quelle
2

Jeder hat einen anderen Stil. Wenn Sie 10 verschiedene Personen finden und diese mit einem nicht trivialen Problem konfrontieren, bieten sie Ihnen 10 verschiedene Ansätze mit 10 verschiedenen "Codierungsstandards".

Der Punkt ist: Wählen Sie das Zeug, das zählt. Wenn Ihnen von einem Junior etwas präsentiert wird, das nicht die richtige Lösung liefert, das grob ineffizient ist (+1 Größenordnung, keine Anweisung hier oder da) oder eine Sicherheitslücke schafft, dann erklären Sie Ihr Problem und warum. Wenn es ein "Ich hätte das getan" -Kommentar ist, nun, das ist großartig, Sie hätten das getan und sie hat "etwas anderes" getan, aber das Problem ist immer noch ausreichend gelöst (siehe die obigen Punkte). Fahren Sie mit dem nächsten Feature oder Fix fort.

Ein Teil des Lernens, ein guter Führer zu sein, besteht darin, zu erkennen, was wirklich wichtig ist und was nicht. Außerdem entfernen Sie sich selbst als potenziellen Engpass für die Leistung Ihrer Gruppe, wenn diese alles durch Sie überprüfen muss.

BEARBEITEN: Stellen Sie sicher, dass Ihre Vorschläge echte und nicht verschleierte Anforderungen sind. Ein Vorschlag ist genau das - ein Vorschlag, dem man folgen kann oder nicht. Wenn es eine Anforderung ist, geben Sie es als solche an.

anon
quelle
2

Wie einige der anderen betonten, haben Sie nicht viel Grund, sich über sie zu ärgern, wenn Sie den Junior-Entwicklern wirklich nur Vorschläge unterbreiten und sie als solche formulieren, wenn sie dem nicht folgen, weil sie es könnten sehe nicht viel Grund dafür. Ebenso kann man sie wirklich nicht dafür beschimpfen, dass sie Ihrem Vorschlag nicht folgen, weil sie keine wirkliche Anweisung sind, Dinge auf eine bestimmte Art und Weise zu tun.

In Bezug auf den Versuch, die Junior-Entwickler dazu zu bringen, Dinge zu tun, die Sie lieber tun würden:

  • Kontrollieren Sie Ihre Terminologie, ein Vorschlag ist nicht das Gleiche wie eine Empfehlung, die definitiv nicht das Gleiche ist wie eine Anweisung . Verwenden Sie die Terminologie entsprechend, um Ihren Standpunkt zu verdeutlichen, und wenn Sie der Meinung sind, dass Ihre Vorgehensweise eine bessere ist, sagen Sie ihnen, dass dies Ihre Empfehlung ist. Ebenso, wenn es absolut kritisch ist, dass die Dinge auf eine bestimmte Weise erledigt werden (dh eine Zeitverzögerung nicht aushalten), dann seien Sie einfach stumpf und geben Sie ihnen Anweisungen, wie es getan werden soll.
  • Nachwuchsentwickler durchlaufen immer noch den Lernprozess, unabhängig davon, wie Sie die Dinge formulieren. Geben Sie immer eine Begründung für das, was Sie ihnen sagen, es sei denn, es gibt einen bestimmten Grund, den Sie nicht nennen können. Selbst in diesem Fall werden die meisten Leute verstehen, wenn Sie etwas in der Art sagen: "Es muss so gemacht werden, ich kümmere mich selbst nicht darum, aber die Entscheidung wurde bereits getroffen." Sie neigen dazu, ziemlich vernünftig zu sein.
  • Wenn es sich wirklich nur um einen Vorschlag handelt, stellen Sie sicher, dass Ihre Idee tatsächlich besser ist, als wie sie es getan hat. Wenn Sie nicht der Meinung sind, dass dies der Fall ist, setzen Sie sich mit dem Entwickler in Verbindung und führen Sie eine Code- und Konzeptüberprüfung durch, damit er seine Lösung begründen kann. Es kann sein, dass sie, sobald sie anfangen, es jemand anderem zu erklären - und Sie stellen die richtigen Fragen -, einen besseren Weg finden und die Dinge selbst neu kodieren möchten.
  • Streite nicht über die Details, wenn ihre Lösung der von dir ursprünglich vorgeschlagenen ähnelt, es könnte sein, dass sie das, was du ihnen gesagt hast, berücksichtigt und die Dinge ein wenig anders gemacht haben oder ihr ursprüngliches Konzept auf der Grundlage deines Vorschlags geändert haben.
rjzii
quelle
2

Dies ist eine perfekte Einführung in Unit-Tests. Wenn Ihre Junior-Entwickler eine Lösung haben, sollte diese testbar sein. Lassen Sie sie einen Komponententest erstellen, um ihren Code hervorzuheben. Überprüfen Sie dann den Einheitentest . Wenn Sie Löcher im Test zeigen können, ist es einfach, sie den Test wiederholen zu lassen und zu sehen, wie ihre Lösung unter dem Druck bricht.

So können Sie ihnen zeigen, warum Ihre Lösung besser ist, einen Komponententest erstellen, den Sie wiederverwenden können, wenn sich der Code ändert, und den Junior-Entwicklern wertvolle Lernerfahrungen ermöglichen. Und wer weiß, vielleicht finden Sie heraus, dass ihre Lösung in Ordnung ist.

Spencer Rathbun
quelle
2

Irgendwann musst du das Sagen haben. Du hörst dich an, als ob du dir Mühe gibst, sie ihre Meinung sagen zu lassen. Ihre Vorschläge sind möglicherweise nicht perfekt. Die anderen Entwickler verstehen / stimmen Ihnen möglicherweise nicht zu. Sie stimmen wahrscheinlich nicht überein. Wenn Sie das Sagen haben, ist es keine Demokratie. Das wussten sie, als sie den Job annahmen.

Wenn es keine Situationen gibt, in denen sie Ihnen folgen müssen, haben Sie es nicht verdient und erfüllen keinen Zweck als ihr Chef. Ändern Sie Ihre Rolle im Team, um eine Ressource und keine Autorität zu sein, wenn Sie nicht vorhaben, sie zu verwenden. Irgendwann müssen Sie den bestmöglichen Code unter den verfügbaren zeitlichen Einschränkungen bereitstellen und können erst nach Ablauf der Zeit jede Codezeile erneut debattieren, recherchieren und debattieren.

Gib die Befehle. Lebe mit den Konsequenzen. Aus Erfahrungen lernen. Respekt ist eine Einbahnstraße. Du demonstrierst es und sie sind es nicht.

JeffO
quelle
Ich würde das eine Million Mal positiv bewerten.
HLGEM