background shadow

Critical Path Method Scheduling – an Overview

The Critical Path Method ("CPM") of project management scheduling was invented by the DuPont Corporation in the 1950's. CPM identifies the tasks that are required, i.e., "critical", for the project to be completed in the shortest period of time.

The tasks that are not critical have some slack, i.e., some leeway, in when they have to start or finish and still not impact the planned end-date of the project. CPM uses estimates of the planned duration required to complete each task, complex dependencies between the tasks, and usually a planned start-date or planned finish-date, to calculate when each of the tasks has to be performed for the project to finish in the shortest period of time.

These estimates allow management to see the "critical path" – the sequence of essential activities that must be done on time, in order for the project to finish on time.

This article describes CPM at a level of detail required to take full advantage of the CPM Scheduling built into our applications.

Basic Terms

This article discusses the following terms:

CPM Date Calculalations

ActionProgram Manager keeps track of 10 dates for each task. This section describes how Critical Path Method date calculators work, including ActionProgram Manager's, and how each of these dates is calculated.

Let's say that our project plan has 4 tasks:

In our plan, Task 1 will start the project, and when it is finished, both Tasks 2 and 3 can start immediately. When Tasks 2 and 3 are finished, Task 4 can start immediately.

If we diagrammed this project, it would look like the following:

critical path method scheduling basic
	diagram
Fig. 1 – CPM Scheduling Diagram of 4 Tasks Over 2 Days

Let's look at the data. There is no lag between the end of Task 1 and the start of Tasks 2 and 3. Similarly, there is no lag between the completion of Task 2 and the start of Task 4. Task 3 is different however. Since Task 2 will last 4 days and Task 3 will last 2 days, obviously there is some leeway, specifically 2 days' leeway, as to when Task 3 actually starts without it impacting the end of the project, i.e., the completion of Task 4. This leeway is called "slack" or "lag time".

The other tasks, Tasks 1, 2 and 4 have no slack, in that if any of the time it takes to complete any of these tasks changes, the end-date of the project will change. These tasks are on the "critical path" while Task 3 is not on the critical path, as long as Task 3 gets finished before or at the same time as Task 2. If Task 2 takes less than 2 days to finish and Task 3 takes more than 2 days to finish, then Task 3 will be on the critical path and task 2 will not be on the critical path. Make sense? This is where the term "critical path method scheduling" comes from. A "critical" task in this context means that if the time it takes to complete the task changes, then the end-date of the project will change.

Project Schedule Orientation

If we start with the planned start date of the project and calculate when each task will start and finish, this is called using a "Project Start Date Schedule Orientation".

If we start with the planned finish date of the project and calculate when each task will start and finish, this is called using a "Project Finish Date Schedule Orientation".

Let's first look at the Project Start Date Schedule Orientation. Let's say that the project plan start date is day 1 at 8AM, and that Task 1 starts immediately when the day begins. Day 1 at 8AM is the earliest that Task 1 can start, so day 1 at 8AM is called the "early start date" for Task 1.

We know that if Task 1 starts on day 1 at 8AM and takes as long as we think it will to finish, the earliest Task 1 can finish is day 2 at 5PM (assuming that we are working an 8AM – 5PM work day). Because of this, day 2 at 5PM is called the "early finish date" for Task 1.

If Task 2 starts immediately after Task 1 is finished, the earliest Task 2 can start is 8AM on day 3. The "early start date" for Task 2 is day 3 at 8AM. Similarly, if Task 3 starts immediately after Task 1 is finished, the earliest Task 3 can start is 8AM on day 3. The "early start date" for Task 3 is day 3 at 8AM.

If Task 2 starts at 8AM on day 3 and really takes 4 days to complete, the earliest Task 2 can finish is day 6 at 5PM. Because of this, day 6 at 5 PM is called the "early finish date" for Task 2.

If Task 3 starts at 8AM on day 3 and really takes 2 days to complete, the earliest Task 3 can finish is day 4 at 5PM. Because of this, day 4 at 5 PM is called the "early finish date" for Task 3.

When is the earliest date Task 4 can start?

Since both Tasks 2 and 3 have to finish before Task 4 can start, and Task 2 will take longer than Task 3, the earliest Task 4 can start is just after Task 2 finishes, which is day 7 at 8AM. That means that the "early start date" for Task 4 is day 7 at 8AM. If Task 4 starts at 8AM on day 7 and takes 2 days to complete, the earliest date it can finish is at 5 PM on day 8. The "early finish date" for Task 4 is 5PM on day 8.

