A precedence table lists the activities in a project, how long each one takes, and which activities have to be finished before it can start. From that table alone you can draw the project as a network and work out two things a manager actually needs: the shortest time the whole project can take, and which activities have no room to slip.
A council is building a skate park. Twelve activities, durations in days.
| Activity | Description | Duration (days) | Immediate predecessors |
|---|---|---|---|
| A | Survey the site | 6 | — |
| B | Apply for the building permit | 4 | — |
| C | Order the steel ramp modules | 10 | — |
| D | Book the traffic-control crew | 3 | — |
| E | Clear and level the ground | 5 | A |
| F | Excavate the bowl | 8 | B |
| G | Fabricate the handrails | 7 | C |
| H | Close the access road | 4 | D |
| I | Lay the reinforcing steel | 9 | E, F |
| J | Pour and cure the concrete | 6 | C, H, I |
| K | Powder-coat the handrails | 5 | G |
| L | Install the ramps and open | 4 | J, K |
In this style of network the activities are the arrows and the numbered circles are events — moments in time, not jobs. An activity can start once every arrow feeding into its circle has arrived.
Work down the predecessor column. A, B, C and D have no predecessors, so all four leave the start event. E follows A, F follows B, and so on. Where an activity has several predecessors, they all have to land on the same circle: I needs both E and F, so those two arrows meet at event 6.
Start at event 1 with 0 and move left to right. The earliest time an event can be reached is set by the slowest arrow arriving at it, because every one of them has to finish first.
Event 6 has E arriving from event 2 and F arriving from event 3:
Event 7 is the busy one — I from event 6, H from event 5, and the dummy from event 4:
Carrying on gives 27 at event 9 and 31 at event 10. That last number is the answer to “what is the minimum time to complete the project”: the earliest the final event can possibly happen is day 31.
Now go the other way. Put 31 on the last event and work right to left, asking of each event: how late can this happen without pushing the finish past day 31? Here the tightest arrow leaving the event wins.
Event 4 has two arrows leaving it, G to event 8 and the dummy to event 7:
Keep going and event 1 comes back to 0. It always should — if it does not, there is an arithmetic slip somewhere in the scan, and that check is worth doing every time.
Each event now carries two numbers: the earliest it can happen and the latest it may happen. The gap is how much slack there is. Where the two numbers are equal there is no slack at all, and those events are on the critical path.
For an individual activity, its float is the room between the earliest it can start and the latest it may start:
For G, which runs from event 4 to event 8, that is 22 − 10 − 7 = 5 days of float. Doing this for every activity:
| Activity | Duration | EST | LST | Float | |
|---|---|---|---|---|---|
| A | 6 | 0 | 1 | 1 | |
| B | 4 | 0 | 0 | 0 | critical |
| C | 10 | 0 | 5 | 5 | |
| D | 3 | 0 | 14 | 14 | |
| E | 5 | 6 | 7 | 1 | |
| F | 8 | 4 | 4 | 0 | critical |
| G | 7 | 10 | 15 | 5 | |
| H | 4 | 3 | 17 | 14 | |
| I | 9 | 12 | 12 | 0 | critical |
| J | 6 | 21 | 21 | 0 | critical |
| K | 5 | 17 | 22 | 5 | |
| L | 4 | 27 | 27 | 0 | critical |
Five activities have zero float, and they join up into one continuous route from start to finish:
The critical path length matches the forward scan, which is the final check that the analysis hangs together. The minimum time to complete the project is 31 days.