Timeboxing bedeutet, dass Iterationen nicht länger werden
Sie fragen, wie Iterationen verkürzt werden sollen. Dies bedeutet jedoch, dass sie mehr Zeit in Anspruch nehmen, was bedeutet, dass Sie kein Zeitboxen anwenden. In jeder Iteration, in der die Komplexität mehr wiegt (oder Sie andere unvorhergesehene Rückschläge haben), ändern Sie die Iterationslänge nicht. Sie entfernen stattdessen die inkrementelle Addition, die Sie zu Beginn der Iteration geplant haben. Einige iterative Methoden empfehlen, diese Bewertung in der Mitte einer Iteration durchzuführen (bevor es zu spät ist). Lesen Sie mehr darüber, was OpenUP vorschlägt :
Verwalten von Zielen
Wenn ein Team erheblich in Verzug gerät oder kritische Probleme auftreten, die das Team daran hindern, die Iterationsziele zu erreichen, kann es erforderlich sein, die Arbeit zu reduzieren, um sicherzustellen, dass das Team bis zum Ende der Iteration ein nützliches Produktinkrement liefert und gleichzeitig maximiert Stakeholder-Wert. Arbeiten Sie mit dem Team und den Stakeholdern zusammen, um den Iterationsplan zu überarbeiten und bei Bedarf die Betonung weniger kritischer Aufgaben zu verringern, indem Sie sie auf eine nachfolgende Iteration verschieben. In seltenen Fällen kann das Team in Betracht ziehen, die Iteration zu beenden oder die Iteration in ein neues Ziel umzuformulieren, wenn die Iterationsziele immer noch nicht erreicht werden können.
Wenn Sie sich das erste Diagramm ansehen, sehen Sie, dass der Mehrwert bei späteren Iterationen geringer ist. Dies bedeutet, dass Iterationen immer noch so lange dauern wie zuvor, aber möglicherweise gibt es (relativ) weniger neue Funktionen in jeder Iteration.
Wie Sie sagen, besteht die Stärke von iterative darin, das Risiko zu verringern, indem Sie häufig Feedback erhalten. Es hört sich so an, als würden Sie über die Komplexität von Projekten sprechen, die Sie bei späteren Iterationen verfolgen? Ich stimme nicht zu, dass dies eine Schwäche der Iteration ist. Es ist eine Schwäche der schlecht gemanagten Komplexität.
Theoretisch stellen Sie die größten Risiken des Projekts in den Vordergrund. Dies bedeutet, dass Sie ein sehr instabiles Projekt haben, aber wenn Sie die großen Risiken bewältigen, soll es sich stabilisieren. Komplexität ist natürlich eines der Risiken.
Skriptsprachen und automatisierte Prozesse tragen dazu bei, das Risiko von Komplexität zu verringern, die als "zufällige" Komplexität bezeichnet werden kann (und in einer anderen Antwort erläutert wird). Hoch iterative und dennoch komplexe Projekte (Chromium ist ein gutes Beispiel, auch wenn es kein Spiel ist) verfügen über eine große Infrastruktur, um die Komplexität zu verwalten. Unter https://www.chromium.org/developers finden Sie viele Beispiele für Dinge wie Codierungshinweise für den BuildBot .
Was diese Abbildung nicht zeigt, ist die Projektstabilität, die wahrscheinlich ungefähr so aussieht:
Bis die technischen Risiken gut verstanden sind, haben Sie es mit einfachen Prototypen zu tun