Now our plan looks like the following figure:

CPM Project Schedule Orientation
Fig. 2 – Project Schedule Orientation

So far, we have determined/calculated the "early start date and "early finish date" for each task of the project. This assumes that the "project plan start date" is day 1 at 8AM and our "company workday" schedule is 8AM – 5PM.

Now, the system goes back from the completion date of the last task and calculates the latest time each task can start and finish, i.e. the "late start date" and "late finish date" for each task.

If Task 4 finishes at 5PM on day 8, and it lasts 2 days, it has to start on day 7 at 8AM. Day 8 at 5PM is called the "late finish date" and day 7 at 8AM is called the "late start date". These are the latest dates when the task can start and finish and not impact the end-date of the project.

If Task 4 starts on day 7 at 8AM, that means Tasks 2 and 3 have to finish by 5PM on day 6. Day 6 at 5PM is the "late finish date" for both Tasks 2 and 3. If Task 3 finishes at 5PM on day 6, since it will only last 2 days, it has to start on day 5 at 8AM. Day 5 at 8AM is the "late start date" for Task 3 because if it starts after day 5 at 8AM, it will impact the end date of the project. If Task 2 finishes at 5PM on day 6, since it will last 4 days, it has to start on day 3 at 8AM. Since both Task 2 and Task 3 can start when Task 1 finishes, Task 1 can end on day 2 at 5PM, and if it does, it will start on day 1 at 8AM.

Project Finish Date Schedule Orientation

Often, we know when the project is supposed to finish, and we want to calculate when the project has to start in order to finish on time. If we use a "Project Finish Date Schedule Orientation", we enter a planned finish date. Using it, the system calculates the late start and finish dates for each task starting with the last task in the project plan. It works backwards until it gets to the first task, and determines the planned start date of the project. Then it works forwards and calculates the early start and finish dates of each task. Finally, it compares the early start date and late start date for each task. If they are the same, the task is on the critical path. If there is a difference, the task is not on the critical path.

Now, our diagram looks like this. The early start and finish dates are above each task, and the late start and finish dates are below each task.

CPM Project Finish Date Schedule
	Orientation
Fig. 3 – Project Finish Date Schedule Orientation

Planned Start Date and Planned Finish Date

MS Project added two new terms to this niche: "Planned Start Date" and "Planned Finish Date". When using the Project Start Date Schedule Orientation, the early start date and early finish date are the planned start date and planned finish date. When using the Project Finish Date Schedule Orientation, the late start date and late finish date are the planned start date and planned finish date for the project.

Constraint Dates

Most project management system have another capability that can be used to create a plan. The system gives you the ability to enter specific dates for a task and specify how the date should be used. For example, you can specify that a task can start:

Summary

Critical path method scheduling uses 1) the project plan start date or the project plan finish date, 2) the planned duration of each task, 3) the dependency type relationship between each task, and 4) constraint dates to calculate when the planned tasks that make up the project should start and finish. This is called a "project plan".

Critical Path Method scheduling systems calculate the dates both ways. If you specify that the project should use a Project Start Date Schedule orientation, the system starts with the planned project start date entered, uses the planned duration and dependency type relationships to calculate the early start and finish dates for each task until it comes to the last date. That becomes the planned finish date for the project. Then, the system goes back from the planned finish date and calculates the late start and finish dates for each task. The system compares the early start dates for each task and the late start dates for each task. If there is no difference, the task is on the critical path. If there is a difference, the task is not on the critical path, and the difference is the "slack", i.e. the amount of time the start of task can slip without impacting the planned end date of the project. This answers the question: If the project starts on a specific date, when will it end?

Using the Project Finish Date Schedule orientation, the planned finish date is entered rather than the planned start date. The system starts with the planned finish date and calculates the late start and late finish dates for each task, until it comes to the late start date for the first task. That becomes the planned start date. Then it calculates the early start and finish dates for each task, and compares them. This answers the question: If we need the project to finish by a specific date, when does it have to start?

If you do not understand this, or if you need to discuss your project scheduling issues in specific detail, please contact us at 1-310-230-1722.