Projektplanung · Verständlich erklärt

Der kritische Pfad verständlich erklärt

Bei einem Vorhaben mit vielen Aufgaben bestimmt nur die längste Kette voneinander abhängiger Aufgaben, wann es fertig ist. Alle anderen Aufgaben haben Puffer. Sind die Dauern aber nur geschätzt, kann eine andere Kette die längste werden.

Zuletzt aktualisiert:

Teil 1 · Für Einsteiger

Ein Wort unbekannt? Das Begriffsverzeichnis erklärt es in wenigen Sätzen.

Zwei Ketten, ein Eröffnungstermin

Bild: Eine neue Lagerhalle soll eröffnen. Zwei Arbeiten laufen nebeneinander. Das eine Team baut die Regale auf, danach wird die Ware eingelagert. Das andere richtet die Lagersoftware ein, danach wird das Personal geschult. Der Regalaufbau dauert lange, das Einlagern danach kürzer; Einrichtung und Schulung dauern beide nur kurz. Eröffnet wird erst, wenn beide Ketten fertig sind. Innerhalb einer Kette geht es der Reihe nach: Eingelagert wird erst, wenn die Regale stehen.

Hier ist die Regalkette die längere. Sie bestimmt allein den Eröffnungstermin: Verzögert sich dort eine Aufgabe um einen Tag, rückt die Eröffnung um einen Tag nach hinten. Fachleute nennen diese längste Kette den kritischen Pfad; eine Aufgabe darauf heißt kritisch, weil jede Verspätung das Projektende verschiebt.

Die Softwarekette hat dagegen Puffer, also Zeit, um die sie sich verspäten darf, ohne dass die Eröffnung wackelt. Erst eine größere Verspätung als dieser Puffer schiebt auch hier den Termin.

Wie man die kritische Kette findet

Man rechnet zuerst vorwärts: Die Regalkette ist nach Aufbau und Einlagern fertig, die Softwarekette nach Einrichtung und Schulung, und zwar früher. Die Eröffnung kann frühestens stattfinden, wenn die spätere Kette fertig ist; das ist die Projektdauer. Rechnet man dann vom Eröffnungstermin rückwärts, sieht man, wie viel Zeit die Softwarekette übrig hat: Das ist ihr Puffer.

Wenn die Dauern nur geschätzt sind

In der Praxis steht keine Dauer vorher fest. Bild: Ein Regalaufbau kann sich um Tage verzögern, wenn Teile fehlen, aber nicht um Tage früher fertig sein. Die Demo, ein Programm zum Ausprobieren im Browser, bietet dafür schiefe Einstellungen: Dort können Verspätungen größer ausfallen als Verfrühungen, bei der symmetrischen Einstellung nicht. Sie würfelt die Dauern in vielen Würfelrunden immer neu und rechnet jedes Mal das Projektende aus.

Nun laufen beide Ketten bei der Eröffnung zusammen, und dort zählt die langsamere. Bild: Zwei Läufer müssen beide im Ziel sein, bevor das Fest beginnt. Streuen ihre Zeiten, kommt der Spätere von beiden im Schnitt später an als jeder einzelne im Schnitt. Ohne Streuung wäre das nicht so.

Daraus folgen zwei Dinge. Erstens ist der Plan, der jeder Aufgabe ihre durchschnittliche Dauer gibt, zu knapp: Das Projekt dauert im Schnitt etwas länger als dieser Plan, in der Demo allerdings nur wenig. Bei schiefen Dauern hält der Plan in der Demo trotzdem seltener, als eine Münze auf Kopf fällt; wie oft genau, steht weiter unten auf dieser Seite. Woher das im Einzelnen kommt, trennt die Demo nicht, denn das Zusammenlaufen und die Form der Dauern wirken zusammen. Zweitens wandert der kritische Pfad, er läuft also von Würfelrunde zu Würfelrunde über andere Aufgaben. In der Demo wird eine Aufgabe mit Puffer meist nur in einzelnen Würfelrunden kritisch und selten in vielen, kann das Ende aber in diesen Runden bestimmen.

Was hilft?

Wer nur die kritische Kette im Plan beobachtet, übersieht die zweite. Die Demo zählt deshalb in den Würfelrunden, wie oft jede Aufgabe das Projektende bestimmt.

