Was tun mit einem hungernden Entwicklungsteam? [geschlossen]

10

Es ist schade, als normaler Entwickler auf dem kritischen Pfad zu sein, besonders wenn Sie zu spät kommen. Wenn Sie der leitende Entwickler sind, den das Team nach Führung sucht, ist es noch schlimmer.

Was sollte der Rest des Teams tun, wenn die Arbeit für den größten Teil des Teams zum Stillstand kommt und auf ein kritisches Teil wartet? Wir haben nur eingeschränkten Zugriff auf das kritische Teil, sodass andere einfach warten, egal was wir tun. Wenn die anderen nach Rat suchen, was zu tun ist, was ist eine gute Antwort?

candied_orange
quelle
10
Haben Sie keine technischen Schulden zu begleichen? Sind für die Zukunft Funktionen geplant, auf die Sie zugreifen können? Neue Technologien oder Paradigmen, die Sie innerhalb der vorhandenen Funktionalität ausprobieren möchten?
Jonrsharpe
27
@StudentT ist unglaublich kurzsichtig, da es wahrscheinlich schwierig ist, das Team wieder hochzufahren, sobald der Blocker gelöst ist.
Jonrsharpe
8
@StudentT eher sollte der Leiter entlassen werden, weil er nicht für die Zukunft plant und nicht vorwegnimmt, dass solche Dinge passieren können.
Jwenting
13
Hungernde Entwickler? Ein Wort: Pizza.
Mason Wheeler
3
Wenn OP keine technischen Schulden zu begleichen hat und keine Unit- / Funktionstests oder Bereitstellungsskripte zum Schreiben / Verbessern vorhanden sind, beschwert er sich definitiv bei Deaven (Dev Heaven) und ich bin plötzlich sehr traurig: <
xDaizu

Antworten:

29

Verbessern Sie Unit-Tests, Funktionstests, Dokumentationen, Tools usw. Es gibt eine Vielzahl von Dingen, die in Ausfallzeiten erledigt werden können, während Sie darauf warten, dass der kritische Pfad aufgeholt wird.

Vielleicht_Faktor
quelle
2
Diese. Der durchschnittliche Entwickler (ich eingeschlossen) jammert ständig über einen Zeitmangel, um Dinge zu verfeinern. Halte sie daran fest.
Traubenfuchs
4
Ich mag diesen General "mach was du noch nicht erreicht hast". Ich würde Code-Reviews und Refactoring hinzufügen. Machen Sie es zu einer wirklich netten Software, die wie eine gut geölte Maschine funktioniert und eine Freude ist. Das ist für die Entwickler zufriedenstellend.
Peter - Reinstate Monica
Dinge, die vorher nicht wichtig genug waren, sind jetzt wahrscheinlich immer noch nicht wert. Es ist nur "Arbeit machen"
Ewan
16

Die Antwort zur Verbesserung von Tests, Dokumentation usw. gefällt mir zwar gut, aber Sie können sie sich auch ansehen:

  • Würde die Unterstützung der kritischen Pfadkomponente bei der Team- / Buddy-Programmierung schneller gehen?
  • Umstrukturierung der kritischen Komponente in mehrere Unterkomponenten, an denen jeder arbeiten kann.
  • Entleeren Sie die kritische Komponente mit etwas, möglicherweise Rauem, das im Grunde den gleichen Job macht, aber möglicherweise nicht schnell genug für die Produktion ist.
  • Richten Sie eine API für die kritische Komponente ein, beheben Sie diese mehr oder weniger in Stein gemeißelt und helfen Sie dabei, die grundlegenden Funktionen für diese Komponente zu implementieren (vorbehaltlich Änderungen in der Implementierung, jedoch nicht der API).
  • Prüfen Sie, ob Sie frühzeitig bekannte, problematische Versionen der kritischen Komponente verwenden können, um den Rest des Systems zu bearbeiten, in dem die Funktionalität "vorerst gut genug" ist.

Es ist auch eine gute Idee, die Phase "Lessons Learned" jetzt zu beginnen, indem aufgezeichnet wird, dass solche kritischen Komponenten früher im Entwicklungsprozess gestartet werden müssen, möglicherweise bevor der Rest des Teams zusammengestellt wird.

Steve Barnes
quelle
2
Ich mag die Alternative "Es gibt immer etwas zu verbessern". Wenn sie gut genug sind, ist es besser, sich auf das aktuelle Problem zu konzentrieren und eine geeignete Problemumgehung zu finden.
Walfrat
15

Sie benötigen einen Sicherungsplan für Ihre verspätete Lieferung

Wenn ein kritisches Stück bereits zu spät ist, gibt es keine Garantie dafür, dass es nicht noch mehr verrutscht. Was dann? Du wartest nur ewig? Dies ist nicht die Art von Antwort, die Sie dem oberen Management mitteilen möchten.

