Predecessor and successor
In a project schedule, a predecessor is a task that another task depends on, and a successor is the task that depends on it. A task can have several of each; when it has more than one predecessor, the one that allows it to start latest decides its start date.
The pair is always relative to one link: Build can be the successor of Design and the predecessor of Test at the same time. Scheduling tools usually show a task's predecessors in a column, written as row numbers with the link type and any lag, such as 3FS+2.
A task with several predecessors is a merge point. Only the latest of them drives its start; the others finish early and carry float, which is why a delay on a non-driving predecessor can disappear without moving anything.
Worked example
| Task | Duration | Depends on | Scheduled | Total float | After the delay |
|---|---|---|---|---|---|
| 1. Design | 5 days | None | Days 1 to 5 | 0 days | Unchanged |
| 2. Environment setup | 3 days | None | Days 1 to 3 | 2 days | Days 1 to 4 |
| 3. Build | 10 days | 1, 2 | Days 6 to 15 | 0 days | Unchanged |
The delay: Environment setup takes 1 day longer.
Build has two predecessors. Design finishes on day 5 and Environment setup on day 3, so Design drives Build, which starts on day 6. Environment setup has 2 days of float: a delay of 1 day on it leaves Build where it was.
Open this example in the free delay simulator to change the durations, the links or the delay and watch the schedule move.