Mein Team von 4 erfahrenen Entwicklern arbeitet an einer großen, modularen Windows-Anwendung (ca. 200 KLoC). Ich habe mich seit Beginn des Projekts (vor 3 Jahren) auf die Kerncodebasis konzentriert und bin allmählich zu einer semi-leitenden Entwicklerposition übergegangen, obwohl ich nicht der Teammanager bin.
Unsere aktuelle Iteration ist eine vom oberen Management angeforderte Aktualisierung der Benutzeroberfläche mit hoher Priorität, die etwa 15 Änderungen an der Kerncodebasis umfasst. Wenn von dem Manager gefragt, schätzte ich , dass jeder der 15 Änderungen würde weniger als vier Stunden für mich komplette , insgesamt weniger als 7 Werktage. Ich habe mich dann freiwillig gemeldet, um die Arbeit auszuführen. Stattdessen beschloss der Manager, alle 15 Aufgaben gleichmäßig auf alle vier Entwickler aufzuteilen.
In den drei Tagen seit Beginn unserer Arbeit habe ich zwei Dinge beobachtet:
Die anderen unerfahrenen Teammitglieder erledigten jeweils etwa eine oder weniger Aufgabe.
Brooks Gesetz in Aktion: Ich habe ungefähr die Hälfte meiner Zeit damit verbracht, Hilfe zu leisten (um zu versuchen, sie in der Verwendung der Komponenten zu coachen). Infolgedessen habe ich nur 2 Aufgaben selbst erledigt, anstatt der erwarteten 5 oder 6.
Ich wandte mich mit der Sorge an meinen Manager, dass wir spät dran waren, und schlug erneut vor, die verbleibenden Aufgaben zu erledigen. Meine Anfrage wurde freundlicherweise abgelehnt, und es gab zwei Gründe, die Ladung gleichmäßig aufzuteilen:
- Begrenzen Sie den Lkw- / Bus-Faktor - steigern Sie jetzt andere Entwickler auf diese Fähigkeiten, damit in Zukunft jede Arbeit an jeden vergeben werden kann, nicht nur an mich.
- Um einen "Engpass" (mich) zu beseitigen und die Arbeit schneller zu erledigen.
Um es klar auszudrücken, ich habe keine Probleme mit: a) dem Investieren der Zeit, b) Leuten, die meinen Code berühren, oder c) der Arbeitsplatzsicherheit. Tatsächlich schlage ich dem Teamleiter regelmäßig vor, andere Entwickler in bestimmten Aspekten der Kerncodebasis zu schulen, um das Risiko zu verringern.
In dieser Iteration haben wir auch eine große Sammlung von Fehlerkorrekturen mit hoher Priorität, sodass gezielt weitere Fortschritte erzielt werden könnten, wenn die Arbeitslast neu verteilt würde.
In Mythical-Man-Month schlägt Brooks ein " Surgical Team " vor, bei dem jedes Team aus einem Lead + Sub-Lead (dem Manager und mir) und einigen Nebenrollen besteht. Ich habe das Gefühl, dass wir natürlich in diese Organisation fallen, aber mein Manager arbeitet dagegen. Ich bin der Meinung, dass der Busfaktor bereits behoben ist (der Manager ist mit dem Kerncode bestens vertraut) und dass der Engpass tatsächlich nicht besteht (mehr Entwickler werden die Arbeit nicht beschleunigen). Ich denke, dass in dieser Hinsicht ein Operationsteam eine gute Sache ist.
Dies sind meine Gefühle, aber ich bin kein erfahrener Manager, noch mussten wir uns mit dem Busfaktor (Klopfen auf Holz) auseinandersetzen. Hatte Brooks recht? Haben Sie in einem "Surgical Team" gearbeitet, in dem der Busfaktor ins Spiel kam? Gibt es bessere Techniken für das Management von Vertriebskompetenz?
Ähnliche Fragen: