Warteschlangen sind versteckte laufende Arbeit – und sie sind überall in der Softwareentwicklung.
Jede Warteschlange ist laufende Arbeit, die nicht vorankommt. Warteschlangen sind Orte, an denen Arbeit wartet.
Offensichtliche Warteschlangen:
Weniger offensichtliche Warteschlangen:
Warteschlangen sind tückisch. Sie wirken organisiert – schließlich wird die Arbeit erfasst und priorisiert. Aber sie sind laufende Arbeit. Jedes Element in einer Warteschlange erhöht die Durchlaufzeit. Jede Warteschlange ist ein Ort, an dem Arbeit wartet, statt zu fließen.
Das Backlog-Problem
Ein großes Backlog vermittelt das Gefühl, organisiert zu sein. In Wirklichkeit ist es Bestand. Die meisten Elemente in einem großen Backlog werden nie umgesetzt, veralten, bevor sie erreicht werden, oder erfordern erhebliche Neuerfassung. Kleine Backlogs sind kein Problem – sie sind ein Feature.
Warteschlangen wachsen, wenn die Ankunftsrate die Abgangsrate übersteigt.
Wenn Arbeit mit einer Rate von 10 Elementen pro Woche ankommt und die Phase 8 Elemente pro Woche abschließen kann, wächst die Warteschlange wöchentlich um 2 Elemente. Nach 10 Wochen gibt es eine Warteschlange von 20 Elementen.
Nahe der Kapazitätsgrenze wachsen Warteschlangen exponentiell. Bei 80 % Auslastung sind Warteschlangen beherrschbar. Bei 90 % wachsen sie schneller. Bei 95 % explodieren sie. Das ist Warteschlangentheorie – mathematisch bewiesen.
Die Falle: Manager sehen eine wachsende Warteschlange und denken „wir müssen schneller arbeiten". Aber oft ist das Problem nicht die Geschwindigkeit – es ist die Überlastung. Die Ankunftsrate übersteigt die Kapazität. Härter zu arbeiten behebt die Mathematik nicht.
Lösungen:
Die letzte Option – WIP begrenzen – ist oft die praktischste. Sie erfordert keine Einstellungen oder größeren Änderungen. Sie erfordert nur die Disziplin, nicht mehr zu beginnen, als man abschließen kann.
Ein Product Backlog hat 800 Elemente. Das Team schließt 10 Elemente pro Sprint ab. Bei der aktuellen Rate würde das Abarbeiten des Backlogs 80 Sprints (über 3 Jahre) dauern. Die meisten Elemente sind veraltet. Das Backlog ist kein Plan – es ist ein Friedhof guter Absichten.
Ein Team begrenzt sein Backlog auf 2 Sprints Arbeit (~20 Elemente). Neue Ideen werden erfasst, aber erst hinzugefügt, wenn Platz frei wird. Elemente, die zu lange liegen, werden überprüft und oft gelöscht. Das Backlog bleibt aktuell und aussagekräftig.
Nicht alle Arbeit ist gleich. Einige Elemente sind dringend. Einige sind Standard. Einige sind zeitfixiert (müssen zu einem bestimmten Datum ausgeliefert werden). Warteschlangen effektiv zu verwalten bedeutet, verschiedene Typen unterschiedlich zu behandeln.
Service-Klassen definieren Kategorien von Arbeit mit unterschiedlicher Behandlung:
Expedite: Alles stehen lassen. Dies muss sofort fließen. Sehr selten (1–2 % der Arbeit). Oft für Produktionsnotfälle.
Festes Datum: Hat eine Deadline. Benötigt reservierte Kapazität oder besonderes Tracking.
Standard: Normale Arbeit. Fließt im normalen Tempo durch.
Intangible: Verbesserungsarbeit. Technische Schulden. Geringe Dringlichkeit, aber wichtig. Oft als Prozentsatz der Kapazität eingeplant.
Der Fehler ist, alles als Expedite zu behandeln. Wenn alles dringend ist, ist nichts dringend. Expedite-Spuren funktionieren nur, wenn sie selten sind.
Service-Klassen helfen bei der Verwaltung von Warteschlangen, indem sie:
Der Expedite-Test
Wenn mehr als 5 % Ihrer Arbeit „Expedite" ist, haben Sie keine Expedite-Spur – Sie haben ein chaotisches System. Entweder sind die Dinge nicht wirklich Expedite, oder etwas ist strukturell vorgelagert kaputt.