« Commercial Open Source Appliance by Sun and Greenplum | Nice Spring Day At Filoli » |

There are two terms related to Critical Path that one may encounter. These are the terms *Forward Pass* and *Backward Pass*. These terms are related to ways of determining the early or late start [forward pass] or early or late finish [backward pass] for an activity.

Forward pass is a technique to move forward through a diagram to calculate activity duration. Backward pass is its opposite.

**Early Start (ES)** and **Early Finish (EF)** use the forward pass technique.

To determine the **Early Start** of an activity, factor in all its dependencies and see its earliest start date.

Consider the following simple diagram (durations are in weeks):

Click to view original size

The **Early Start (ES)** for Activity B is 4. Why? B comes after A. A starts on week 1 and finishes on week 3. So the earliest that B can start is week 4. For simplicity, I think of it as: *The duration of preceding activity + 1*

The **Early Finish (EF)** is the earliest calculated time an activity can end. To calculate Early Finish, *(ES for the activity + Activity Duration) - 1*. From the diagram above, we can compute the EF of activity B as [(4 + 3) - 1] = 6. Hence, the EF for Activity B is 6.

**Late Start (LS)** and **Late Finish(LF)** use the backward pass technique. You can think of backward pass as calculating backward to see how much an activity may slide without affecting the finish date.

**Late Start (LS)** is the latest time an activity may *begin *without delaying the project duration. The simplest way one can compute the LS is *adding the float to the activity Early Start*. Using the simple diagram above, we know that Activity B is on the critical path, hence has a float of zero. Also, Activity B's ES = 4. Hence, LS = (0 + 4) or 4. Note that if an activity has a float of zero, ES and LS will be the same.

**Late Finish (LF)** latest time an activity may be *completed*without delaying the project duration. One can compute LF by *LF =(Activity's LS + Activity Duration) - 1*. So the LF of Activity B = (4 + 3) - 1 = 6. Note that since activity B has a zero float, EF = LF.

For memory trigger, if the float of the activity is zero, *the two starts (ES and LS) and the two finish (EF and LF) are the same*. Hence, If float of activity is zero, ES = LS and EF = LF.