[SL] Warteschlangen bändigen - Engpässe erkennen per Cumulative Flow Diagram

Sehen wir uns ein etwas “reichhaltigeres” Cumulative Flow Diagram an.

Cumulative Flow Diagram für mehrere Phasen, z.B. fertiggestellte Features.

Dieses zeigt ein Software-Projekt, bei dem jedes Feature die Phasen “Spezifiziert”, “In Bearbeitung”, “Im Test”, und schließlich “Fertig” durchläuft. Zur Erinnerung, wir zählen die Features in jeder Phase und stapeln diese Anzahlen übereinander.

Die Projektgröße entspricht der obersten Grenze im Diagramm, also der Gesamtzahl Features über alle Phasen. Die Projektgröße wächst zunächst, bis etwa Anfang Februar, weil noch viele neue Anforderungen “entdeckt” werden. Danach steigt die Projektgröße nur noch moderat, wenn gelegentlich ein neues Feature hinzukommt.

Die Streifen für die eigentlichen Arbeitsphasen (“In Bearbeitung” und “Im Test”) bleiben ungefähr auf der gleichen Breite, zu jedem Zeitpunkt sind z.B. 3-5 Features in Bearbeitung. Das Cumulative Flow Diagram zeigt also einen gleichmäßigen Abarbeitungs-Fluß durch die Phasen.

Wir können nun den Anstieg des untersten Streifens (“Fertig”) nehmen, um die Abarbeitungsgeschwindigkeit zu bestimmen. Es wurden 21 Features in 3 Monaten abgearbeitet, also 7 Features pro Monat.

Wenn ich eine Prognose abgeben sollte, wie lange dieses Projekt noch dauern wird, würde ich sagen: es wird noch einen Monat dauern: Wir haben bis jetzt 21 von 28 Features abgearbeitet, für die übrigen 7 brauchen wir noch ein Monat.

Sehen wir uns nun einen Problemfall an.

Cumulative Flow Diagram, keine Test-Kapazität im Februar.

Hier sieht man, dass für den ganzen Februar die Abarbeitung stagniert. Gleichzeitig wird der gelbe Bereich immer höher, d.h. die Warteschlange in der Testphase wird länger. Dort ist also ein Engpass: Features landen in der Testphase, kommen aber nicht heraus. Das könnte z.B. daran liegen, dass der Tester Urlaub hatte, oder dass Testkapazitäten zugunsten eines anderen Projekts abgezogen wurden. Ab März geht es wieder “normal” weiter, aber die im Februar aufgelaufene Warteschlange wird nicht reduziert.

Eine Prognose für die Fertigstellung könnte nun so aussehen: Im März wurden 7 Features fertiggestellt, wir legen also eine Abarbeitungsgeschwindigkeit von 7 pro Monat zugrunde. Wir haben derzeit 14 von 30 Features fertig. Für die restlichen Features brauchen wir also noch etwas mehr als 2 Monate. Das ist ein Monat länger als im obigen Diagramm. Die Verzögerung in der Testphase im Februar schlägt also voll auf die Fertigstellung durch, wenn wir nicht reagieren.

Engpässe im Software-Entwicklungsprozess sind nicht immer so einfach zu erkennen wie im Beispiel “Tester hat Urlaub”. Da hilft ein Cumulative Flow Diagram, den Prozess im Auge zu behalten und rechtzeitig gegenzusteuern.

Matthias Berth

Alle Emails