Programming a project with the CPM

From apppm
Jump to: navigation, search

Developed by Konstantinos Terzakis



Many students struggle with the concepts of planning and scheduling when first introduced to it. This struggle extends from the introduction of work breakdown structure to network logic through the meaning of critical activities and continuing with other planning and scheduling topics.[1] The Critical Path Method (CPM) was developed in late 1950s and became a very popular tool for Schedule Development. The method, which is broadly used by project managers, is a graphical technique which is known with the generic term Network Modeling and is used to estimate the minimum project duration. This schedule network analysis technique calculates the early start, early finish, late start, and late finish dates for all activities without regard for resource limitations by performing a forward and backward pass analysis through the schedule network. The critical path is the sequence of activities that represents the longest path through a project, which determines the shortest possible project duration. The resulting early and late start and finish dates are not necessarily the project schedule, rather they indicate the time periods within which the activity could be executed, using the parameters set in the schedule model for activity durations, logical relationships, leads, lags, and other known constraints. The CPM is used to calculate the amount of scheduling flexibility on the logical network paths within the schedule model.[2]. This article describes the CPM methodology, provides an example of this technique so as to be perceivable, while it analyzes how this method responds to the modern business practices as well as which is the evolution of this method.

Big Idea

"A project is a sequence of unique, complex and connected activities that have 
one goal or purpose and that must be completed by a specific time, within a 
budget and according to specification." [3] Another definition, according to PM Standard is: “A project is a unique set of processes consisting of coordinated and controlled activities with start and end dates, performed to achieve project objectives. Achievement of the project objectives requires the provision of deliverables conforming to specific requirements”.[4]

In both of these definitions, it can be observed some key words such as "coordinate", "sequence" "start/end" date. The CPM calculates a single, deterministic early and late start and finish date for each activity based on specified, sequencial network logic and a single duration estimate. The focus of CPM is on calculating the float in order to determine which activities have the least scheduling flexibility. The CPM algorithms are often used in other types of mathematical analysis.[5]


A specific methodology has been developed for the practical implementation of this method, generally consisting of the following steps:

1. Definition of the actions constituting the project as a whole. It is recommended to use the Work Breakdown Structure (WBS) to identify the activities of the project.

2. Determine the sequence according to which actions must be executed.

3. Estimate the completion time of each individual activity.

4. Planning the network of actions while respecting the requirements of the project execution sequence.

5. Determine over the network from the beginning to the end of the project, the fastest possible start and completion of each action, based on the network and completion times.

6. Determine over the network, from the end to the beginning of the project, the latest start and finish time of each action, based on the fastest completion time of the project identified in step 5.

7. Determine the time that can delay any action (time interval) based on the difference in earliest and latest start times that were found in the previous two steps.

8. Recognize and record the critical actions that are those where the slack time is zero (0) and cannot delay. These consist of the critical route.

9. Use the information from steps 5 and 6 for the basic planning of the project.

It is easy to understand that the most important steps are the assessment of the completion times of the individual actions and the determination of the critical route, that is to say, the actions that cannot delay. Thus, the CPM can be used effectively when the duration of each individual action of the project can be assessed with relative accuracy, and it is a deterministic variable. This happens when there is satisfactory data for the approach of the aforementioned times, i.e. statistical data from similar projects, or projects where executives could use their technical knowledge and experience in correctly predicting completion times of the actions. Below, there is an application of this method that follows the methodology mentioned above.


Table 1: Characteristics of the actions to design the Network (created in MS Excel 2016)

Let’s say that a consulting company carries out a project and the project team decides which individual actions are the main components of the overall project. These may be exploring customer requirements, investigate the case study, preparation of the offer, etc. These actions are shown in the first column of Table 1. Once established exactly the actions, they are encoded with a letter for facilitating the design of the network (2nd column of the table). Then determine the sequence, that is the order of execution shown in 3rd column of the table, where next to each action is shown which or what actions must precede. Finally, in the fourth column, there is the time required for completion of each action, estimated by the project team. So, the first thing that the project team or the person responsible for the planning must produce is a table as Table 1.

Designing the network

Once the above table has been determined, the project manager can proceed with the design of the network. The actions are represented as nodes while arrows from node to node show the sequence of actions. The elements that are written on a node can be seen in Picture 2.

Based on the table 1, we end up with the following network of actions for the consulting company.

Picture 1: The network depicts the sequence and the duration of the actions (created in MS Excel 2016)
Picture 2: Depicted elements in a typical node (created in MS Excel 2016)

When planning a network of actions we need to be sure that the actions are depicted in the proper sequence and that we maintain the logic among them. In the case of the consultancy company we observe two routes, A-B-C-D-F-G and A-B-C-E-F-G.

Determination of "Critical Times" of Actions: Early Start Time (ES) - Early Finish Time (EF)

During the process of identifying the critical route, it is needed to calculate the critical times of the project's actions.

Earliest Start Time (ES) of the action is the earliest time at which the action may begin. This depends on when the preceding actions have been completed.