Bild: Jede der vier Aufgaben bekommt einen eigenen Sicherheitszuschlag. Es ist unwahrscheinlich, dass alle vier gleichzeitig sehr lange dauern, deshalb reicht am Ende eine kleinere gemeinsame Reserve, also einige Tage zwischen der letzten Aufgabe und dem Termin. In der Demo kommt bei stark schief streuenden Dauern mehr Reserve zusammen, wenn jede Aufgabe für sich auf dieselbe Sicherheit geplant wird wie das ganze Projekt; die Zahl steht weiter unten auf dieser Seite.

Zum Mitnehmen: Man kann die Planung fragen, ob der Termin aus den durchschnittlichen Dauern der Aufgaben entsteht oder eine gemeinsame Reserve am Ende enthält. Ein Hinweis im eigenen Betrieb: Jede Gruppe meldet ihre Arbeit als machbar, und der Termin wackelt trotzdem. Das kann passieren, wenn mehrere Ketten an einem Punkt zusammenlaufen und die Dauern streuen.

Wie ernst ist das Modell zu nehmen?

Die Pläne der Demo sind zufällig erzeugt, die Dauern streuen unabhängig voneinander, und knappe Teams oder Maschinen kommen nicht vor; hängen Dauern zusammen, etwa weil dasselbe Team mehrere Aufgaben baut, streut ein Projekt stärker, als die Demo zeigt. Sie zeigt, wie die Wirkung entsteht, nicht wie viele Aufgaben in einem echten Projekt kritisch sind, und gilt, solange diese Annahmen passen.

Hinweis: Alle Demos rechnen mit synthetischen oder frei verfügbaren Beispieldaten und laufen auf einem externen Anbieter (Datenschutz). Bitte geben Sie darin keine vertraulichen oder personenbezogenen Daten ein. Die Ergebnisse gelten für die jeweilige Demo-Instanz und lassen sich nicht ungeprüft auf reale Fälle übertragen; für darauf gestützte Entscheidungen übernehme ich keine Gewähr.

Teil 2 · Für Fachleute

Modell und Annahmen

Dieser Teil ist eigenständig lesbar. Er fasst die formale Beschreibung der Demo zusammen; die vollständige Fassung steht im Expander „📐 Mathematische Formulierung“ der Demo.

  • Plan: Aufgaben mit zufälligen Nummern und Beziehungen „A vor B“, ohne Widersprüche, also ein kreisfreier Graph \(G = (V, E)\). Jede Aufgabe hat eine wahrscheinlichste Dauer, ganze Tage von 1 bis 10, fest aus dem Zufalls-Seed.
  • Unsicherheit: Dreiecksverteilung mit Gipfel bei der wahrscheinlichsten Dauer und den Grenzen als Faktoren davon: symmetrisch 0,8 / 1 / 1,2, rechtsschief 0,7 / 1 / 1,8, stark rechtsschief 0,5 / 1 / 3. Die Dauern sind unabhängig. Der Zufall kommt nur aus random.Random(seed) mit random() und triangular().
  • Rechnung: Vorwärts- und Rückwärtslauf (CPM) liefern frühesten und spätesten Start, Gesamtpuffer (spätester minus frühester Start) und freien Puffer; kritisch heißt Gesamtpuffer null. Bei der Monte-Carlo-Rechnung werden alle Dauern gewürfelt, dann folgt der Vorwärtslauf. Der Kritikalitätsindex einer Aufgabe zählt in den ersten Läufen, wie oft sie Gesamtpuffer null hat.
  • Pläne zum Vergleich: der Plan der wahrscheinlichsten Dauern, der Plan der Erwartungswerte (Dreieck), der Plan mit der PERT-Dreipunktformel und ein Plan, in dem jede Aufgabe ihr Quantil dauert.

Die Formeln

Vorwärtslauf mit \(ES_v = 0\) für Aufgaben ohne Vorgänger: Eine Aufgabe startet, sobald alle Vorgänger fertig sind, und die Projektdauer \(T\) ist das späteste Ende.

\[ES_v = \max_{(u, v) \in E} EF_u, \qquad EF_v = ES_v + d_v, \qquad T = \max_{v \in V} EF_v.\]

