CPM (Critical Path Method)
The Critical Path Method (CPM) computes each task's feasible dates and float by sweeping the dependency network once forward and once backward.
How it computes
Two passes. The forward pass walks from the start, deriving each task's earliest start (ES) and earliest finish (EF). The backward pass walks down from the finish date, deriving the latest start (LS) and latest finish (LF). The difference LS-ES is the float, and the chain of tasks with no float to spare is the critical path. If A (5d) has ES on day 1, its EF is day 5; its FS successor B (3d) gets ES day 6, EF day 8 — and so on. The axis is usually working days: weekends and holidays drop out through the calendar, so a five-day task starting Friday runs into the next week.
Why it matters
It is the difference between dates written by hand and dates derived from logic. Change one duration or add one dependency, and CPM recomputes every date immediately. A schedule whose dozens of dates are reconciled by hand collapses at the first change. The by-product is as valuable as the computation itself: float tells you, in numbers, which tasks can run late and where people can be pulled from.
Common misconceptions
Believing CPM knows about resources is the misconception. CPM computes purely from logic and durations — a person assigned to two tasks at once is happily computed as working both in parallel. Resolving resource conflicts (resource leveling) is a separate step after CPM. CPM's answer is "the earliest schedule the logic allows," not "an executable schedule" by itself. Few people run the passes by hand anymore, but a PM who can sanity-check the tool's dates still has a real edge over one who cannot.
wbsgantt recomputes CPM automatically in the background whenever dependencies, durations, or calendars change.