[SL] Priorisieren mit FIFO und LIFO

Wir sind hier schon mehrfach auf das Priorisieren nach Verzögerungskosten eingegangen. Heute will ich eine einfache Situation besprechen: wir haben mehrere Aufgaben zur Auswahl, die alle die gleiche Zeit zur Abarbeitung benötigen. Was das für Aufgaben sind, spielt für unsere Diskussion keine Rolle, die Prinzipien gelten für Tickets, Supportanfragen, oder auch ganze Projekte.

Der allereinfachste Fall ist, wenn die Aufgaben auch noch gleiche Verzögerungskosten haben. Dann arbeiten wir sie in der Reihenfolge ab, wie sie eingetroffen sind. Das heißt dann FIFO (first in first out), oder first come first served. Dieses Prinzip sehen wir an jeder Supermarktkasse: die Leute stellen sich an und werden der Reihe nach bedient. (Im Supermarkt sind die Abarbeitungszeiten zwar nicht ganz gleich, bleiben aber insgesamt im Rahmen.) Das FIFO-Prinzip ist so verbreitet, dass die Briten eine Redensart dazu haben: “It’s better to queue”.

Wenn es um Priorisierung von Aufgaben in der Softwareentwicklung geht, sieht man FIFO eher selten, auch wenn in der Software selbst die dazu gehörende Datenstruktur “Queue” (Warteschlange) natürlich gern verwendet wird.

Manchmal kann man hingegen spontan entstehendes LIFO beobachten - last in first out. Das ist gewissermaßen das Spiegelbild von FIFO, die zugehörige Datenstruktur ist der “Stack” (Stapel). Wer schon mal im telefonischen Kunden-Support gearbeitet hat, kennt das wahrscheinlich: Eine neue Anforderung (die aktuellste Krise) kommt herein. Das gerade laufende Thema wird daher unterbrochen und geht zurück auf den Aufgaben-Stapel. Wenn man Pech hat, kommt gleich noch etwas anderes dazwischen, so dass wieder die aktuelle Aufgabe zurückgestellt werden muss. Sobald dann eine Aufgabe fertig ist, wird die nächste oben vom Stapel genommen.

Diese Priorisierung nach dem LIFO-Prinzip ist so, als würden sich die Leute nicht hinten, sondern immer vorne in einer Warteschlange anstellen. Das ist natürlich ungünstig, weil die älteren Jobs benachteiligt werden, u.U. werden sie sogar nie fertig. Wenn nun eine Aufgabe lange genug vernachlässigt wurde, gibt’s einen erbosten Anruf, der sie wieder für kurze Zeit ganz nach oben auf den Stapel hievt.

Die vernünftige Ansage “Stellen Sie sich bitte hinten an!” (FIFO) führt zur Gleichbehandlung der Anforderer, aber auch häufig zu Frustrationen. Der einfachste Ausweg aus diesem Dilemma: Warteschlangen und damit Durchlaufzeiten kurz halten.

Matthias Berth

Alle Emails