Er weigert sich, dem Team zuzuhören, und hat kürzlich die Überprüfung von Codes, Unit-Tests und die Weitergabe von Implementierungsdetails eingestellt ...
Code-Überprüfungen erfordern nicht unbedingt, dass der Codierer die Arbeit zur Überprüfung einreicht.
Eine einfache Möglichkeit, den Überblick zu behalten, besteht darin, die VCS-Historie zu verfolgen und nach seinen Eincheckvorgängen zu suchen. Wenn Sie sich Sorgen um seinen Code machen, können Sie ihn auf einfache Weise finden. Holen Sie sich einen Diff-Verlauf, sehen Sie sich an, was er eingegeben hat, und prüfen Sie, ob rote Fahnen auf Sie losgehen. Wenn Sie ein Problem feststellen, können Sie das Commit zurücksetzen und ihm eine E-Mail senden. Sie dürfen Ihre Teamkollegen auch als Junior-Programmierer anrufen, wenn Sie einen offensichtlichen Fehler feststellen.
Ja, er "codiert" schnell, aber sein Code ist nur ein Fehlergenerator. Andere Teammitglieder und ich befinden uns in einer "Fehlerbehebungsphase" und 80% der Fehler stammen aus seinem Code. Ich möchte seine Fehler nicht beheben. Und das Management ist blind oder will das nicht sehen, oder vielleicht mögen sie seine "Geschwindigkeit".
Code kommt aus Anforderungen. Anforderungen führen zu ausführbaren Tests, die bestätigen, dass die Anforderungen erfüllt wurden. Diese Tests können weiter unterteilt und geschrieben werden, bevor Änderungen vorgenommen werden, um zu überprüfen, ob die Änderungen den Anforderungen entsprechen (Rot-Grün-Refaktor; das Wesen von TDD).
Fügen Sie dem Build-Server Ihres Teams eine Metrik für die Codeabdeckung hinzu (hoffentlich haben Sie eine, wenn nicht, ist dies Ihr erstes Problem). Durch einfaches Überprüfen, ob die Komponententests bestanden wurden, werden die Probleme mit seinem neuen Code (ohne TDD), der in Bereichen ohne Komponententests erstellt wurde, nicht behoben. Nachdem Sie alle Komponententests ausgeführt haben, sollte der Build-Server im Idealfall jede Codezeile ausgeführt haben, aber es gibt tatsächlich einige Dinge, die Sie einfach nicht testen können. Realistisch gesehen sollten Sie immer noch in der Lage sein, eine Abdeckung von 95% oder besser zu erwarten (oder bestimmte Bibliotheken oder Dateitypen von der Abdeckung auszuschließen). Früher oder später checkt Ihr Cowboy etwas ein, das den Build unterbricht, weil er den Abdeckungsgrad unter den Schwellenwert gesenkt hat, und Sie rufen ihn an.
Und was "Geschwindigkeit" betrifft, ist Geschwindigkeit, wie schnell Sie Dinge "erledigen" und erst dann "erledigen", wenn sie korrekt erledigt sind. Sie können es auf diese Weise Ihren Managern mitteilen. Betrachten Sie einen Automechaniker, der vergisst, wenn der Manager seinen BMW zum Ölwechsel mitnimmt, die Ölwanne wieder einzustecken, und infolgedessen läuft das gesamte neue Öl aus, bevor er überhaupt aus der Garage fährt. Sicher, der Ölwechsel dauerte nur fünf Minuten, aber der Manager wird sich nicht darum kümmern, wenn der Motor seines Autos auf dem Heimweg festsitzt. Er wird sich darum kümmern, dass der Mechaniker einen Schritt verpasst hat, was ihn viel zusätzliche Zeit und Geld kosten wird, um ihn zu reparieren. Im Moment bezahlt er einen Cowboy, um die Arbeit wirklich schnell zu erledigen, und dann Wir zahlen dem Rest des Teams eine viel größere Summe, um die Arbeit korrekt zu erledigen. Was ist eigentlich der Vorteil, den Cowboy weiterhin sein Ding machen zu lassen?
Gibt es eine Möglichkeit, wie ich (als sein jüngerer Kollege, nicht sein Chef) etwas dagegen tun kann?
Ruf ihn raus. Wenn Sie etwas finden, das er vermasselt hat, zeigen Sie ihm, wie sein Code versagt, wie er das Problem an erster Stelle hätte verhindern können (einschließlich korrektem Design, TDD, Codeüberprüfungen) und was Sie als Ergebnis tun mussten oder müssen um seinen kaputten Code zu reparieren.
Ich fühle mich als der Letzte, der sich wirklich um das Projekt kümmert.
Klatschen, Lichter blinken, Sirenen heulen - wenn Sie wirklich das Gefühl haben, die einzige Person zu sein, die sich um die Qualität des vom Team erstellten Codes kümmert, gibt es ein SCHWERES Problem. Wenn Sie das Gefühl haben, dass Sie versuchen, das gesamte Team in die Ära des guten Codierens zu schleppen, und es einfach zu schwer ist, um es zu schleppen, lassen Sie es fallen. Wenn es ein anderes Team in der Firma gibt, das es richtig macht, bitten Sie um einen Transfer, sonst kommen Sie zum Teufel raus.