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?
Antworten:
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.
quelle
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.
quelle
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.
quelle
Wie lang ist ein Seil?
quelle
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!
quelle
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).
quelle
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).
quelle
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.
quelle