6 Stimmen

Wie kann man die agile Entwicklung steuern, wenn das Team nicht stabil ist?

Ich verwende seit mehreren Jahren agile Ansätze (XP und Scrum) für meine Projekte mit sehr guten Ergebnissen. Aber in allen Fällen waren alle Mitglieder des Entwicklungsteams zu 100 % für das Projekt engagiert.

Jetzt stehe ich vor der Aufgabe, dies zu tun, wenn das Team nicht stabil ist. In einer Iteration arbeiten vielleicht vier Leute, in der nächsten nur zwei oder drei.

Mir ist klar, dass dies eine Schätzung mit dem Ansatz der normalen Geschwindigkeit schwierig (oder unmöglich) macht, da sie zu stark schwankt und nicht stabil ist. Daraus folgt, dass man nicht wirklich erwarten kann, am Ende einer jeden Iteration loslassen zu können.

Vielleicht ist hier ein anderer Ansatz erforderlich. Einfach Sachen aus dem Rückstand nehmen, sich durchwursteln und veröffentlichen, wann immer es möglich ist. I realmente Das gefällt mir allerdings nicht...

Haben Sie eine Idee?

3voto

Alexander Lebedev Punkte 5832

Aus der Frage entnehme ich, dass Sie einige Entwickler (wahrscheinlich 2) haben, die sich zu 100% für das Projekt engagieren, und einige (weitere 2-3), die nur zeitweise teilnehmen.

Sie können einen unterschiedlichen Prozess für die Kernentwickler, die zu 100 % engagiert sind, und alle anderen festlegen. Verwenden Sie Ihren normalen agilen Prozess für die Kernmitarbeiter und geben Sie ihre Arbeit im normalen Iterationszyklus frei. Für die Nicht-Kernentwickler sollten Sie wenig planen und davon ausgehen, dass ihre (und Ihre) Schätzungen zuweilen weit daneben liegen. Idealerweise sollten ihre Änderungen isoliert und von den Kernmitgliedern in den stabilen Zweig des Codes eingefügt werden, aber nicht jede Projektarchitektur und Teamrollen erlauben dies.

Es geht darum, die Quelle des Chaos zu trennen und zu isolieren und das Herzstück eines Projekts und eines Teams unberührt zu lassen.

1voto

Thomas Owens Punkte 110966

Vielleicht können Sie anstelle von agilen Ansätzen die Dinge mit anderen iterative und inkrementelle Ansätze . Anstelle von Iterationen, die in Wochen gemessen werden, wären längere Iterationen (vielleicht in Monaten gemessen) besser, wenn Sie immer wieder Personen aus dem Team hinzufügen und entfernen.

Das heißt aber nicht, dass Sie nicht trotzdem einige agile Techniken anwenden können. Ich würde Ihre Backlogs und Burn-Down-Diagramme weiterhin beibehalten, mit der Erkenntnis, dass Sie statt alle 2 Wochen alle 6 Wochen (~2 Monate) eine neue Version veröffentlichen werden. Wenn Sie neue Entwickler haben, die sich mit erfahreneren Entwicklern zusammentun, verwenden Sie Pair Programming, weisen Sie den neuen Entwicklern Fehlerbehebungen zu oder beauftragen Sie die neuen Entwickler mit der Wartung von Unit-Tests, damit sie die Code-Basis kennenlernen.

1voto

DanSingerman Punkte 35071

Die Geschwindigkeit ist nur eine Schätzung.

Naiv betrachtet, wenn man eine bestimmte Geschwindigkeit hat v mit einem Team von 4 Entwicklern, dann planen Sie Ihre Iteration mit einer Geschwindigkeit von (v/4)*number_of_developers

Sie können diesen Wert verfälschen, wenn die Mitglieder, die Sie verlieren, besonders stark oder schwächer als der Durchschnitt sind.

Das ist im Grunde das, was PivotalTracker mit seiner Mannschaftsstärke-Metrik tut.

1voto

John Clifford Punkte 271

Sie haben also ein Projekt mit einer sich ständig ändernden Teamgröße und Ihr Chef möchte, dass Sie ihm eine genaue Schätzung über die Dauer des Projekts geben? Das können Sie tun, solange Sie den Unterschied zwischen genau und präzise nicht aus den Augen verlieren. Ihre Genauigkeit hängt weitgehend von der Anzahl der Elemente und der Granularität (Untergliederung) der einzelnen Elemente ab. Je mehr Elemente Sie haben, desto mehr wirkt das Gesetz der großen Zahlen für Sie, das Über- und Unterschätzungen ausgleicht.

