A project is a web of tasks, some waiting on others. What sets the finish date isn’t the total work — it’s the single LONGEST chain of dependencies you can’t parallelize. Speed up a task off that chain and nothing changes; speed up one ON it and the whole project moves. Slide to trace the chain that rules the clock.
Model the project as a directed acyclic graph of tasks with durations; the earliest finish of each task is its own duration plus the latest finish of everything it depends on. The project’s minimum completion time is the maximum over all tasks — the CRITICAL PATH, the longest dependency chain. Tasks off it have SLACK (they can slip without delaying the project). A fail-loud self-check throws unless the computed project time equals the critical-path length (here A→C→D→E = 10) — the schedule’s true bottleneck.
Deterministic durations here; real scheduling (PERT) treats them as distributions and the critical path can shift as estimates change. The longest-path computation and the slack are exact for the given graph.