10.4 Activity Float and Schedules
A number of different activity schedules can be developed from the critical path scheduling procedure described in the previous section. An earliest time schedule would be developed by starting each activity as soon as possible, at ES(i,j). Similarly, a latest time schedule would delay the start of each activity as long as possible but still finish the project in the minimum possible time. This late schedule can be developed by setting each activity's start time to LS(i,j).
Activities that have different early and late start times (i.e., ES(i,j) < LS(i,j)) can be scheduled to start anytime between ES(i,j) and LS(i,j) as shown in Figure 10-6. The concept of float is to use part or all of this allowable range to schedule an activity without delaying the completion of the project. An activity that has the earliest time for its predecessor and successor nodes differing by more than its duration possesses a window in which it can be scheduled. That is, if E(i) + Dij < L(j), then some float is available in which to schedule this activity.
Figure 10-6 Illustration of Activity Float
Float is a very valuable concept since it represents the scheduling flexibility or "maneuvering room" available to complete particular tasks. Activities on the critical path do not provide any flexibility for scheduling nor leeway in case of problems. For activities with some float, the actual starting time might be chosen to balance work loads over time, to correspond with material deliveries, or to improve the project's cash flow.
Of course, if one activity is allowed to float or change in the schedule, then the amount of float available for other activities may decrease. Three separate categories of float are defined in critical path scheduling:
Each of these "floats" indicates an amount of flexibility associated with an activity. In all cases, total float equals or exceeds free float, while independent float is always less than or equal to free float. Also, any activity on a critical path has all three values of float equal to zero. The converse of this statement is also true, so any activity which has zero total float can be recognized as being on a critical path.
The various categories of activity float are illustrated in Figure 10-6 in which the activity is represented by a bar which can move back and forth in time depending upon its scheduling start. Three possible scheduled starts are shown, corresponding to the cases of starting each activity at the earliest event time, E(i), the latest activity start time LS(i,j), and at the latest event time L(i). The three categories of float can be found directly from this figure. Finally, a fourth bar is included in the figure to illustrate the possibility that an activity might start, be temporarily halted, and then re-start. In this case, the temporary halt was sufficiently short that it was less than the independent float time and thus would not interfere with other activities. Whether or not such work splitting is possible or economical depends upon the nature of the activity.
As shown in Table 10-3, activity D(1,3) has free and independent floats of 10 for the project shown in Figure 10-4. Thus, the start of this activity could be scheduled anytime between time 4 and 14 after the project began without interfering with the schedule of other activities or with the earliest completion time of the project. As the total float of 11 units indicates, the start of activity D could also be delayed until time 15, but this would require that the schedule of other activities be restricted. For example, starting activity D at time 15 would require that activity G would begin as soon as activity D was completed. However, if this schedule was maintained, the overall completion date of the project would not be changed.
Example 10-3: Critical path for a fabrication project
As another example of critical path scheduling, consider the seven activities associated with the fabrication of a steel component shown in Table 10-4. Figure 10-7 shows the network diagram associated with these seven activities. Note that an additional dummy activity X has been added to insure that the correct precedence relationships are maintained for activity E. A simple rule to observe is that if an activity has more than one immediate predecessor and another activity has at least one but not all of these predecessor activity as a predecessor, a dummy activity will be required to maintain precedence relationships. Thus, in the figure, activity E has activities B and C as predecessors, while activity D has only activity C as a predecessor. Hence, a dummy activity is required. Node numbers have also been added to this figure using the procedure outlined in Table 10-1. Note that the node numbers on nodes 1 and 2 could have been exchanged in this numbering process since after numbering node 0, either node 1 or node 2 could be numbered next.
TABLE 10-4 Precedences and Durations for a Seven Activity Project
Figure 10-7 Illustration of a Seven Activity Project Network
The results of the earliest and latest event time algorithms (appearing in Table 10-1) are shown in Table 10-5. The minimum completion time for the project is 32 days. In this small project, all of the event nodes except node 1 are on the critical path. Table 10-6 shows the earliest and latest start times for the various activities including the different categories of float. Activities C,E,F,G and the dummy activity X are seen to lie on the critical path.
TABLE 10-5 Event Times for a Seven Activity Project
TABLE 10-6 Earliest Start, Latest Start and Activity Floats for a Seven Activity Project
10.5 Presenting Project Schedules
Communicating the project schedule is a vital ingredient in successful project management. A good presentation will greatly ease the manager's problem of understanding the multitude of activities and their inter-relationships. Moreover, numerous individuals and parties are involved in any project, and they have to understand their assignments. Graphical presentations of project schedules are particularly useful since it is much easier to comprehend a graphical display of numerous pieces of information than to sift through a large table of numbers. Early computer scheduling systems were particularly poor in this regard since they produced pages and pages of numbers without aids to the manager for understanding them. A short example appears in Tables 10-5 and 10-6; in practice, a project summary table would be much longer. It is extremely tedious to read a table of activity numbers, durations, schedule times, and floats and thereby gain an understanding and appreciation of a project schedule. In practice, producing diagrams manually has been a common prescription to the lack of automated drafting facilities. Indeed, it has been common to use computer programs to perform critical path scheduling and then to produce bar charts of detailed activity schedules and resource assignments manually. With the availability of computer graphics, the cost and effort of producing graphical presentations has been significantly reduced and the production of presentation aids can be automated.
Network diagrams for projects have already been introduced. These diagrams provide a powerful visualization of the precedences and relationships among the various project activities. They are a basic means of communicating a project plan among the participating planners and project monitors. Project planning is often conducted by producing network representations of greater and greater refinement until the plan is satisfactory.
A useful variation on project network diagrams is to draw a time-scaled network. The activity diagrams shown in the previous section were topological networks in that only the relationship between nodes and branches were of interest. The actual diagram could be distorted in any way desired as long as the connections between nodes were not changed. In time-scaled network diagrams, activities on the network are plotted on a horizontal axis measuring the time since project commencement. Figure 10-8 gives an example of a time-scaled activity-on-branch diagram for the nine activity project in Figure 10-4. In this time-scaled diagram, each node is shown at its earliest possible time. By looking over the horizontal axis, the time at which activity can begin can be observed. Obviously, this time scaled diagram is produced as a display after activities are initially scheduled by the critical path method.
Figure 10-8 Illustration of a Time Scaled Network Diagram with Nine Activities
Another useful graphical representation tool is a bar or Gantt chart illustrating the scheduled time for each activity. The bar chart lists activities and shows their scheduled start, finish and duration. An illustrative bar chart for the nine activity project appearing in Figure 10-4 is shown in Figure 10-9. Activities are listed in the vertical axis of this figure, while time since project commencement is shown along the horizontal axis. During the course of monitoring a project, useful additions to the basic bar chart include a vertical line to indicate the current time plus small marks to indicate the current state of work on each activity. In Figure 10-9, a hypothetical project state after 4 periods is shown. The small "v" marks on each activity represent the current state of each activity.
Figure 10-9 An Example Bar Chart for a Nine Activity Project
Bar charts are particularly helpful for communicating the current state and schedule of activities on a project. As such, they have found wide acceptance as a project representation tool in the field. For planning purposes, bar charts are not as useful since they do not indicate the precedence relationships among activities. Thus, a planner must remember or record separately that a change in one activity's schedule may require changes to successor activities. There have been various schemes for mechanically linking activity bars to represent precedences, but it is now easier to use computer based tools to represent such relationships.
Other graphical representations are also useful in project monitoring. Time and activity graphs are extremely useful in portraying the current status of a project as well as the existence of activity float. For example, Figure 10-10 shows two possible schedules for the nine activity project described in Table 9-1 and shown in the previous figures. The first schedule would occur if each activity was scheduled at its earliest start time, ES(i,j) consistent with completion of the project in the minimum possible time. With this schedule, Figure 10-10 shows the percent of project activity completed versus time. The second schedule in Figure 10-10 is based on latest possible start times for each activity, LS(i,j). The horizontal time difference between the two feasible schedules gives an indication of the extent of possible float. If the project goes according to plan, the actual percentage completion at different times should fall between these curves. In practice, a vertical axis representing cash expenditures rather than percent completed is often used in developing a project representation of this type. For this purpose, activity cost estimates are used in preparing a time versus completion graph. Separate "S-curves" may also be prepared for groups of activities on the same graph, such as separate curves for the design, procurement, foundation or particular sub-contractor activities.
Figure 10-10 Example of Percentage Completion versus Time for Alternative Schedules with a Nine Activity Project
Time versus completion curves are also useful in project monitoring. Not only the history of the project can be indicated, but the future possibilities for earliest and latest start times. For example, Figure 10-11 illustrates a project that is forty percent complete after eight days for the nine activity example. In this case, the project is well ahead of the original schedule; some activities were completed in less than their expected durations. The possible earliest and latest start time schedules from the current project status are also shown on the figure.
Figure 10-11 Illustration of Actual Percentage Completion versus Time for a Nine Activity Project Underway
Graphs of resource use over time are also of interest to project planners and managers. An example of resource use is shown in Figure 10-12 for the resource of total employment on the site of a project. This graph is prepared by summing the resource requirements for each activity at each time period for a particular project schedule. With limited resources of some kind, graphs of this type can indicate when the competition for a resource is too large to accommodate; in cases of this kind, resource constrained scheduling may be necessary as described in Section 10.9. Even without fixed resource constraints, a scheduler tries to avoid extreme fluctuations in the demand for labor or other resources since these fluctuations typically incur high costs for training, hiring, transportation, and management. Thus, a planner might alter a schedule through the use of available activity floats so as to level or smooth out the demand for resources. Resource graphs such as Figure 10-12 provide an invaluable indication of the potential trouble spots and the success that a scheduler has in avoiding them.
Figure 10-12 Illustration of Resource Use over Time for a Nine Activity Project
A common difficulty with project network diagrams is that too much information is available for easy presentation in a network. In a project with, say, five hundred activities, drawing activities so that they can be seen without a microscope requires a considerable expanse of paper. A large project might require the wall space in a room to include the entire diagram. On a computer display, a typical restriction is that less than twenty activities can be successfully displayed at the same time. The problem of displaying numerous activities becomes particularly acute when accessory information such as activity identifying numbers or phrases, durations and resources are added to the diagram.
One practical solution to this representation problem is to define sets of activities that can be represented together as a single activity. That is, for display purposes, network diagrams can be produced in which one "activity" would represent a number of real sub-activities. For example, an activity such as "foundation design" might be inserted in summary diagrams. In the actual project plan, this one activity could be sub-divided into numerous tasks with their own precedences, durations and other attributes. These sub-groups are sometimes termed fragnets for fragments of the full network. The result of this organization is the possibility of producing diagrams that summarize the entire project as well as detailed representations of particular sets of activities. The hierarchy of diagrams can also be introduced to the production of reports so that summary reports for groups of activities can be produced. Thus, detailed representations of particular activities such as plumbing might be prepared with all other activities either omitted or summarized in larger, aggregate activity representations. The CSI/MASTERSPEC activity definition codes described in Chapter 9 provide a widely adopted example of a hierarchical organization of this type. Even if summary reports and diagrams are prepared, the actual scheduling would use detailed activity characteristics, of course.
An example figure of a sub-network appears in Figure 10-13. Summary displays would include only a single node A to represent the set of activities in the sub-network. Note that precedence relationships shown in the master network would have to be interpreted with care since a particular precedence might be due to an activity that would not commence at the start of activity on the sub-network.
Figure 10-13 Illustration of a Sub-Network in a Summary Diagram
The use of graphical project representations is an important and extremely useful aid to planners and managers. Of course, detailed numerical reports may also be required to check the peculiarities of particular activities. But graphs and diagrams provide an invaluable means of rapidly communicating or understanding a project schedule. With computer based storage of basic project data, graphical output is readily obtainable and should be used whenever possible.
Finally, the scheduling procedure described in Section 10.3 simply counted days from the initial starting point. Practical scheduling programs include a calendar conversion to provide calendar dates for scheduled work as well as the number of days from the initiation of the project. This conversion can be accomplished by establishing a one-to-one correspondence between project dates and calendar dates. For example, project day 2 would be May 4 if the project began at time 0 on May 2 and no holidays intervened. In this calendar conversion, weekends and holidays would be excluded from consideration for scheduling, although the planner might overrule this feature. Also, the number of work shifts or working hours in each day could be defined, to provide consistency with the time units used is estimating activity durations. Project reports and graphs would typically use actual calendar days.
10.6 Critical Path Scheduling for Activity-on-Node and with Leads, Lags, and Windows
Performing the critical path scheduling algorithm for activity-on-node representations is only a small variation from the activity-on-branch algorithm presented above. An example of the activity-on-node diagram for a seven activity network is shown in Figure 10-3. Some addition terminology is needed to account for the time delay at a node associated with the task activity. Accordingly, we define: ES(i) as the earliest start time for activity (and node) i, EF(i) is the earliest finish time for activity (and node) i, LS(i) is the latest start and LF(i) is the latest finish time for activity (and node) i. Table 10-7 shows the relevant calculations for the node numbering algorithm, the forward pass and the backward pass calculations.
TABLE 10-7 Critical Path Scheduling Algorithms (Activity-on-Node Representation)
For manual application of the critical path algorithm shown in Table 10-7, it is helpful to draw a square of four entries, representing the ES(i), EF(i), LS(i) and LF (i) as shown in Figure 10-14. During the forward pass, the boxes for ES(i) and EF(i) are filled in. As an exercise for the reader, the seven activity network in Figure 10-3 can be scheduled. Results should be identical to those obtained for the activity-on-branch calculations.
Figure 10-14 ES, EF, LS and LF Display for Hand Calculation of Critical Path for Activity-on-Node Representation
Building on the critical path scheduling calculations described in the previous sections, some additional capabilities are useful. Desirable extensions include the definition of allowable windows for activities and the introduction of more complicated precedence relationships among activities. For example, a planner may wish to have an activity of removing formwork from a new building component follow the concrete pour by some pre-defined lag period to allow setting. This delay would represent a required gap between the completion of a preceding activity and the start of a successor. The scheduling calculations to accommodate these complications will be described in this section. Again, the standard critical path scheduling assumptions of fixed activity durations and unlimited resource availability will be made here, although these assumptions will be relaxed in later sections.
A capability of many scheduling programs is to incorporate types of activity interactions in addition to the straightforward predecessor finish to successor start constraint used in Section 10.3. Incorporation of additional categories of interactions is often called precedence diagramming. For example, it may be the case that installing concrete forms in a foundation trench might begin a few hours after the start of the trench excavation. This would be an example of a start-to-start constraint with a lead: the start of the trench-excavation activity would lead the start of the concrete-form-placement activity by a few hours. Eight separate categories of precedence constraints can be defined, representing greater than (leads) or less than (lags) time constraints for each of four different inter-activity relationships. These relationships are summarized in Table 10-8. Typical precedence relationships would be:
While the eight precedence relationships in Table 10-8 are all possible, the most common precedence relationship is the straightforward direct precedence between the finish of a preceding activity and the start of the successor activity with no required gap (so FS = 0).
TABLE 10-8 Eight Possible Activity Precedence Relationships
The computations with these lead and lag constraints are somewhat more complicated variations on the basic calculations defined in Table 10-1 for critical path scheduling. For example, a start-to-start lead would modify the calculation of the earliest start time to consider whether or not the necessary lead constraint was met:
where SSij represents a start-to-start lead between activity (i,j) and any of the activities starting at event j.
The possibility of interrupting or splitting activities into two work segments can be particularly important to insure feasible schedules in the case of numerous lead or lag constraints. With activity splitting, an activity is divided into two sub-activities with a possible gap or idle time between work on the two subactivities. The computations for scheduling treat each sub-activity separately after a split is made. Splitting is performed to reflect available scheduling flexibility or to allow the development of a feasible schedule. For example, splitting may permit scheduling the early finish of a successor activity at a date later than the earliest start of the successor plus its duration. In effect, the successor activity is split into two segments with the later segment scheduled to finish after a particular time. Most commonly, this occurs when a constraint involving the finish time of two activities determines the required finish time of the successor. When this situation occurs, it is advantageous to split the successor activity into two so the first part of the successor activity can start earlier but still finish in accordance with the applicable finish-to-finish constraint.
Finally, the definition of activity windows can be extremely useful. An activity window defines a permissible period in which a particularly activity may be scheduled. To impose a window constraint, a planner could specify an earliest possible start time for an activity (WES) or a latest possible completion time (WLF). Latest possible starts (WLS) and earliest possible finishes (WEF) might also be imposed. In the extreme, a required start time might be insured by setting the earliest and latest window start times equal (WES = WLS). These window constraints would be in addition to the time constraints imposed by precedence relationships among the various project activities. Window constraints are particularly useful in enforcing milestone completion requirements on project activities. For example, a milestone activity may be defined with no duration but a latest possible completion time. Any activities preceding this milestone activity cannot be scheduled for completion after the milestone date. Window constraints are actually a special case of the other precedence constraints summarized above: windows are constraints in which the precedecessor activity is the project start. Thus, an earliest possible start time window (WES) is a start-to-start lead.
One related issue is the selection of an appropriate network representation. Generally, the activity-on-branch representation will lead to a more compact diagram and is also consistent with other engineering network representations of structures or circuits. For example, the nine activities shown in Figure 10-4 result in an activity-on-branch network with six nodes and nine branches. In contrast, the comparable activity-on-node network shown in Figure 9-6 has eleven nodes (with the addition of a node for project start and completion) and fifteen branches. The activity-on-node diagram is more complicated and more difficult to draw, particularly since branches must be drawn crossing one another. Despite this larger size, an important practical reason to select activity-on-node diagrams is that numerous types of precedence relationships are easier to represent in these diagrams. For example, different symbols might be used on each of the branches in Figure 9-6 to represent direct precedences, start-to-start precedences, start-to-finish precedences, etc. Alternatively, the beginning and end points of the precedence links can indicate the type of lead or lag precedence relationship. Another advantage of activity-on-node representations is that the introduction of dummy links as in Figure 10-1 is not required. Either representation can be used for the critical path scheduling computations described earlier. In the absence of lead and lag precedence relationships, it is more common to select the compact activity-on-branch diagram, although a unified model for this purpose is described in Chapter 11. Of course, one reason to pick activity-on-branch or activity-on-node representations is that particular computer scheduling programs available at a site are based on one representation or the other. Since both representations are in common use, project managers should be familiar with either network representation.
Many commercially available computer scheduling programs include the necessary computational procedures to incorporate windows and many of the various precedence relationships described above. Indeed, the term "precedence diagramming" and the calculations associated with these lags seems to have first appeared in the user's manual for a computer scheduling program.
If the construction plan suggests that such complicated lags are important, then these scheduling algorithms should be adopted. In the next section, the various computations associated with critical path scheduling with several types of leads, lags and windows are presented.