What you'll learn
- Find the critical path of a small plan
- Calculate earliest finish times with a forward pass
- Work out float for tasks off the critical path
- Read a Gantt chart with milestones
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 pathThe longest chain of dependent tasks through the network; it sets the project's length. 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-startThe most common dependency: task B cannot start until task A finishes.: 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 passWorking through the network to find each task's earliest finish; a task starts at the largest earliest finish of its predecessors. 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 = 17The 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 floatTime a task can slip without delaying the project end, also called slack.: 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 chartA chart that draws the schedule as horizontal bars on a calendar, one row per task. 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 milestoneA zero-duration marker for a significant event, such as design approved or go-live. 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.
Key terms (6)
- finish-to-start
- The most common dependency: task B cannot start until task A finishes.
- forward pass
- Working through the network to find each task's earliest finish; a task starts at the largest earliest finish of its predecessors.
- critical path
- The longest chain of dependent tasks through the network; it sets the project's length.
- float
- Time a task can slip without delaying the project end, also called slack.
- Gantt chart
- A chart that draws the schedule as horizontal bars on a calendar, one row per task.
- milestone
- A zero-duration marker for a significant event, such as design approved or go-live.