Not recorded

Project Scheduling And Resource Levelling

Scheduling | By Jorge Dominguez | Read time minutes

Gantt chart and fountain pen

We all know that in the real world we, as project managers, are given the finish date of the project before we even have a chance to plan for it. This is a good enough reason why we need to get better at scheduling our projects and levelling our finite resources.

Sure, there are tools that allow us to automate the process, but a tool is as good as the knowledge of those who use it. All in all, project managers have a tool and a method by which we create our project schedules. But, we all suffer from common mistakes such as having the wrong dependencies, excessive constraints, inadequate level of detail in the WBS, estimates too granular or nonexistent, over allocated resources, etc. Ring a bell?

The tool that is most widely used is MS Project (MSP). And I am not going to take the time in this article to talk about MSP since this is not the topic. I will, however, mention it as it applies to project scheduling and resource levelling.

The method is what changes from project manager to project manager. I will explain the "must do" steps and in the correct order.

Develop the WBS

Most organisations have a hierarchical structure to break down the work. Typically, it looks like this: Stage, Phase, Task/Deliverable/Milestone. This is a way to organise and define the total scope of the project by decomposing the work to be done into tasks that the project team can execute and create the required deliverables. The tasks, deliverables or milestones are components that can be scheduled, cost estimated, monitored and controlled.

Establish Dependencies

Dependencies are defined so that the work is executed in the proper order. Understand the following task dependency types before you use them; incorrect dependencies will impact the finish date of your schedule and create unnecessary constraints:

  1. Mandatory (hard logic) - Inherent in the nature of the work being done. They often involve physical limitations i.e. a test case must be defined before testing.
  2. Discretionary (soft/preferred/preferential logic) - Based on experience, desire or preferences i.e. the team decides that they will create the user manual after the first round of testing, although it is not necessary.
  3. External - Based on needs or desires of a party outside the project i.e. the server must be purchased before configuring.

A network diagram is used to show dependencies in a graphical form. MSP generates a network diagram automatically.

Work is the number of labour units (usually expressed in hours, days or weeks) required to complete a scheduled task. Estimation is equivalent to success. Duration is the total number of work periods (usually expressed as days or weeks) required to complete a scheduled task. When estimating, keep in mind the different task types:

  1. Fixed units (MSP default) - Allows the schedule to calculate the finish date ASAP based on resource availability.
  2. Fixed duration - Used when the priority is to preserve duration. To complete work, assign resources as needed to satisfy the finish date, remember my comment about "knowing" the finish date before we even plan?
  3. Fixed work - Some project management systems (i.e. Clarity, formerly Niku) that sit on top of MSP don't support this type because of the effort driven nature of it and the unpredictable results it may create. So, I have chosen to get used to not using it at all.

This is how task types work:

Task TypeRevise DurationRevise WorkRevise Units
Fixed UnitsWork is recalculated, and units are fixed.Duration is recalculated, and units are fixed.Duration is recalculated, and work is fixed.
Fixed DurationWork is recalculated, and duration is fixed.Units is recalculated, and duration is fixed.Work is recalculated, and units are fixed.

Task constraint is the next item we need to look at when estimating. You must avoid using moderate and inflexible types. Wrong constraints increase the project risk and extend the finish date:

  1. As late as possible (flexible; default) - For projects scheduled from the finish date. Schedules the latest possible start and finish dates for the task.
  2. As soon as possible (flexible; default) - For projects scheduled from the start date. Schedules the earliest possible start and finish dates for the task.
  3. Finish no earlier than (moderate; avoid) - For projects scheduled from the start date. Indicates the earliest possible date that the task can be completed, and the task cannot finish any time before the specified date.
  4. Finish no later than (moderate; avoid) - For projects scheduled from the finish date. Indicates the latest possible date that the task can be completed, and the task can be finished on or before the specified date.
  5. Start no earlier than (moderate; avoid) - For projects scheduled from the start date. Indicates the earliest possible date that the task can begin, and the task cannot start any time before the specified date.
  6. Start no later than (moderate; avoid) - For projects scheduled from the finish date. Indicates the latest possible date that the task can begin, and the task can start on or before the specified date.
  7. Must finish on (inflexible; avoid) - Indicates the exact date on which the task must finish. Other scheduling parameters such as task dependencies, lead or lag time, and resource levelling become secondary to this requirement.
  8. Must start on (inflexible; avoid) - Indicates the exact date on which the task must begin. Other scheduling parameters such as task dependencies, lead or lag time, and resource levelling become secondary to this requirement.

Assign Resources

Resources (typically human) are assigned to tasks, deliverables and milestones that need to be executed. At the beginning of the project, when named resources are not known yet, roles are assigned that can later be replaced with names i.e. the role of Analyst is assigned to a task during project scheduling and is later replaced with John Doe when he is the analyst assigned to the task.

Level Resources

Helps in utilising resources consistently throughout the project. Ensures resources are not over allocated. Helps the project manager avoid delays caused by bad allocations. Helps the project manager identify and take advantage of unused times by analysing task dependencies. MSP can automatically level resources based on resource calendar, task types, dependencies, and constraints, however, I have yet to find a project manager that has felt comfortable with the way MSP does it. I level resources manually via the Resource Usage view, but if you insist in using the automatic feature of MSP, save a copy first. If you find resource conflicts (over or under allocations) you could:

  1. Delay certain tasks
  2. Assign a different resource
  3. Change task dependencies
  4. Remove tasks
  5. Add tasks (instead of using the MSP's split task functionality, which is not supported by some project management systems i.e. Clarity)

Determine the Critical Path

Helps the project manager identify tasks that must be carefully monitored. The critical path is the longest duration path through a network diagram and it is the shortest path to complete the project. Knowing the project's critical path should be the goal of the scheduling process. MSP calculates the critical path automatically and through the Gantt chart it shows what tasks are in it. One thing to keep in mind is that as tasks are completed ahead or behind schedule the critical path changes. Another is that there can be more than one critical path but this increases risk. If the critical path takes your project's finish date way too far there are a couple of techniques that project managers can use to compress the schedule:

  1. Fast tracking - Perform critical path tasks in parallel that were originally planned sequentially. It usually increases risk and often results in rework.
  2. Crashing - Assign additional resources to critical path tasks while maintaining scope. Almost always results in increased costs.

As project managers, we forget a very important intangible: resource calendars affect project scheduling. Public holidays or time off in a resource's calendar makes those days non-workdays and therefore, MSP skips them altogether.

If you follow the basic steps explained in this article you should not have major problems with scheduling and resource levelling. Don't you think so…? Well, I do.


Jorge Dominguez wrote the article "Project Scheduling And Resource Levelling" and recommends you visit www.Expiriance.com for more information about project management.

What's Next?

You may also be interested in