Early Finish Time (EF) of the action is the earliest time at which the action could be completed, and apparently, equals the ES plus the duration of the action.

The earliest end time EF for Action A is ES + 2, since its duration is two weeks, so EF = 2. The following action is B, which can not begin before Action A has been completed. Therefore, the ES for action B will be identified with EF of the previous action, and ES = 2 for action B. As far as it is known that the duration of action B is 1, it is obvious that EF = ES + 1 = 2 + 1 = 3. Following this process and using the duration of actions from Table 1, the network in Picture 3 is produced.

Picture 3: The network depicts the sequence, the duration, the ES and EF of the actions

As a consequence, it is logical that the earliest completion time of the overall project is identical to the EF of the last action. This is the expected completion time of the project. In our case, the company's project has a total project duration of 15 weeks.

Determination of "Critical Times": Late Start Time (LS) - Late Finish Time (LF)

The next step in the process is to calculate the latest starting and finishing times of the actions.

The Late Finish Time (LF) of the action is the latest time when an action can end without extending the completion time of the entire project.

The Late Start Time (LS) of the action is the latest time that an action can start without prolonging the completion time of the entire project and equals to LF minus the duration of the action.

Based on the example to define the latest times, we have to start from the end of the network towards the beginning by examining one by one the actions. The earliest completion time of the project, hence the desirable time, is identified by the EF of the last action, and that is 15 weeks. Consequently, the action G cannot be completed after the 15th week because there will be a time extension for the company’s project. Therefore, the LF for action G is 15 weeks. The LS for G is calculated from LF minus the duration of the activity, LS = LF-1 = 15-1 = 14.

Regarding action F, its LF date depends on the LS of the following action G. That means, to avoid the extension of the whole project time, the LF date of action F is 14 weeks. Accordingly, the LS date of the action F is LS minus duration of the activity, LS = 14 - 5.

Following this procedure and using the duration times of the actions from Table 1, the network in Picture 4 is produced.

Picture 4: The network depicts the sequence, the duration, the ES, EF and LS, LF of the actions

Slack time and Critical Path

Having calculated ES, EF, LS and LF, it is then possible to find the slack times of the actions and identify the critical path. Slack time is the time period during which we can delay an action without affecting the completion time of the project. Obviously the slack time span of any action is the difference between LS and ES or the LF and EF of the action.

Slack time = LS-ES = LF-EF

If we calculate from Picture 4 the slack times of the actions it is observed that it is 0 for all actions except for action D for which:

Slack Time (D) = 7-4 = 9-6 = 3 weeks

It is clear, that action D can begin anytime within a period of 3 weeks from ES = 4 to LS = 7 which is the latest time it can start, according to the network, without adversely affecting the overall duration of the project. All the other actions in the network, with slack times equal to zero, cannot delay because the total duration of the project will be affected.

Thus it is stated that:

A critical path in a network of actions is the longest in duration path from network related actions from the start until the end of a project, where any delay in these actions leads to time extension to the completion of the overall project. The critical path can also be defined as the route on the network where all its actions have zero slack time or even the path for which the pairs (ES, EF) and (LS, LF) are identical. The actions that belong to the critical path are also called critical actions. So, if any action ends up with zero slack time, this action is on the critical path. Usually, and especially in some more complex networks, there are many critical routes. Of course, the total time of the critical routes is the same and longer than the total time in any other route of the network. In the example above only action D is not a critical action, and does not belong to the critical path (since it has slack time = 3 ≠ 0). In Picture 5 below it can be seen the critical path, the slack time for action D and the total duration of the project.

Picture 5: The network depicts the critical path, the slack time for action D and the total duration of the project

Based on the definition of the critical path, it seems that with a simple overview of the network, as shown in Picture 1, without ES, EF, LS and LF and only from the durations of the actions can someone identify that A-B-C-E-F-G is the critical route. But when the action network is more complex, with many nodes and more arrows, it is difficult to identify it immediately. Then the above methodology, becomes necessary to drive on critical actions, timing of other actions and eventually critical route.

Conclusions and comments for the CPM method

Picture 6: Early Start Schedule for the application depicted in a Gantt chart
Picture 7: Late Start Schedule for the application depicted in a Gantt chart

The existence of slack times in actions that do not belong to the critical route, allows for their programming in accordance with the needs and priorities of the overall project. In the example, the action D was reported to have slack time 3 weeks. This allows the start of Action D at any time within the timeline from week 4 (ES = 4) to week 7 (LS = 7). This property of non-critical actions can be better observed if we use the Gantt diagram, where time is depicted in the horizontal axis. Picture 6 shows exactly this, with the non-critical action D that starts at the time that is identical to ES.

This approach to programming non-critical actions is called Early Start Schedule. In this case, they are scheduled to begin as soon as possible (ES). With this approach the project and all the individual actions are completed as soon as possible.

