The critical path of a project is defined as the sequence of tasks that have no slack. If any of the tasks in the critical path takes longer or is delayed, then the entire project is impacted. This situation gets a bit more complex in real life when resource allocation is considered.
If the resource allocated to the next task in the critical path is busy or unavailable, then the task must wait until that resource becomes available. This delay in the critical path affects the duration of the project, and is determined by the sequence of available resources instead of the sequence of tasks with no slack. This sequence of tasks is called the critical chain and for obvious reasons should be the primary focus for the project manager instead of the critical path. The key to manage critical chains in Project is to level resources.
- There are two goals when levelling resources in a schedule. The first one is to ensure that resources are not over-allocated. A person cannot do more than a day’s work in a day, therefore if allocated to multiple tasks, the task durations must be changed to distribute the available effort into the required work.
- The second goal is to manage task dependencies that are created by resource availability. These dependencies are dynamic and interdependent, so changes in one part of the plan may drive changes elsewhere; they need to be treated as a whole and changed as a group. This is a complex task and its operation is controlled by setting levelling parameters. Levelling is also controlled by resource availability dates and task constraints.
Resource levelling parameters
Automatic levelling should be selected unless this causes a big overhead when editing the plan, or the schedule is adequate and ready to be baselined. In Project the ‘Clear levelling values before levelling’ flag should be selected to make sure that levelling is also performed when removing resources.
Selecting a levelling period produces an average allocation for the period where peaks are compensated with troughs, relying on the ability of the project manager and the individual resource to balance his or her workload. The choice of levelling period is critical; too short requires a lot of detail and micro-management. Too long relies on the ability of the project manager and the resource to balance workload to meet priorities. A good starting point is weekly.
The software resolves over-allocations by shifting tasks to periods of resource availability. The order in which tasks are selected for shifting can be by ID sequence or following critical paths (standard). The later can be modified by assigning a priority to the tasks. A high relative priority means that the task should not be shifted if possible. A top priority of 1,000 disables shifting for that task.
It is also possible to level only the resources within the critical path. This produces a sub-optimal result that can be manually adjusted by adding more resources to other critical chains to remove over-allocation.
Adjusting individual assignments and splitting tasks produce a better levelling result but requires the project manager to manage what resources do on a day-to-day basis, according to the schedule instead of managing by deliverables. This can be difficult when the work is new and the detailed task estimates not very accurate.
Although both OmniPlan and Project have levelling capabilities, they produce different results. The same project plan shown in the first article is shown in Project:
It can be seen that the levelling has optimised the use of time by splitting Task 2. This results in a shorter schedule but assumes that Task 2 can finish after Tasks 3 , 4a and 4b.
The operation of levelling is controlled by allowing tasks to split and setting priorities among other parameters.
The project schedule is an unreliable predictor of the end date if resources have not been levelled after being allocated to tasks. Resource levelling will ultimately decide the project duration, and should be repeated every time task dates, duration or resources change when re-planning or updating progress.