Haben Sie schon einmal das Little'sche Gesetz benutzt, um zu erklären, dass niedrigere WiP-Grenzen (Work in Progress) zu kürzeren Zykluszeiten führen? Haben Sie schon einmal versucht, das Little'sche Gesetz in einem agilen Spiel zu veranschaulichen und festgestellt, dass es nicht zutrifft? Dann lesen Sie diesen Blog, um herauszufinden, dass es in agilen Spielen genau richtig ist und wie es wirklich funktioniert.
Vor einiger Zeit habe ich einen Kanban-Workshop gegeben. Teil des Workshops war ein Spiel zum Falten von Papierfliegern, um den Arbeitsfluss zu veranschaulichen. Zur Veranschaulichung des Little'schen Gesetzes ermittelten wir den Durchsatz, die Zykluszeit und die unfertige Arbeit. Zu meiner Überraschung war das Gesetz nicht gültig. Nicht einmal annähernd. In diesem Blog möchte ich Ihnen erklären, warum es doch funktioniert!
Am Ende jeder Runde werden wir die folgenden Metriken sammeln:
Einführung
Es ist allgemein bekannt, dass die durchschnittliche Anzahl der in Bearbeitung befindlichen Artikel proportional zur durchschnittlichen Zykluszeit der abgeschlossenen Artikel ist. Die Proportionalität ist die durchschnittliche Inputrate (oder Durchsatzrate) der Arbeitsposten. Diese Beziehung ist als Little's Law bekannt. Sie wurde von Little in den 1960er Jahren entdeckt und hat viele Anwendungen gefunden. In Kanban-Teams wird diese Beziehung oft verwendet, um qualitativ zu argumentieren, dass es für den Arbeitsfluss günstig ist, nicht zu viel Arbeit parallel zu haben. Zu diesem Zweck werden WiP-Grenzen (Work in Progress) eingeführt. Je kleiner die WiP, desto kleiner ist die durchschnittliche Zykluszeit, was einen besseren Arbeitsfluss bedeutet. Ich war überrascht, dass diese Aussage genau richtig ist und auch unter sehr entspannten Bedingungen gilt.Littlesches Gesetz
In mathematischer Form wird das Gesetz oft wie folgt angegeben: (1) [ bar{N} = lambda bar{W} Hier ( bar{N} ) ist die durchschnittliche Anzahl der zu einem bestimmten Zeitpunkt in Bearbeitung befindlichen Workitems, und ( bar{W} ) ist die durchschnittliche Zykluszeit. ( lambda ) ist die durchschnittliche Inputrate (neue Arbeitsposten pro Zeiteinheit). In stabilen Systemen entspricht dies auch dem durchschnittlichen Durchsatz. In diesem Fall wird das Little'sche Gesetz oft wie folgt (neu) formuliert (2) [ frac{mathrm{Arbeit, in, Fortschritt}}{mathrm{Throughput}} = mathrm{Zykluszeit} ]Bedingungen
In der Praxis betrachtet man das Little'sche Gesetz über einen endlichen Zeitraum, z.B. 6 Monate, 5 Sprints, 3 Runden in einem agilen Spiel. Auch in der Praxis arbeiten die Teams an Backlog-Elementen, die diskrete Elemente sind. Nachdem die Arbeit erledigt ist, ergibt sich daraus ein neues Produktinkrement. Unter den folgenden Bedingungen ist (1) exakt:- Das System wird über einen endlichen Zeitraum hinweg beobachtet,
- Das System ist ein Warteschlangensystem.
Agiles Spiel
Ein häufig verwendetes Spiel, um dem Team die Bedeutung des Flusses zu erklären, ist das Falten von Papierfliegern. Es gibt viele Formen dieses Spiels. Siehe z.B. [Heintz11]. Nehmen wir für diesen Blog ein Team, das Flugzeuge faltet. Der Rückstand ist ein Stapel weißes Papier. 3 Runden des Faltens werden durchgeführt. Flugzeuge, die gefaltet sind und mindestens 2 Meter weit fliegen, gelten als fertig.
Am Ende jeder Runde werden wir die folgenden Metriken sammeln:
- Anzahl der fertiggestellten Flugzeuge
- Anzahl der in Arbeit befindlichen und noch nicht fertiggestellten Flugzeuge.
Berechnung des Little'schen Gesetzes
Die Art und Weise, wie ich die Zahlen für die unfertigen Erzeugnisse, den Durchsatz und die Zykluszeit immer berechnet habe, war- Durchschnittliche Zykluszeit für alle fertiggestellten Flugzeuge,
- den Durchschnittswert des Durchsatzes über alle Runden,
- die laufende Arbeit über alle Runden hinweg zu mitteln.
- Durchschnittliche unfertige Erzeugnisse = (8+6+2)/3 = 16/3,
- Durchschnittlicher Durchsatz = 10 (fertiggestellte Flugzeuge)/3 = 10/3,
- Durchschnittliche Zykluszeit = 22/10 = 11/5
Die Wahrheit
Die Interpretation von unfertiger Arbeit, Durchsatz und Zykluszeit habe ich aus der Arbeit mit kumulativen Flussdiagrammen. Es gibt viele Ressourcen, die diese erklären, siehe z.B. [Vega2011]. Der Schlüssel zur richtigen Interpretation ist die Wahl des Zeitintervalls, für das die Größen ( bar{W} ), ( lambda ) und ( bar{W} ) gemessen werden. Zweitens, die Verwendung der Eingangsrate anstelle des Durchsatzes. Drittens, am Ende des Zeitraums die noch nicht fertig gestellten Artikel einzubeziehen. Und schließlich berücksichtigen Sie bei der Berechnung von ( bar{N} ) alle Artikel, die das System durchlaufen haben. Wenn wir die Ergebnisse für die Teams A und B neu interpretieren, erhalten wir Mannschaft A- Durchschnittliche unfertige Arbeit In Runde 1 wurden 3 Flugzeuge fertiggestellt und 8 unfertig gelassen; insgesamt 11 für unfertige Arbeit (11 Flugzeuge wurden als Arbeit aufgenommen) In Runde 2 hat das Team 2 Flugzeuge fertiggestellt und 6 unfertig gelassen; insgesamt 8 In Runde 3 hat das Team weitere 5 Flugzeuge fertiggestellt und 2 unfertig gelassen; insgesamt 7 Über 3 Runden gemessen ergibt sich ein Durchschnitt von (11+8+7)/3 = 26/3
- Durchschnittliche Inputrate Unter Verwendung der Inputrate: In Runde 1 hat das Team 11 neue Flugzeuge aufgenommen In Runde 2 hat das Team keine weiteren Flugzeuge aufgenommen In Runde 3 wurde ein neues Flugzeug aufgenommen. Eine durchschnittliche Inputrate von (11+0+1)/3 = 4 Flugzeuge pro Runde
- Durchschnittliche Zykluszeit Am Ende der dritten Runde sind noch 2 Flugzeuge in Arbeit; eines wurde in der dritten Runde aufgenommen und hat eine Wartezeit von 1 und eines aus der ersten Runde hat eine Wartezeit von 3 Runden. Das ergibt eine Gesamtwartezeit von 22 + 3 + 1 = 26 Runden. Bei einem Durchschnitt von 12 Flugzeugen ergibt sich eine durchschnittliche Zykluszeit von 26/12 = 13/6 Runden pro Flugzeug.
- Durchschnittliche unfertige Erzeugnisse = (13+14+10)/3 = 37/3 Flugzeuge,
- Durchschnittliche Einsatzrate = (13+2+3)/3 = 6 Flugzeuge pro Runde,
- Durchschnittliche Zykluszeit = (27 (abgeschlossene) + 10 (nicht abgeschlossene))/18 (Flugzeuge) = 37/18 Runden pro Flugzeug
Was ist mit kumulativen Flussdiagrammen?
Da wir nun wissen, wie man die Größen im Little's Law berechnet, kehren wir zu den kumulativen Flussdiagrammen zurück. Warum funktioniert das Little'sche Gesetz in diesem Fall? Bei Teams, die Daten über die Zykluszeit, die unfertige Arbeit und den Durchsatz gesammelt haben, funktioniert das Little'sche Gesetz, wenn es wie im Abschnitt 'Berechnung des Little'schen Gesetzes' erklärt wird, denn:- die Teams werden durch WiP-Limits in der linken Spalte ("To Do") stabil gehalten; dann ist der Durchsatz mehr oder weniger gleich der Eingangsrate,
- das Team eine relativ große Anzahl von Aufgaben erledigt hat. In diesem Fall kann die Wartezeit für nicht erledigte Aufgaben vernachlässigt werden,
- wenn sie über den (großen Teil des) Wertschöpfungsprozesses gemessen werden, können die abgeschlossenen Posten pro Zeitperiode bei der Berechnung der durchschnittlichen unfertigen Leistungen oft vernachlässigt werden.
Zusammenfassung
Das Little'sche Gesetz (1) gilt unter den Bedingungen, dass (a) das betrachtete System ein Warteschlangensystem ist und (b) die Beobachtung oder Messung über ein endliches Zeitintervall erfolgt. Es gilt dann unabhängig von der Stationarität der Wahrscheinlichkeitsverteilungen, der Warteschlangendisziplin und der Leere des Systems zu Beginn und am Ende des Zeitintervalls. Berechnen Sie die Größen ( bar{N} ), ( lambda ) und ( bar{W} ) wie folgt:- Durchschnittliche unfertige Arbeit ( Balken{N} ) Für jedes betrachtete Zeitintervall zählen Sie den Gesamtumfang der Arbeit im System und addieren alle in diesem Zeitintervall abgeschlossenen Posten hinzu.
- Durchschnittliche Zykluszeit ( bar{W} ) Summen Sie die Zykluszeiten für alle abgeschlossenen Artikel und schließen Sie die Wartezeit für nicht abgeschlossene Artikel mit ein und teilen Sie durch die Gesamtzahl der Artikel.
- Durchschnittliche Eingabequote ( lambda ) Addieren Sie die Gesamtzahl der Artikel, die in das System eingegeben wurden, und dividieren Sie durch die Gesamtzahl der Zeitintervalle.
Referenzen
[Little61] Little, J. D. C. 1961. Ein Beweis für die Warteschlangenformel: L = ãW. Oper. Res. 9(3) 383-387. [Heintz11] John Heintz, Juni 2011, Agile Airplane Game, GistLabs, https://gistlabs.com/2011/06/agile-airplane-game/ [Vega11] Vega Information System Services, Inc., September 2011, Grundlagen des Lesens von kumulativen Flussdiagrammen, https://www.vissinc.com/2011/09/29/basics-of-reading-cumulative-flow-diagrams/Verfasst von

Pieter Rijken
Unsere Ideen
Weitere Blogs
Contact
Let’s discuss how we can support your journey.



