The first step for scheduling the project is to determine the tasks that the project requires and the order in which they must be completed. The order may be easy to record for some tasks (e.g., when building a house, the land must be graded before the foundation can be laid) while difficult for others (there are two areas that need to be graded, but there are only enough bulldozers to do one). Additionally, the time estimates usually reflect the normal, non-rushed time. Many times, the time required to execute the task can be reduced for an additional cost or a reduction in the quality.
Example In the following example there are seven tasks, labeled
A through
G. Some tasks can be done concurrently (
A and
B) while others cannot be done until their predecessor task is complete (
C cannot begin until
A is complete). Additionally, each task has three time estimates: the optimistic time estimate (
o), the most likely or normal time estimate (
m), and the pessimistic time estimate (
p). The expected time (
te) is computed using the formula (
o + 4
m +
p) ÷ 6. Once this step is complete, one can draw a
Gantt chart or a network diagram. : (MSP). Note (1) the
critical path is in red, (2) the
slack is the black lines connected to non-critical activities, (3) since Saturday and Sunday are not work days and are thus excluded from the schedule, some bars on the Gantt chart are longer if they cut through a weekend. :. Note (1) the
critical path is highlighted, (2) the
slack is not specifically indicated on task 5 (d), though it can be observed on tasks 3 and 7 (b and f), (3) since weekends are indicated by a thin vertical line, and take up no additional space on the work calendar, bars on the Gantt chart are not longer or shorter when they do or don't carry over a weekend.
Next step, creating network diagram by hand or by using diagram software A network diagram can be created by hand or by using diagram software. There are two types of network diagrams, activity on arrow (
AOA) and activity on node (
AON). Activity on node diagrams are generally easier to create and interpret. To create an AON diagram, it is recommended (but not required) to start with a node named
start. This "activity" has a duration of zero (0). Then you draw each activity that does not have a predecessor activity (
a and
b in this example) and connect them with an arrow from start to each node. Next, since both
c and
d list
a as a predecessor activity, their nodes are drawn with arrows coming from
a. Activity
e is listed with
b and
c as predecessor activities, so node
e is drawn with arrows coming from both
b and
c, signifying that
e cannot begin until both
b and
c have been completed. Activity
f has
d as a predecessor activity, so an arrow is drawn connecting the activities. Likewise, an arrow is drawn from
e to
g. Since there are no activities that come after
f or
g, it is recommended (but again not required) to connect them to a node labeled
finish. (MSP). Note the
critical path is in red. By itself, the network diagram pictured above does not give much more information than a Gantt chart; however, it can be expanded to display more information. The most common information shown is: • The activity name • The expected duration time • The early start time (ES) • The early finish time (EF) • The late start time (LS) • The late finish time (LF) • The
slack In order to determine this information it is assumed that the activities and normal duration times are given. The first step is to determine the ES and EF. The ES is defined as the maximum EF of all predecessor activities, unless the activity in question is the first activity, for which the ES is zero (0). The EF is the ES plus the task duration (EF = ES + duration). • The ES for
start is zero since it is the first activity. Since the duration is zero, the EF is also zero. This EF is used as the ES for
a and
b. • The ES for
a is zero. The duration (4 work days) is added to the ES to get an EF of four. This EF is used as the ES for
c and
d. • The ES for
b is zero. The duration (5.33 work days) is added to the ES to get an EF of 5.33. • The ES for
c is four. The duration (5.17 work days) is added to the ES to get an EF of 9.17. • The ES for
d is four. The duration (6.33 work days) is added to the ES to get an EF of 10.33. This EF is used as the ES for
f. • The ES for
e is the greatest EF of its predecessor activities (
b and
c). Since
b has an EF of 5.33 and
c has an EF of 9.17, the ES of
e is 9.17. The duration (5.17 work days) is added to the ES to get an EF of 14.34. This EF is used as the ES for
g. • The ES for
f is 10.33. The duration (4.5 work days) is added to the ES to get an EF of 14.83. • The ES for
g is 14.34. The duration (5.17 work days) is added to the ES to get an EF of 19.51. • The ES for
finish is the greatest EF of its predecessor activities (
f and
g). Since
f has an EF of 14.83 and
g has an EF of 19.51, the ES of
finish is 19.51.
Finish is a milestone (and therefore has a duration of zero), so the EF is also 19.51. Barring any
unforeseen events, the project should take 19.51 work days to complete. The next step is to determine the late start (LS) and late finish (LF) of each activity. This will eventually show if there are activities that have
slack. The LF is defined as the minimum LS of all successor activities, unless the activity is the last activity, for which the LF equals the EF. The LS is the LF minus the task duration (LS = LF − duration). • The LF for
finish is equal to the EF (19.51 work days) since it is the last activity in the project. Since the duration is zero, the LS is also 19.51 work days. This will be used as the LF for
f and
g. • The LF for
g is 19.51 work days. The duration (5.17 work days) is subtracted from the LF to get an LS of 14.34 work days. This will be used as the LF for
e. • The LF for
f is 19.51 work days. The duration (4.5 work days) is subtracted from the LF to get an LS of 15.01 work days. This will be used as the LF for
d. • The LF for
e is 14.34 work days. The duration (5.17 work days) is subtracted from the LF to get an LS of 9.17 work days. This will be used as the LF for
b and
c. • The LF for
d is 15.01 work days. The duration (6.33 work days) is subtracted from the LF to get an LS of 8.68 work days. • The LF for
c is 9.17 work days. The duration (5.17 work days) is subtracted from the LF to get an LS of 4 work days. • The LF for
b is 9.17 work days. The duration (5.33 work days) is subtracted from the LF to get an LS of 3.84 work days. • The LF for
a is the minimum LS of its successor activities. Since
c has an LS of 4 work days and
d has an LS of 8.68 work days, the LF for
a is 4 work days. The duration (4 work days) is subtracted from the LF to get an LS of 0 work days. • The LF for
start is the minimum LS of its successor activities. Since
a has an LS of 0 work days and
b has an LS of 3.84 work days, the LS is 0 work days.
Next step, determination of critical path and possible slack The next step is to determine the
critical path and if any activities have
slack. The critical path is the path that takes the
longest to complete. To determine the path times, add the task durations for all available paths. Activities that have slack can be delayed without changing the overall time of the project. Slack is computed in one of two ways, slack = LF − EF
or slack = LS − ES. Activities that are on the critical path have a slack of zero (0). • The duration of path
adf is 14.83 work days. • The duration of path
aceg is 19.51 work days. • The duration of path
beg is 15.67 work days. The critical path is
aceg and the critical time is 19.51 work days. It is important to note that there can be more than one critical path (in a project more complex than this example) or that the critical path can change. For example, let's say that activities
d and
f take their pessimistic (b) times to complete instead of their expected (TE) times. The critical path is now
adf and the critical time is 22 work days. On the other hand, if activity
c can be reduced to one work day, the path time for
aceg is reduced to 15.34 work days, which is slightly less than the time of the new critical path,
beg (15.67 work days). Assuming these scenarios do not happen, the slack for each activity can now be determined. •
Start and
finish are milestones and by definition have no duration, therefore they can have no slack (0 work days). • The activities on the critical path by definition have a slack of zero; however, it is always a good idea to check the math anyway when drawing by hand. • LFa – EFa = 4 − 4 = 0 • LFc – EFc = 9.17 − 9.17 = 0 • LFe – EFe = 14.34 − 14.34 = 0 • LFg – EFg = 19.51 − 19.51 = 0 • Activity
b has an LF of 9.17 and an EF of 5.33, so the slack is 3.84 work days. • Activity
d has an LF of 15.01 and an EF of 10.33, so the slack is 4.68 work days. • Activity
f has an LF of 19.51 and an EF of 14.83, so the slack is 4.68 work days. Therefore, activity
b can be delayed almost 4 work days without delaying the project. Likewise, activity
d or activity
f can be delayed 4.68 work days without delaying the project (alternatively,
d and
f can be delayed 2.34 work days each). . Note the
critical path is in red.
Avoiding loops Depending upon the capabilities of the data input phase of the critical path algorithm, it may be possible to create a loop, such as A -> B -> C -> A. This can cause simple algorithms to loop indefinitely. Although it is possible to "mark" nodes that have been visited, then clear the "marks" upon completion of the process, a far simpler mechanism involves computing the total of all activity durations. If an EF of more than the total is found, the computation should be terminated. It is worth saving the identities of the most recently visited dozen or so nodes to help identify the problem link. == As project scheduling tool ==