Rückwärtslauf mit \(LF_v = T\) für Aufgaben ohne Nachfolger, und der Gesamtpuffer als Differenz von spätestem und frühestem Start:

\[LF_v = \min_{(v, w) \in E} LS_w, \qquad LS_v = LF_v - d_v, \qquad TF_v = LS_v - ES_v.\]

Der Gesamtpuffer \(TF_v = T - \ell_v\) ist die Differenz zur längsten Kette durch die Aufgabe, wobei \(\ell_v\) die Länge des längsten Weges durch \(v\) ist. Daraus folgt der Verspätungssatz: Eine Verspätung um \(t\) Tage verschiebt das Projektende um

\[\Delta T = \max\{0,\; t - TF_v\}.\]

Bei zufälligen Dauern \(D_v\) ist die Projektdauer \(T(D)\) das Maximum über alle Pfade \(P\) der Summe der Dauern. Weil das Maximum konvex ist, gilt die Jensen-Ungleichung: Der Erwartungswert der Projektdauer liegt über der Projektdauer des Plans der Erwartungswerte. Das ist der Merge-Effekt, denn wo Pfade zusammenlaufen, zählt der spätere.

\[\mathbb{E}[T(D)] \;=\; \mathbb{E}\Big[\max_{P} \sum_{v \in P} D_v\Big] \;\ge\; \max_{P} \sum_{v \in P} \mathbb{E}[D_v] \;=\; T(\mathbb{E}[D]).\]

Für eine Dreiecksverteilung mit unterer Grenze \(a\), Gipfel \(m\) und oberer Grenze \(b\) ist der Erwartungswert das Mittel der drei Werte. Die PERT-Dreipunktformel ist eine Beta-Näherung und nicht der Erwartungswert der Dreiecksverteilung:

\[\mathbb{E}[D] = \frac{a + m + b}{3}.\]

\[\hat{\mu} = \frac{a + 4m + b}{6}.\]

Befunde

Alle Zahlen stammen aus den Messungen der Demo (jede steht in deren Tests, tests/test_claims.py). Es sind Mediane über feste Pläne, nie ein einzelner Zufalls-Seed, auf synthetischen Plänen mit wahrscheinlichsten Dauern von 1 bis 10 Tagen. Die jeweilige Anordnung steht in der Zeile.

FrageBefund
Wie viele Aufgaben sind kritisch?60 Aufgaben, 30 Pläne je Dichte: Bei Ausgangsgrad 1 / 2 / 3 sind im Median nur 10 / 13,3 / 18,3 % der Aufgaben kritisch, im Median ein kritischer Pfad je Plan (höchstens 4 / 2 / 3 Pfade). Freien Puffer null haben dagegen 43,3 / 51,7 / 55 %: kein freier Puffer heißt nicht kritisch. Gesamtpuffer im Median 16 / 16,75 / 11,5 Tage.
Wird der Plan gehalten?40 Aufgaben, Ausgangsgrad 2, 15 Pläne mit je 1 000 Läufen; Dauern symmetrisch / rechtsschief / stark rechtsschief. Der Plan der Erwartungswerte wird in 50 / 45 / 34 % der Läufe eingehalten, der Plan der wahrscheinlichsten Dauern in 50 / 1 / 0 %, der Plan mit PERT-Formel in 50 / 13 / 3 %.
Wie groß ist die Merge-Verzerrung?Gleiche Anordnung wie in der Zeile davor: Der Erwartungswert der Projektdauer liegt im Median 0,1 / 0,9 / 5,2 % über dem Plan der Erwartungswerte (im ungünstigsten Plan bis 1,6 / 5,9 / 13,5 %).
Hängt sie an Dichte und Größe?Stark rechtsschiefe Dauern, 15 Pläne je Fall. Mit der Dichte sinkt sie: 40 Aufgaben, Ausgangsgrad 1 / 2 / 3 / 4: 8,8 / 4,7 / 4,7 / 3,8 %. Mit der Größe bleibt sie ungefähr gleich (andere feste Pläne und Läufe als in der Zeile davor, daher 4,7 statt 5,2 % bei 40 Aufgaben und Ausgangsgrad 2): Ausgangsgrad 2, 20 / 40 / 80 Aufgaben: 4,9 / 4,7 / 5,5 %. Der Plan der Erwartungswerte wird in allen Fällen nur in 29 bis 40 % der Läufe gehalten.
Wandert der kritische Pfad?40 Aufgaben, 15 Pläne, 400 Läufe, rechtsschiefe Dauern: Von 468 Aufgaben mit Puffer größer null sind 114 (24 %) in einzelnen Läufen kritisch, 41 (9 %) in mindestens 10 % der Läufe. Von 132 deterministisch kritischen Aufgaben sind 12 in weniger als der Hälfte der Läufe kritisch.
Puffer je Aufgabe oder Projektpuffer?40 Aufgaben, 15 Pläne, stark rechtsschiefe Dauern: Jede Aufgabe mit ihrem 80 %-Quantil geplant ergibt im Median das 1,15-fache des echten Projekt-80 %-Quantils (1,10 bis 1,20). Der nötige Projektpuffer beträgt 16,2 % über dem Plan der Erwartungswerte.
Wie gut ist die PERT-Dreipunktformel?Gegen den Erwartungswert der Dreiecksverteilung, als Vielfaches der wahrscheinlichsten Dauer: symmetrisch 1 gegen 1 (0 %), rechtsschief 1,083 gegen 1,167 (−7,1 %), stark rechtsschief 1,25 gegen 1,5 (−16,7 %). Das gilt schon für eine einzelne Aufgabe.
Ist die Rechnung korrekt?Die Projektdauer ist gleich dem längsten Weg nach Aufzählung aller Pfade und nach networkx auf 160 festen Plänen und gleich der Lösung eines linearen Programms (scipy, 60 Pläne). Der Gesamtpuffer ist gleich Projektdauer minus längster Weg durch die Aufgabe (120 Pläne); der Verspätungssatz ist auf 100 Plänen geprüft.

