How to use it
- Write one task per line: name, duration, predecessors. Predecessors are the names of the tasks that must finish first, separated by spaces.
- Leave the predecessors out for tasks that can start at once.
- Read the project duration and the critical path, then the table: tasks on the critical path are highlighted.
You can also paste three columns from a spreadsheet; tabs work as separators.
How it works
The critical path method makes two passes over the network.
- Forward pass: a task’s early start ES is the latest early finish of its predecessors (0 if it has none); early finish EF = ES + duration. The project duration is the largest EF.
- Backward pass: a task’s late finish LF is the earliest late start of its successors (the project end if it has none); late start LS = LF − duration.
- Total float = LS − ES; free float = earliest ES of the successors − EF. Tasks with zero total float are critical.
Worked example
The sample project: Design 3, Build 5 after Design, Docs 2 after Design, Test 2 after Build, Launch 1 after Test and Docs.
- Forward: Design 0–3, Build 3–8, Docs 3–5, Test 8–10, Launch 10–11. The project takes 11.
- Backward: Launch 10–11, Test 8–10, Build 3–8, Docs must finish by 10 so it can start as late as 8, Design 0–3.
- Docs has total float 8 − 3 = 5 and free float 10 − 5 = 5; every other task has 0.
Critical path: Design → Build → Test → Launch.
Tips
- Add start and end milestones with duration 0 if you want one clear start and finish.
- Shorten the critical path to finish sooner: speeding up a task with float changes nothing until it is the one holding the project back.
- Durations here are fixed estimates; for uncertain ones work out each with the PERT estimate first.