Ihre Genauigkeit ist eine Funktion des Vertrauens. Beachten Sie, dass Schätzungen keine Ein-Punkt-Werte sind, sondern eine Spanne mit Zahlen und einem prozentualen Vertrauensbereich. Eine korrekte Schätzung wäre zum Beispiel nicht "2 Wochen", sondern "mit 50%iger Sicherheit 2 Wochen, mit 80%iger Sicherheit 4 Wochen".

Wenn ich die Person wäre, die mit der wenig beneidenswerten Aufgabe betraut ist, eine Schätzung bis zur Fertigstellung für ein Projekt abzugeben, das so willkürlich verwaltet wird wie im ursprünglichen Beitrag, würde ich versuchen, eine Spanne auf der Grundlage der Mindestanzahl der zugewiesenen Personen zu ermitteln (z.B. "48 bis 66 Wochen bei 2 Entwicklern [50 % bis 80 % zuversichtlich]") und eine Spanne in Verbindung mit der durchschnittlichen Anzahl der zugewiesenen Personen (z.B., "25 bis 45 Wochen mit 5 Entwicklern [50 % bis 80 % zuversichtlich]"), und verwenden Sie die niedrige Zahl der durchschnittlichen Zahl zusammen mit der hohen Zahl der Mindestzahl (z. B. "25 bis 66 Wochen mit 2 bis 5 Entwicklern [50 % bis 80 % zuversichtlich]"), und selbst dann würde ich einen Haftungsausschluss einfügen ("plus 10 % für die verlorene Zeit aufgrund von Kontextwechsel").

Besser noch, ich würde genau erklären, warum dieses Arrangement, um es höflich auszudrücken, suboptimal war und warum Multitasking ein Hauptwegweiser auf dem Weg zur Projekthölle ist.

Wie jemand anderes vorgeschlagen hat, könnte es eine gute Strategie sein, den Arbeitsablauf von iterationsbasiert auf flussbasiert (Kanban) umzustellen. Bei Kanban werden Änderungen der Projektprioritäten durch Änderung der Priorität der Elemente im Rückstand behandelt; sobald ein Element vom Team in Angriff genommen wurde, ist es im Allgemeinen fertig (es fließt den ganzen Weg durch den Arbeitsablauf, die Beteiligten dürfen das Team nicht stören, indem sie an der laufenden Arbeit herumschrauben). Ich habe Kanban für nachhaltige technische Projekte verwendet und es hat sehr gut funktioniert. Zur Frage, wie es bei Schätzungen helfen würde: Der Schlüssel zu einem kontinuierlichen Fluss liegt darin, dass jedes Arbeitsobjekt ungefähr die gleiche Größe hat (1x, 2x, 3x, nicht 10x, 20x, 100x). Sie sollten die Bewegung der Elemente durch den Arbeitsablauf verfolgen, indem Sie die Daten der Prozesszustandsänderungen verfolgen, z. B. Warteschlange 1/15, Entwurf 1/22, Entwicklung 1/24, Test 2/4, Integration 2/7 usw., und dann regelmäßig ein kumulatives Flussdiagramm erstellen, um die Dauer der Zustandsänderungen im Laufe der Zeit zu bewerten. Die Berechnung, wie lange das Projekt dauern sollte, wenn man die Größe der einzelnen Elemente und die Zeit durch den Workflow für die Elemente kennt, ist eine triviale Rechenaufgabe, die dem Leser überlassen bleibt. (Die interessantere Frage ist, wie man Einschränkungen erkennt ... und wie man sie dann beseitigen kann. Tipp: Achten Sie auf lange Zeiten in den Zuständen, da sich die Arbeit vor den Beschränkungen stapelt.)

0voto

Joel Martinez Punkte 45129

Lassen Sie die einzelnen Entwickler, die an der Story arbeiten werden, den Aufwand für die Fertigstellung der Story schätzen. Sie können historische Abweichungen in den Schätzungen dieser Entwickler berücksichtigen, aber die Idee ist, dass Sie deren Schätzungen nehmen und dann herausfinden, wie viele Stories Sie in diesem Sprint fertigstellen können.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X