Developing a project schedule is not a one way job, there are series of schedule analysis processes and optimizations that need to be accomplished.
Usually, when developing the project schedule using the CPM, we develop it based on the logical relationship and our duration estimation. Assuming no constraint or limitation exists.
After we get the initial project schedule, we need to do some enhancement to the CPM network, we call it optimization. The purpose of this process is to modify the schedule (reduce the duration/meet specific project requirements) in order to comply with the imposed date required by project/client.
For example, let’s say we have a project with three months duration as per our signed contract with the client, we start building our CPM Network and estimate its duration without any constraint consideration. Let’s say we came up with 5 months duration, we call this CPM network the initial schedule. Then, the process of CPM optimization should take place to optimize the CPM Network and reduce it to be 3 months instead of 5.
Beside Fast Tracking & Crashing techniques, there are several optimization techniques that can be used to come up with the finalized project schedule which are:
Lead & Lag
Lead & Lag are the amount of time (weeks, days, hours, etc. based on the project duration unit), that time can affect the start of an activity or the finish date of that activity without changing the CPM network logical relationship, but they have different features as we will illustrate below:
Let us say, that we have an activity A with 5 days duration and Activity B with 10 days duration. The relationship of these two activities is Finish to Start as shown in Figure 1:
As illustrated above, activity A would finish on 5th of October, then activity B can start and will finish by 15th of October. The total duration of these two activities = 15 days.
If we use the Lead techniques, we may reduce the total duration of these two activities. Let us say we add a lead of 3 days to activity B, this means that Activity B is going to start three days earlier (without changing the logical relationship). So, the shape of the network diagram will be as follows:
By adding 2 days as a Lead for Activity B, the start date of this activity will be shifted (Start earlier) from 5th of October to 3rd of October. As a result, it will finish by 13th of October instead of 15th of October. That means the total duration of activity A & B will be shortened from 15 days to 13 days only.
Let us say we add 4 days as a Lead to activity B, that means activity B will start 4 days earlier and so on.
Lag has the same concept but in an opposite feature (instead of making the activity start earlier, it allows the activity to start late). Let us take about the previous example. We can add Lag time to activity A to delay the finish date by cretin amount (3 days for example) we come up with the following figure:
By comparing the finish date of activity A (8th of October) to the finish date at figure# 1 (5th of October) we can notice that the finish date has been delayed by 3 days which is the Lag time.
We can use Lag technique to meet a cretin purpose such as:
- If we want to shift a resource of activity A and assign it to other activities, then bring it back to activity B.
- To represent a waiting time for non-activity: waiting for an equipment to be mobilized / Permit to be issued.
Project Constraint is a restriction assigned to an activity to enforce it to start or finish in a certain date. Such as:
- Must start on
- Must finish by
We use these constraints to avoid the risk of delaying an activity and enforce the schedule to start/finish in a certain date to meet project requirements.
For example, if we have a major activity in a project let us say Implementation phase in an IT Project. In order to avoid the risk of delaying the start of this phase, we apply Must Start on constraint to enforce the starting of this major phase in our desired date. Based on this constraint, the CPM network will be recalculated for the predecessors (previous activities) and the successors (next activities) and come up with a new modified schedule taking into consideration the constrained provided of the starting date for the implementation phase.
Resource Leveling & Float
This is a very effective technique to optimize CPM Network, but it needs a big effort to accomplish it with the integration of Resource Leveling & Float. Let us define both of them first.
A float is a free amount of time an activity can be delayed without effecting or delaying the successor activities.
A Resource Leveling is a technique aimed to ensure a proper utilization of project resources by redistributing them on project activities. It is usually applied by shifting (reassigned) resources from non critical activities (float >0) to critical activities (float =0) in order to reduce the activity duration or to help accomplish an activity in its desired date. But there is a condition here, those resources which we redistribute among project activities should have the same role.
For any CPM network, there might be some float for activities not in the critical path so we can optimize (leveling) the resources assignments and enhance our CPM network. For example, at figure 4, we have an activity B with total duration = 9 days and total float =4 days and there are two resources assigned to this activity. On the other side we have an activity C with total duration = 8 days and total float =0, and there is one resource assigned to this activity (Same role as resources of activity B).
So, we can change the resources assignments by shifting one of the resources of Activity B and assign it to Activity C in Figure 5. This change would enable to accomplish activity C with less duration (let say the duration would become 4 days) consequently, this change will reduce the project duration by 4 days.