Skip to content
Log in

Theory

The critical path and float

A forward pass and a backward pass by hand on eight tasks of the physics launch: the earliest finish, the chain with no room, and how much the other tasks can slip.

~9 min read · 9 exercises · 250 points

Before you start

Which chain decides the date?

Still November on Klasna's physics launch. The dependencies are written down; now you take eight tasks (the curriculum, tutors, landing page and launch email) and work out by hand when they can all be done.

This lesson asks which chain of tasks decides the end date, and how much the other tasks can slip without moving it.

The critical path: the longest chain of waiting tasks

Adding up every duration gives the time the work would take if it ran one task after another: 82 working days for the eight launch tasks. But many tasks don't wait for each other. Curriculum drafting (A), tutor sourcing (C) and the landing page (F) can all start at 0, on day 1.

What sets the end is the critical path: the longest chain of tasks that wait for each other. Its length is the shortest time the whole set of work can take, and any delay on it moves the end date by the same amount. Tasks off that chain have room to slip.

Two passes through the network find it. The forward pass gives each task its earliest start and finish; the backward pass, from the end, gives the latest each can start and finish without moving the end. Where the two match, the task has no room: it's critical. Knowing which tasks those are tells a project lead where to look every week.

  • Do
    “End = the longest waiting chain, not the sum of durations.”
  • Don't
    “82 days of work, so we finish on day 82.”

    Ignores tasks that run in parallel.

The forward pass: earliest start and finish

The forward pass walks the network from the start and gives every task its earliest start and earliest finish. Two rules:

  • Earliest start = the latest earliest finish among the task's predecessors (a task waits for the slowest thing it needs). Tasks with no predecessors start at 0.
  • Earliest finish = earliest start + duration.

On the launch network: A runs 0–22, C 0–18, F 0–8. B needs A, so 22–32. G needs F, so 8–13. D, the demo lessons, needs both B and C. It waits for the later one: B finishes at 32, C at 18, so D starts at 32 and finishes at 32 + 8 = 40.

Eight tasks of the launch · shown above

That “latest of the predecessors” rule is where people slip. Roman's screening finishing on day 18 doesn't let the demo lessons start early: they still wait for the final curriculum. Finishing a non-critical predecessor early buys nothing.

  • Do
    “D starts at max(32, 18) = 32.”
  • Don't
    Starting D at 18 because screening is done.

    D still waits for the final curriculum.

The earliest finish of the whole network

Carry the forward pass to the last task and you get the earliest finish of the whole network: the shortest time the work can take with these durations and links.

On the launch network: D runs 32–40, E (onboarding) 40–46. H, the launch email and ads, needs E and G. E finishes at 46, G at 13, so H starts at 46 and finishes at 46 + 5 = 51. Day 51 is Monday 11 January, counting Monday 2 November as day 1.

Eight tasks of the launch · shown above

Compare that with 82, the sum of durations: nearly a month and a half of difference, all from tasks running side by side. The number 51 is also a promise only under the plan's assumptions: these durations, these links, nobody away. It says when the work can finish at the earliest, not when it will. Which tasks can't move a day without moving the 51 is the next question, answered by the backward pass.

  • Do
    “Earliest finish of the eight tasks: day 51 (11 January), under the plan's durations.”
  • Don't
    Announcing “we'll be done on 11 January” as a commitment.

    An earliest finish, not a promise.

The backward pass and float

The backward pass starts from the end and gives every task its latest finish and latest start that don't move the end date:

  • The last task's latest finish = the end (51).
  • Latest start = latest finish − duration.
  • A task's latest finish = the earliest latest start among the tasks that wait for it.

On the launch network: H 46–51, E 40–46, D 32–40, B 22–32, A 0–22. C feeds only D, which must start by 32, so C may finish as late as 32 and start as late as 14.

Eight tasks of the launch · shown above

Float (UK «резерв часу») = latest start − earliest start: how long a task can slip without moving the end. Tasks with zero float form the critical path: here A, B, D, E and H, whose durations add up to 22 + 10 + 8 + 6 + 5 = 51. Vira's review is on it. C has 14 days of float, the landing page 33.

  • Do
    “Critical: A, B, D, E, H (22 + 10 + 8 + 6 + 5 = 51).”
  • Don't
    Calling the longest single task critical.

    Critical means zero float in the chain.

