Neue Senior Developer Aufgaben

21

Ich habe einen leitenden Entwickler mit acht Jahren .NET-Erfahrung, der ab morgen an einer 11.000-Zeilen-Code-Anwendung arbeitet. Im Team sind ich und ein anderer Programmierer. Wir haben beide ungefähr drei Jahre Erfahrung.

Es ist mein erstes Projekt als Manager (ich bin auch Entwickler im Projekt) und dies ist das erste Mal, dass ich jemanden mit einer bereits etablierten Codebasis bekannt machen musste. Natürlich werde ich jedes Modul, den Bereitstellungsprozess usw. durchgehen und ihnen den Speicherort des Quellcodeverwaltungs-Repositorys, der Dokumentation (die nicht die beste ist) usw. übergeben.

Wie lange sollte ich ihnen geben, bis sie bereit sind, neue Funktionen zu schreiben und Fehler zu beheben?

MrBliz
quelle
1
Es kommt wirklich darauf an, wie kompliziert diese 11.000 Codezeilen sind. Ich würde erwarten, dass jemand mit 8 Jahren (das heißt, er hat 2003 damit begonnen) innerhalb einer Woche mit voller Geschwindigkeit laufen kann.
Ramhound
Als Datenpunkt haben wir vor einigen Wochen einen Entwickler einem Projekt mit 13.700 Zeilen JavaScript-Code zugewiesen und davon ausgegangen, dass er in einem Sprint (eine Woche) produktiv sein würde, ohne wirklich darüber nachzudenken.
Gort the Robot
@StevenBurnap: Ich mag es :) Zünde seine Füße an und schau, ob er das Haus niederbrennt.
Joel Etherton
Bin ich wirklich der Einzige, der denkt, dass 11k Zeilen nicht viel sind? Ich hätte einen Tag gegeben, aus purer Güte meines Herzens.
Louis Kottmann
Ein Teil Ihrer Aufgabenauswahl kann auch davon abhängen, wie spät Ihr Projekt sein wird. Einige Vorschläge, wie Sie die Auswirkungen neuer Mitarbeiter auf vorhandene Mitarbeiter begrenzen können, finden Sie unter programmers.stackexchange.com/questions/164781/…
DeveloperDon

Antworten:

38

Ich würde am ersten Tag ein paar Bugs mit niedriger Priorität zuweisen, auf diese Weise schreit niemand, wenn sie nicht sofort fertig sind, und dem neuen Entwickler etwas Zeit geben, sich mit der Codebasis vertraut zu machen.

Am wichtigsten ist es, in den ersten Wochen einen Code-Überblick über alle seine Arbeiten zu erhalten. Sie wollen nicht herausfinden, dass der Kerl in die falsche Richtung geht oder die Kodierungsstandards der Firma Monate später nicht befolgt. Es ist besser sicherzustellen, dass er von Anfang an weiß, was erwartet wird, und Code Reviews stellen dies sicher. Natürlich denke ich, dass Codeüberprüfungen für alle Mitarbeiter gut sind (wir überprüfen 100% unseres Codes vor der Bereitstellung), aber sie sind für neue Mitarbeiter von entscheidender Bedeutung und sollten persönlich durchgeführt werden, wo Sie Fragen beantworten und auf Dokumentation verweisen können, die sie möglicherweise nicht haben notfalls noch gesehen.

Was Sie nicht wollen, ist ein neuer Typ, der hereinkommt und einen anderen Stil als Sie verwendet. Die Leute versuchen oft, den Codestil ihres vorherigen Jobs zu verwenden, auch wenn er mit dem am neuen Ort verwendeten Codestil in Konflikt steht, was Verwirrung und Ärger bei den anderen Entwicklern hervorrufen kann.

Eine Sache, die ich selbst bei erfahrenen Entwicklern bemerkt habe, ist, dass einige von ihnen nicht so gut sind, wie sie im Interview zu sein schienen. Die Überprüfung des Codes wird Ihnen dabei helfen, dies schnell herauszufinden, damit Sie es beheben können. Es wird sie auch ermutigen, tatsächlich etwas zu erledigen. Ich habe gesehen, dass neue Mitarbeiter, die keinen Code überprüft haben, ein Projekt herausgezogen haben, ohne zu zeigen, was sie für jemanden getan haben, und dann eine Woche vor dem Termin abgereist sind, von dem sie wussten, dass sie es nicht erreichen würden, weil Sie waren überfordert und hatten noch keinen Teil des Projekts abgeschlossen. Es ist besser, früh und oft mit neuen Leuten zu sprechen, bis Sie wirklich sicher sind, dass sie arbeiten.

Außerdem ist es normal, dass der neue Mitarbeiter über den Status Ihres Legacy-Projekts entsetzt ist. Es ist nicht so designt, wie er es für angebracht hält. Erwarten Sie dies, hören Sie ihn an und entlassen Sie nicht automatisch alles, was er sagt. Insbesondere scheint diese Person mehr Erfahrung zu haben als Sie oder die anderen Entwickler. Möglicherweise sieht sie Dinge, an die Sie nicht gedacht haben. Als Manager müssen Sie jedoch die vorgeschlagenen Änderungen gegen die aktuelle Arbeitsbelastung und die Fristen abwägen. Vielleicht möchten Sie alle etwas Zeit investieren, um zu lernen, wie Sie vorhandenen Code umgestalten, und einige Stunden in Ihre Zeitschätzungen investieren, um dies zu tun, insbesondere wenn der neue Typ berechtigte Bedenken hat. Sie können ein vollständiges Umschreiben wahrscheinlich nicht unterstützen (viele Neueinsteiger denken, wir sollten von vorne anfangen und es besser machen),

Wenn Sie eine Zeit haben, in der nicht erwartet wird, dass er einen vollständigen Beitrag leistet (und die Zeit des Kunden vollständig abrechnet), kann es auch eine Zeit sein, in der er mit einigen der Refactoring-Aufgaben beginnen kann, die Sie bereits erledigen wollten, aber noch nicht erledigt haben. Ich hatte keine Zeit zu tun. Manchmal ist es eine gute Sache, die Einarbeitungszeit für neue Personen zu nutzen, um einige Dinge anzusprechen, die nicht im Projektplan enthalten sind. Sie können die Codebasis erlernen und wenn das, was sie tun möchten, nicht funktioniert, haben Sie die vorhandenen Zeitpläne nicht beeinflusst, da Sie sie noch nicht in den vorhandenen Zeitplan einbezogen haben. Und wenn es funktioniert, haben Sie möglicherweise einen großen Gewinn, der die zukünftige Wartung erleichtert oder die Sicherheit verbessert, oder was auch immer das Problem ist.

HLGEM
quelle
Das ist eine großartige Antwort, insbesondere der Teil über Code-Reviews und die Meinung der Entwickler zum aktuellen Stand des Projekts. Glücklicherweise handelt es sich nicht um ein Legacy-Projekt, sondern um ein sehr neues Projekt, das sich sehr schnell entwickelt.
MrBliz
1
+1 - Viele gute Punkte, aber ich möchte noch einmal betonen, dass es absolut notwendig ist, alle ihre Arbeiten zu überprüfen, damit Sie ihre Fähigkeiten bewerten und sicherstellen können, dass sie auf der gleichen Seite wie das Team sind. Leider dauert dies viel länger als in den ersten Wochen. Ein weiteres +1 für nicht so gut wie beim Interview. Was mit vielen Menschen zwischen dem Interview und dem Tag, an dem sie auftauchen, passiert, ist mir ein Rätsel. Sind Lobotomien wirklich so häufig, wie sie scheinen? Das ist die einzige Erklärung, die ich finden kann.
Dunk
Ja, überprüfen Sie ihre Arbeit, um sicherzustellen, dass sie nicht von etablierten Standards abweichen. Aber wenn sie acht Jahre Erfahrung haben und Sie drei , wissen sie wahrscheinlich mehr als Sie . Stellen Sie sicher, dass Sie sie nicht zwingen, Dinge auf Ihre Weise zu tun.
DJClayworth
2
@DJClayworth, obwohl ich der Meinung bin, dass die neue Person wahrscheinlich über mehr Wissen verfügt und das OP genau darauf achten sollte, was sie anders machen möchte, gibt es Zeiten, in denen Ihr Wissen über das System und die Anforderungen sein besseres Allgemeinwissen überbieten kann Möglicherweise müssen Sie ihn anweisen, aus Gründen, die auf der Historie des Systems und den Anforderungen beruhen, einen nicht optimalen Weg einzuschlagen. Manchmal müssen Sie darauf bestehen, dass sie Dinge auf Ihre Weise tun, aus Gründen, die sie möglicherweise noch nicht kennen. Wenn Sie das tun, müssen Sie natürlich erklären, warum, nicht nur, dass wir es immer so machen.
HLGEM
@Dunk: Nach meiner Erfahrung können sich selbst die schlimmsten Menschen der Welt während eines Interviews ein paar Stunden lang benehmen, wenn sie verzweifelt nach Arbeit suchen. Das ist der Grund, warum Verträge, Praktika und Codebeispiele bei Neueinstellungen so wichtig sind.
Jordanien
18

Beginnen Sie sofort mit kleinen Aufgaben - Dinge, die nicht das Gesamtbild erfordern.

Wenn sie mit der Codebasis sicherer und vertrauter werden, können Sie ihnen immer größere Aufgaben übertragen. Wie schnell das geht, hängt vor allem von ihnen ab.

Oded
quelle
Das ist so ziemlich das, woran ich denke.
MrBliz
+1, das ist ein Kinderspiel, zumal die Codebasis klein ist.
Louis Kottmann
8

Ich mag es immer, mir Aufgaben direkt zuzuweisen, mit der Gewissheit, dass das Durchsuchen des Codes viel länger dauert und in den ersten Tagen / Wochen viele Fragen gestellt werden.

Ich stelle fest, dass ich nicht in der Lage bin, ein Projekt vollständig in den Kopf zu bekommen, bis ich tatsächlich hineingehen und etwas reparieren oder ändern muss.

