CPM is a mathematically based algorithm for scheduling a set of project activities. The essential technique for using CPM is to construct a model of the project that includes the following:
• A list of all activities required to complete the project, • The dependencies between the activities, and • The estimate of time (duration) that each activity will take to completion.
Using these values, CPM usually calculates the longest path of planned activities to the end of the project, and the earliest and latest points that each activity can start and finish without making the project longer. This process determines which activities are "critical" (i.e., on the longest path) and which have "total float" (i.e., can be delayed without making the project longer).
Now we’ll try to illustrate the concept with an example. Let’s take a simple, real-life project: hanging a picture on the wall. What should you do to complete this mini-project successfully? First, we need to define and list all the tasks that have to be done, so that the whole project is completed.
- Choose a place on the wall
- Buy the screws
- Choose the picture
- Drill a hole
- Screw in the screws
- Hang the picture
When we think of these tasks, we realize that some of them cannot start before the others are finished. That is, some tasks are dependent on the others.
The actions “drill a hole,” “screw in the screws” and “hang the picture” form a sequence of tasks that must be performed in a specific order, one right after the other, to ensure a successful result. Such tasks are called “sequential” activities.
So these three tasks, together with the start of our project (“choosing a place on the wall”) in our example, are the most important critical steps that must be taken to arrive at the proper solution to our problem. These actions will be placed on your critical path for this project. So the essential concept behind Critical Path Analysis is that you cannot start some activities until the others are finished. These activities need to be completed in a sequence, with each stage being more-or-less completed before the next stage can begin.
Here’s what a sample schedule (gantt chart) can look like:
The critical path consists of the longest sequence of activities from project start to end that should be started and completed exactly as scheduled to ensure the project is completed by a certain date in the future. The activities on the critical path must be very closely managed. If jobs on the critical path slip, immediate action should be taken to get the project back on schedule. Otherwise, completion of the whole project will slip. Imagine that you have a project that will take 300 days to complete. If the first activity on the critical path is one day late, the project will take 301 days to complete, unless another activity on the critical path can be completed one day earlier. So the critical path is simply all the tasks that determine the end date in your project schedule.
There can be more than one critical path in one project, so that several paths run in parallel. For instance, in our case, “choose a picture” and “hang the picture,” as well as “buy the screws,” “screw in the screws” and “hang the picture” form other task sequences that also are important for us to complete the project.
The critical path in project management may contain all the important activities, or it may not. In fact, sometimes the activities on the critical path are not the most important parts of the project. At the same time, there will be tasks that are not on the critical path, but still determine your project’s success. Understanding the critical path involves determining which activities are critical to complete on time. But other activities, lying outside of critical path, also may be very important and require extra diligence and focus.
What Are Resource Constraints and Why They're Important
Traditional critical-path-derived schedules are based only on causal (logical) dependencies. We’ve already marked these dependances in our plan (e.g., it is impossible to drill a hole before you choose a place on the wall). However, a project can have resource limitations, which also should be taken into consideration. These limitations will create more dependencies. These dependencies are often called “resource constraints.”
So, if you work on a team, your project work can be split between the team members. In our case, while you’re choosing a place on the wall and drilling a hole, one of your friends can go and buy some screws, and your spouse can choose the picture. The tasks can be done in parallel, like on our chart above.
However, if you’re the only person responsible for the project, you have a resource constraint (i.e., you cannot drill a hole and go shopping for screws simultaneously). In this case, your critical path will look different.
On the chart above, we assume that you first need to choose the picture, and only later can you buy the screws. However, depending on the project conditions, these tasks can be performed in a different order. Such a critical path is called a "resource critical" path. This method was proposed as an extension to the traditional CPA to allow for the inclusion of resources related to each activity. A resource-leveled schedule may include delays due to resource bottlenecks (i.e., unavailability of a resource at the required time), and it may cause a previously shorter path to become longer. This is what you see on our chart above.
Calculating the Length of Your Project
In project management, a critical path is the sequence of project activities that add up to the longest overall duration. This determines the shortest time possible to complete the project.
Getting back to our example, let’s assume that you have to do everything by yourself. For each activity, show the estimated length of time it will take. Also, you determine the approximate start time for each task on the critical path. Here’s how it can be done in our example.
Now, if we add up all the critical tasks’ duration, we’ll get the approximate time that will be needed for the whole project to be completed. In our case, 1 hour and 26 minutes. Add the duration to the start time, and you’ll be able to calculate the earliest project completion time (10:26 am in our example).
Flexibility in the Critical Path
The critical path method was developed for complex, but fairly predictable, projects. However, in real life, we rarely get to manage such projects. A schedule generated using critical path techniques often is not followed precisely. As we already mentioned above, any delay of an activity on the critical path directly impacts the planned project completion date. New requirements may pop up, and new resource constraints may emerge.
Let’s say you’re planning to redecorate the living room together with your spouse. Your tasks will include:
• Getting rid of the old furniture • Painting the walls • Fixing the ceiling • Installing the new furniture
Your spouse will then be responsible for:
• Choosing the new curtains • Hanging the new curtains
The curtain tasks form a sub-project and can be treated as a non-critical path. Your spouse can “choose the new curtains” and “hang the new curtains” any time before the end of your project. So these tasks do have flexibility in the start and end date, or “float.” These tasks are parallel, and they will not be placed on the critical path. Here’s how the whole project can look on a Gantt chart:
However, if any of the parallel tasks gets significantly delayed, it will prevent your whole project from being completed on time. Therefore, you should always keep an eye on parallel tasks. Now, let’s assume that choosing the curtains took your spouse longer than you initially expected. This will delay the end of the project.
Your redecoration is incomplete without the new curtains, so the path that previously was non-critical becomes critical for the project’s completion. The initial critical path changes.
To keep an eye on your non-critical tasks, you should always keep your schedule up-to-date. That’s the only way you’ll know exactly where your project is at any given moment in time and whether it will be delivered as it was initially planned.
Do you find the CPM method effective for your projects? If not, then why? Please let us know in the comments.
As for me, I find that the traditional method can definitely be fine tuned by a few tips and tricks that I’m planning to discuss in my next post.