Baue einen Simulator

Eine Möglichkeit, das Risiko zu managen, besteht darin, mit der Arbeit an einem Simulator (Gurtzeug, Unterlegscheibe, Stummel, wie auch immer Sie es nennen möchten) zu beginnen, um das fehlende kritische Teil zu ersetzen.

Hat es eine definierte Schnittstelle? Setzen Sie es um.

Hat es eine detaillierte Dokumentation? Imitiere es so gut du kannst.

Ist es nur eine Idee von jemandem? Sehen Sie, ob Sie einen Prototyp bekommen können.

Dann, wenn sie wieder Zeitplan rutschen ....

Auf diese Weise haben Sie ein Ass in der Gesäßtasche, um die Lücke zu schließen, wenn der Zeitplan erneut verschoben wird. Ihr Team wird nicht nur entsperrt (es kann in den Simulator integriert werden), sondern Sie erhalten auch ein wertvolles Software-Asset.

Wenn sie den Zeitplan noch mehr verschieben, nutzen Sie die Zeit, um automatisierte Integrationstests zu schreiben ( vorerst gegen Ihren Simulator). Auf diese Weise können Sie, wenn sie das Original liefern, einfach Ihre Tests ausführen und Verhaltensunterschiede zwischen dem Modell und dem Ergebnis feststellen. Auf diese Weise können Sie sich auf Stellen konzentrieren, die Sie überarbeiten müssen. Als Bonus erhalten Sie schnell eine Vorstellung davon, wie viel sie im Laufe ihrer Zeit gekürzt haben.

John Wu
quelle
Der Simulator muss nicht vollständig oder fantastisch sein, gerade genug, um Fortschritte zu erzielen.
Thorbjørn Ravn Andersen
1
Ich denke, das ist ein sehr solider und nicht sofort offensichtlicher Rat. Besonders die Perspektive jenseits der Codierung, nämlich Tests. Der Schein ist doppelter Wert.
Peter - Reinstate Monica
4

Wenn die kritische Komponente eine bekannte Schnittstelle hat und es keine Hoffnung gibt, diese in kurzer Zeit zu erledigen, warum nicht ein Test-Double erstellen (zum Beispiel ein Mock )?

Dies würde es dem Team ermöglichen, die Codierung fortzusetzen, obwohl die Testergebnisse etwas weniger aussagekräftig wären.

Christophe
quelle
2

Abgesehen von dem offensichtlichen "Mach all die Dinge, zu denen du bisher nicht gekommen bist", klingt es so, als ob dir und deinem Team die Ruhe fehlt, etwas zu tun, das nichts mit dem späten Projekt zu tun hat. Welches ist verständlich, aber nicht hilfreich.

Das eigentliche Problem könnte also sein, sich darüber zu entspannen. Ich sage nicht gleichgültig. Seien Sie sich Ihrer Verantwortung bewusst, was Sie tun können, um zu helfen, und wenn Sie dann Zeit haben, genießen Sie es. Sie können und müssen nicht die ganze Zeit auf Trab sein. Wenn Sie ein Führer sind, würde ich sagen, dass dies Ihre Botschaft sein sollte. Wenn Sie Ihre Nervosität auf das Team übertragen, wird das Team nicht produktiver, wenn es darauf ankommt.

Martin Maat
quelle
0

Sie sagen nicht, welche Methode Sie verwenden, was es schwierig macht, genau zu beraten.

Wo ich arbeite, wenn es einen Blocker gibt, tut jede Hand der Pumpe alles, um die Entwicklung zu beschleunigen.

Überlegen Sie, ob es ein größeres Problem mit Ihnen geben könnte, da die Führung zu viel übernimmt. Ja, die Leute werden von Ihnen technische Führung erwarten, aber das bedeutet nicht, dass einige Ihrer fähigeren Teammitglieder die Arbeitsbelastung nicht teilen können, wenn sie betreut werden.

Gibt es abgesehen davon noch andere unkritische Arbeiten, die sie vorantreiben können? Gibt es auch Arbeiten, die noch weiter ausgearbeitet werden könnten (überarbeitet, technische Schulden beseitigt, Dokumentation, Hinzufügen von Tests usw.)?

Wenn es wirklich nichts gibt, geben Sie ihnen etwas - gehen Sie Protokolle, Builds, Dokumente, Testpläne, Entwürfe, Diagramme durch, schreiben Sie Tagesordnungen, arrangieren Sie Besprechungen, halten Sie Brown-Bag-Sitzungen ab, teilen Sie Wissen usw. Es gibt immer etwas zu tun. Wenn die Leute bereitwillig nur herumsitzen und nichts auf der Firmenmünze tun, sollte dies eskaliert werden, da sie eindeutig keine Teamplayer sind.

Robbie Dee
quelle