Sequence tasks with dependencies, draw a Gantt chart and find the critical path that sets the project's length.
Why it matters
A list of tasks is not a schedule. Some tasks must wait for others; some can happen at the same time. Until you know the order, you cannot say when the project will finish or which delays actually matter. The critical path method (CPM) answers both questions, and it is used on everything from software releases to building projects.
Dependencies
A dependency links two tasks. The most common type is finish-to-start: task B cannot start until task A finishes. You cannot build the sign-up pages until the screens are designed.
Other types exist (start-to-start, finish-to-finish), but finish-to-start covers most beginner plans. Dependencies come from:
- Logic: you must design before you build.
- Resources: the same person cannot do two things at once.
- External events: the food bank must supply photos first.
The network and the forward pass
Here is the food bank plan in working days:
| ID | Task | Days | After |
|---|---|---|---|
| A | Agree requirements | 3 | (none) |
| B | Design screens | 5 | A |
| C | Set up database | 2 | A |
| D | Build sign-up pages | 6 | B, C |
| E | Write volunteer guide | 2 | B |
| F | Test and launch | 3 | D, E |
The forward pass works out the earliest each task can finish. A task can start only when all of its predecessors are done, so its earliest start is the largest earliest finish among them:
A: start 0, finish 0 + 3 = 3
B: start A = 3, finish 3 + 5 = 8
C: start A = 3, finish 3 + 2 = 5
D: start max(B, C) = 8, finish 8 + 6 = 14
E: start B = 8, finish 8 + 2 = 10
F: start max(D, E) = 14, finish 14 + 3 = 17
The project takes 17 working days.
The critical path and float
The critical path is the longest chain of dependent tasks through the network. Here it is A -> B -> D -> F (3 + 5 + 6 + 3 = 17). Every task on it has zero float: if any of them slips by a day, the whole project slips by a day.
Tasks off the critical path have float (also called slack): time they can slip without delaying the end.
- C finishes on day 5 but D cannot start until day 8 anyway, so C has 3 days of float.
- E finishes on day 10 but F starts on day 14, so E has 4 days of float.
A backward pass (working from the end date back, subtracting durations to find latest start and finish) calculates float formally. Float = latest start minus earliest start.
Why this matters: if the database setup (C) takes 2 days longer than planned, nothing changes. If design (B) takes 2 days longer, launch moves 2 days. So you watch critical tasks closely and put your strongest people and earliest risk work there.
Gantt charts
A Gantt chart draws the schedule as horizontal bars on a calendar: one row per task, bar length equal to duration, with arrows for dependencies. It is the most common way to share a schedule because anyone can read it. Critical tasks are often coloured differently.
Day 1 3 5 7 9 11 13 15 17
A Reqs ===
B Design =====
C DB ==
D Build ======
E Guide ==
F Test ===
Free tools include spreadsheet templates, GanttProject and many free tiers of online planners. The tool matters much less than correct dependencies.
Milestones
A milestone is a zero-duration marker for a significant event: "Design approved", "Go-live". Sponsors care about milestones more than tasks. Put them on the chart and in status reports.
Common mistakes
- Missing dependencies, so the chart shows tasks overlapping that cannot.
- Calendar dates typed in by hand instead of calculated from dependencies, so one change breaks everything.
- Ignoring resource limits: two critical tasks assigned to the same person at the same time.
- Treating the critical path as fixed. If a non-critical task slips past its float, it becomes critical.
Quick recap
- Dependencies (mostly finish-to-start) set the order of tasks.
- The forward pass gives each task's earliest finish; a task starts at the latest finish of its predecessors.
- The critical path is the longest chain; its tasks have zero float and set the project length.
- Gantt charts and milestones communicate the schedule.
Try it
Open the Do tab. The code for a forward pass is already written except for one line. Fill it in and the program finds the food bank project's length and critical path. No programming experience needed.