Die Merge-Verzerrung ist in diesen Messungen klein bis mäßig. Bei symmetrischen Dauern ist der Plan der Erwartungswerte so oft zu halten wie zu verfehlen (die Linie bei 50 % ist die Münze); mit zunehmender Schiefe der Dauern sinkt der Anteil der Läufe, in denen er hält, auf 45 und 34 %. Wie viel davon aus dem Zusammenlaufen der Pfade und wie viel aus der Schiefe der Dauern selbst stammt, trennt die Demo nicht.

Grenzen

  • Unabhängige Dauern: Korrelierte Dauern (gleiches Team, gleiche Lieferung) streuen stärker; die Demo würfelt jede Aufgabe für sich.
  • Dreiecksverteilung mit drei festen Formen: Echte Dauern haben andere Formen; die Zahlen gelten für diese Beispiele.
  • Keine Ressourcen, keine Zeitabstände, kein Beschleunigen: Der kritische Pfad ist hier nur ein Pfad der Abhängigkeiten.
  • Synthetische Pläne mit 1 bis 10 Tagen je Aufgabe; wie viele Aufgaben in echten Projekten kritisch sind, zeigt die Demo nicht.
  • Größe der Verzerrung: im Median je nach Anordnung von 0,1 bis 8,8 %, bei einzelnen Plänen über 13 %. Die Demo behauptet nicht, dass PERT in der Praxis um ein bestimmtes Maß zu optimistisch ist; sie misst nur diesen Effekt unter diesen Annahmen.
  • Umfang: bis 80 Aufgaben und 5 000 Läufe.

Quellen

  • Kelley, J. E. Jr., Walker, M. R. (1959): Critical-path planning and scheduling. Proceedings of the Eastern Joint Computer Conference.
  • Malcolm, D. G., Roseboom, J. H., Clark, C. E., Fazar, W. (1959): Application of a technique for research and development program evaluation. Operations Research 7(5), 646–669.
  • MacCrimmon, K. R., Ryavec, C. A. (1964): An analytical study of the PERT assumptions. Operations Research 12(1), 16–37.
  • Quelltext, Messreihen und Tests der Demo: github.com/sebastian-hanisch/kritischer-pfad-demo.

Die genannten Arbeiten wurden für diese Seite nicht nachgeschlagen; die Literaturhinweise stammen aus dem Expander „Mathematische Formulierung“ der Demo. Die Jensen-Ungleichung für das Maximum zufälliger Größen ist Standardwissen und steht dort ebenfalls; die Messgrößen der Befunde sind eigene Messungen der Demo.