Many times, however, this is not desirable. So we can choose the very opposite approach to programming non-critical actions and have the Late Start schedule. This approach can offer better usage of the system’s resources and can be seen in Picture 7. In a complex task with several non-critical actions such programming is a very helpful tool for project managers. If we compare the two Pictures 6 and 7 from the Gantt charts we can see within which time intervals the non-critical action D can be moved. The existence of slack times for the non-critical actions facilitates their programming in a way that we can use more efficiently the system’s resources. Indeed, the start of these non - critical actions according to their earliest start times (ES), usually implies the accumulation of large requirements and resources for inputs in some time periods. By using the available margins for any non-critical action, thus bringing the start to an appropriate time (and correspondingly end) of each such action, but always within the available margins, we achieve the most stable and uniform usage of the project’s resources.

By this way, there are several positive economic consequences for the project, as the idle time of the permanent staff and machinery decrease and we can avoid the employment of seasonal staff, the rental of additional equipment, assigning parts of the project to subcontractors etc.

In addition to its ability to reduce the complexity of larger projects by breaking them into component tasks, the CPM became popular because of the innovations in computer hardware and software. In the first few decades of the CPM, the tools were bulky mainframe computers used by specialists who often required months of training. The PC revolution brought scheduling management software to the desktop, and the rise of computer networking allowed the results to be shared easily among team members.[6]

Limitations of the CPM due to the modern business practices

The CPM, especially nowadays has the following disadvantages:

• The method assumes that the duration of the activities in the project is given (input), something that usually is not the case, as it overlooks the modern work practices such as the flexibility of work and the fact that the duration of the different activities is practically an outpout in the real business. Fuzzy or probabilistic models could enhance the method in that case.

• The usage of a software such as Microsoft Project or Primavera is recommended if the analysis process is extremely complicated.

• The method requires time in order to develop the project network and relies heavily on project managers and members' knowledge and experience in that stage. Poorly defined project scope and activities can result in ineffective use of CPM, which becomes difficult to manage.

• It is not easy to adjust the method when changes occur in the project plan during the project execution. In that case we have to redraw the project and start the calculations from the beginning. This is an intertemporal disadvantage of this method.

• The CPM is an optimal planning tool, as it always assumes that all resources are available for the project at all times, something that does not reflect the reality especially nowadays.

To overcome these shortcomings of the critical path, the critical chain method was developed. In the critical chain method resource constraints are also taken into consideration while developing the network diagram.[5]

The Evolution from CPM to DPM

The Dynamic Progress Method (DPM) is a new approach to planning, estimating, and managing projects that builds upon the power now found in computers and applies a different type of simulation model than is currently used in most tools. The underlying simulation model is very simplistic because it was developed at a time when computers had very little computational power.[7]

Taking advantange of the contemporary technological capabilities, as well as the extensive knowledge gathered regarding project management, it is possible to enhance the CPM and make it more adjustable to the manager's needs.

Picture 8: The Dynamic Progress Method (DPM) compared to CPM. Source: Project Management Institute. [7]

DPM begins with a fundamental re-evaluation of how input information is used. After defining which tasks are to be done and their dependencies, a project manager begins the process of estimating the duration of each task. For a task, the project manager usually knows about how much work needs to be done, who might do that job, an idea as to how “good” or “effective” that person is, and an idea about the availability of that person. In the example in picture 8, it’s easy to see that an 80-hour task with one assigned resource that is available 8 hours/day and is 100% productive (i.e., for each hour the resource is paid, the resource completes an hour of actual project work) gives a task duration of 10 days. With CPM-based planning tools, the duration is the input. Conversely, with DPM-based tools, the individual task and resource inputs are used instead. In this example, if the resources are actually available at the level of productivity assumed, then the duration will be the same 10 days.[7]

Commercial available tools that use the DPM is the pmBLOX and the Spider Project.

To conclude, the foundation of the DPM method are the resources, and then it builds upward. With this resource-based approach, project managers have much more flexibility and control to specify exactly what needs to be done on a project, enhancing the credibility and the accuracy of the project plans.

Annotated Bibliography

1. Project Management Institute,"A Guide to Project Management Body of Knowledge", (5th Edition),2013 : This book is a set of standard and guidelines for project management. It can be used to describe useful tools for Project Managers such as the CPM method that this article describes.

2. Robert K. Wysocki, "Effective Project Management: Traditional, Agile, Extreme", Fifth Edition. This book provides an overview of the most well-known management approaches and tools and how to use these to handle projects in the most effective manner.


  1. Weber, Sandra C., Scheduling Construction Projects: Principles and Practices,Prentice Hall, 2005
  2. A Guide to the Project Management Body of Knowledge (PMBOK® Guide), Fifth Edition, 2013, ISBN-13: 978-1-935589-67-9
  3. Robert K. Wysocki, 2009, Effective Project Management: Traditional, Agile, Extreme. Fifth Edition, ISBN: 978-0-470-42367-7.
  4. ISO 21500 PM Standard.
  5. 5.0 5.1 A Guide to the Project Management Body of Knowledge, PMI Standards Committee, ISBN:1-880410-12-5
  6. / AZCentral.
  7. 7.0 7.1 7.2 / Project Management Institute
Personal tools