Resource leveling can be a helpful tool when scheduling individual and multiple resources in projects. Leveling reschedules tasks to resolve over allocations. It can be useful in projects that don’t have many task dependencies. By setting priorities to tasks it is possible to control and prioritize which tasks are the to be scheduled first.
Here is a simple example to help illustrate how leveling can schedule tasks. Suppose you have a set of tasks for developing documentation as follows:
The tasks are all set to auto schedule. Assigning the same resource (Simon) to each task results in over allocation icon appearing in the indicator column.
The usual way to overcome over allocations is to link the tasks together with Finish-Start relationships. But leveling offers an alternative if there no clear dependencies between tasks.
Leveling the Entire Project
This option levels the entire project. Tasks get rescheduled to the first available date that results in no more over allocations. And yet there are no links, lags or constrains added. So how does levelling actually work?
To schedule these tasks through resource leveling select Resource, Level All
We can see how Project does this rescheduling by looking at the Detail Gantt view.
Right click the View bar, select More Views, Detail Gantt
In the Detail Gantt view there is an extra column called Leveling Delay. This is a delay applied to a task measured in elapsed time (edays). This elapsed time represents a date range including non-working days (weekends). In the example a leveling delay of 14 edays for task 3 causes it to be delayed by 10 working days. Note that as there are no dependencies the only critical task coloured pink is the final task.
When you choose the Clear Leveling option the leveling delay values are reset to zero edays.
Select Resource, Clear Leveling
Choosing Entire project sets the Leveling Delay to zero for all tasks.
Resource Leveling by Priority
To control which tasks are levelled you can set a task priority value for each task. Levelling the project then schedules tasks in order of priority. High priority tasks are scheduled to be carried out before low priority tasks. A value of between 0 and 1000 can be set where 1000 is the highest priority. The default priority value for task is 500.
To set a task priority select Task, Information, Priority
Enter a value for the priority.
Inserting a priority column into the Gantt Chart makes it easier to update and view priority values.
Selecting Level All schedules tasks to take place in order of priority. (Highest first)
Sorting by Priority
After Leveling by priority it makes sence to resequence the tasks in the order that they are to be performed. This can be done by sorting by the Priority field from largest to smallest.
In the exmple suppose two more tasks added, one with a high and one with a low priority. After adding these tasks and assigning them to the same resource the levelled plan looks as follows.
It makes sense now to sort the plan either by Priority or by Start Date.
Note that to sort by Priority and to also keep the task Id numbers in sequence select View, Sort, Sort By
Choose to sort by Priority
Check that Permanently renumber tasks is ticked before selecting Sort.
Read Part 2 Resource Leveling in Microsoft Project – 2