Also ... Egal, wie gut Sie glauben, Sie haben erklärt, wie ein Projekt funktioniert, es gibt immer das "Oh ja, ich habe vergessen, es Ihnen zu sagen", "wir sind auf dieses Problem gestoßen, also haben wir diese" Momente gemacht, die erst herausgeputzt werden Du fängst tatsächlich an zu arbeiten.

aceinthehole
quelle
+1 Je früher der neue Mitarbeiter mit dem Durchsuchen des Projekts beginnen kann, desto schneller wird sich der neue Mitarbeiter wohl fühlen (bereit, die Verantwortung zu übernehmen), was er tut.
Chad Harrison
3

Wie lange?

Wie lang ist ein Seil?

Wenn er sich wohl fühlt: Wenn er seinen ersten Fehler behebt -> ist er bereit .

Dunkle Nacht
quelle
3

In der Open-Source-Community hat jeder, der sich dem Projekt zuerst anschließen wollte, einige kleine Probleme. Wenn er oder sie das Problem sehr gut bewältigen kann, wird ihm oder ihr die wichtigere Aufgabe zugewiesen. Auf diese Weise würden sie zu einem Kernentwickler des Projekts.

Dieser leitende Entwickler verfügt über acht Jahre .NET-Erfahrung. Sie können ihm also einige einfache Fehler zuweisen, die behoben werden müssen. Wenn es ihm leicht fällt, mit ihnen umzugehen, können Sie ihm komplexe Probleme zuweisen, um ihn mit der gesamten Anwendung vertraut zu machen. Danach konnte er neue Features schreiben und seltsame Probleme analysieren. Mach es einfach, es gibt keine Rüstzeit!

Lerne jeden Tag
quelle
2

8 Jahre Erfahrung. Ich würde ihn einfach reinwerfen. Er sollte schwimmen können. Wie andere angemerkt haben, beginnen Sie mit kleinen, einfachen Aufgaben. Dadurch kann er den Code-Check-In / Check-Out-Prozess und alle anderen von Ihnen ausgeführten Entwicklungsprozesse durcharbeiten.

Ich habe viele Male den Job gewechselt und habe in der ersten Woche an allen mitgearbeitet. Das Schwierigste war, dass ich eine Woche gebraucht habe, um den Code zu kompilieren (mindestens 100.000 + Codezeilen). Ein vollständiger Bau dauerte 8 Stunden für dieses Projekt.

Ich habe in der ersten Woche ungefähr 80 Stunden gearbeitet (Projekt war ernsthaft im Rückstand).

Bill Leeper
quelle
Interessant, dass jeder annimmt, dass es ein Typ ist ... :)
MrBliz
1. Ich würde auf Englisch sagen, dass das Standardpronomen männlich ist und die ganze Zeit "er oder sie" tippt, aber mehr Aufwand, als die meisten Leute hervorbringen wollen. 2. Wie viel Prozent der Programmierer sind weiblich? In diesem Fall hat die Standardeinstellung "Maskulin" Statistiken auf seiner Seite ... Ich würde mir vorstellen, dass es einfacher ist, die Standardeinstellung zu verwenden, um sich auf eine zufällige Person zu beziehen, und nicht speziell davon auszugehen, dass sie männlich oder weiblich ist.
Thymine
Ich bin ein Typ und so müssen es auch alle anderen sein :-). Nur meine Art zu schreiben, ich bin nicht diszipliniert genug, um die ganze Zeit zu schreiben.
Bill Leeper
1

Für eine so kleine App und einen erfahrenen Entwickler würde ich denken, dass ein Tag für grundlegende Fehler ausreicht. Betroffene Bugs oder kleine Features in der Nähe einer Woche (sobald sie klarer in Bezug auf die Problemdomäne und -architektur sind).

Telastyn
quelle
2
Ich denke, meine Standards sind wahrscheinlich zu hoch, aber deine ... 1 Tag ... und 1 Woche, um wirklich produktiv zu sein? IME, das ist nicht sehr realistisch.
Dunk
@Dunk: Aufgaben zugewiesen bekommen und sich ihnen nähern können, ohne vollständig verloren zu gehen? Ich sage nicht, dass sie auf Hochtouren sind, aber zu diesem Zeitpunkt sollten sie in der Lage sein, durch die Codebasis zu jagen, zu wissen, wen sie fragen müssen, um mehr zu erfahren usw.
Telastyn,
Ja, im Ernst. 11k LoC ist nicht sehr groß. Stellen Sie ihn so ein, dass er im Debugger erstellt und ausgeführt wird, und zeigen Sie ihm dann, wie es funktioniert. Das sollte genug sein.
gbjbaanb
1

Die Antwort lautet: es kommt darauf an. Wenn Sie möchten, dass er einen Fehler um eins behebt oder die Farbe eines GUI-Elements ändert, dann brauchen Sie ungefähr 5 Minuten (hier behalten wir unseren Code), um die gesamte Architektur der App komplett neu zu gestalten etwas länger benötigen.

Es hängt wirklich von der Aufgabe ab, die Sie von ihm erwarten.

jmoreno
quelle