Project dependency
A project dependency is a link between two tasks that controls when one of them can start or finish, based on the other. The task in control is the predecessor and the task that waits is the successor; the most common type is finish-to-start, where the successor starts once the predecessor finishes.
Dependencies are what turn a task list into a schedule. Without them every task could start on day one; with them, each task starts as early as the tasks it waits on allow, and the finish date of the whole project follows from the chain.
They are also how a delay travels. When a task finishes late, every task linked after it may move, and the tasks after those, until slack in the plan absorbs the delay or it reaches the finish date.
- By type: finish-to-start, start-to-start, finish-to-finish and start-to-finish, each optionally with a lag (a wait) or a lead (an overlap).
- By nature: mandatory dependencies come from the work itself (walls before a roof), discretionary ones are the team's preferred order and can be changed.
- By source: internal dependencies sit inside the project, external ones wait on something outside it, such as a supplier or another team's release.
Worked example
| Task | Duration | Depends on | Scheduled | Total float | After the delay |
|---|---|---|---|---|---|
| 1. Design | 5 days | None | Days 1 to 5 | 0 days | Days 1 to 8 |
| 2. Build | 10 days | 1 | Days 6 to 15 | 0 days | Days 9 to 18 |
| 3. Test | 4 days | 2 | Days 16 to 19 | 0 days | Days 19 to 22 |
The delay: Design takes 3 days longer.
Build waits for Design and Test waits for Build, so Build starts on day 6 and Test finishes on day 19. If Design runs 3 days late, both links pass the delay on: Test now finishes on day 22.
Open this example in the free delay simulator to change the durations, the links or the delay and watch the schedule move.