Reading a task's float

A task's float tells you how much it can slip before the end date moves. Compute it as latest start minus earliest start, using both passes.

Roman's sourcing and screening (C) has an earliest start of 0. It feeds only the demo lessons (D), whose latest start is 32, so C's latest finish is 32 and its latest start 32 − 18 = 14. Float = 14 − 0 = 14 working days.

Eight tasks of the launch · shown above

What that means in practice: if screening runs 10 days late, it finishes on day 28, still before the demo lessons need it on day 32, and the end stays at 51, with 4 days of float left. If Vira's review (B, zero float) runs 3 days late, the end moves 3 days, to 54. Same project, very different consequences.

That's why a project lead watches critical tasks every week and gives the others a lighter check on how much float they have left.

  • Do
    “C: float 14. A 10-day slip leaves 4; the end holds.”
  • Don't
    Treating every late task as an emergency.

    Check float first.

Float on a side chain

Float works the same way on a side chain of several tasks: walk backward from the point where the chain joins the critical path.

Danylo's landing page (F, 8 days) is followed by booking by subject (G, 5 days), and the launch email (H) needs G. H's latest start is 46, so G's latest finish is 46 and its latest start 46 − 5 = 41. F must finish by 41, so its latest start is 41 − 8 = 33. F's earliest start is 0, so its float is 33 days; G's earliest start is 8, so its float is 41 − 8 = 33 as well.

Eight tasks of the launch · shown above

The numbers look generous, and on this network they are: the landing page can start in mid-December and still not move day 51. But notice that F and G show the same 33. That's not a coincidence, and it's not 66 days between them, which is the trap the next card takes apart.

  • Do
    “F: latest start 33 (41 − 8); float 33.”
  • Don't
    Computing F's float from H directly, skipping G.

    Walk back through every task in the chain.

Float is shared, and it isn't a gift

Float belongs to a chain, not to each task separately. F and G both show 33 days because they share one float: whatever F uses, G loses. If the landing page runs 20 days late, booking starts on day 28 instead of 8, and only 41 − 28 = 13 days of float remain for it.

This matters when several owners sit on one chain. Danylo might feel fine about a late landing page (“33 days of float!”) without realising he's spending booking's room too. Report float per chain, not per task, when tasks follow each other.

The second trap: float isn't permission to start late. It's room for surprises. Starting a task late “because there's float” uses the room up before anything has gone wrong, and the first real delay then hits the end date. Treat float like a reserve: know how much is left on each chain, and spend it only when something actually slips.

  • Do
    “Web chain F → G: 33 days of float in total; 13 left after the landing page slip.”
  • Don't
    “We have float, so let's start the landing page in December.”

    Spends the room before any surprise.

Delays always carry; gains only sometimes

The critical path is not symmetric. A delay on it always moves the end by the same amount. A gain doesn't always carry: the next tasks must be able to start early, and as a critical chain shortens, another chain can become critical.

On the launch network, if Vira's review (B) finishes 3 days early, at 29, the demo lessons still need screening (C), which finishes at 18, so D can start at 29 and the end moves to 48. But if screening finished close to 29, the critical path would switch to it, and part of the gain would vanish.

Eight tasks of the launch · shown above

Two more cautions. These are only eight tasks: add the diagnostic test chain and the critical path may run somewhere else entirely, which the case shows with all 17 tasks. And shortening a critical task by adding people is its own question.

How it fits together: the longest waiting chain sets the end; two passes find it; float says how much the rest can slip and is shared along chains. Next lesson: why effort isn't duration, and when adding people helps.

  • Do
    “Review finished 3 days early; check whether screening becomes the limit before promising day 48.”
  • Don't
    “A critical task gained 3 days, so we finish 3 days early.”

    Gains don't always carry.

Ready to practise?

Answer the lesson's exercises and earn 250 points the first time you finish it.

Start the exercises