PRJ4: Allocating, Scheduling, and Leveling Resources |
Q113993
The information in this article applies to:
-
Microsoft Project for Windows, version 4.0
-
Microsoft Project for the Macintosh, version 4.0
SUMMARY
This article discusses how Microsoft Project allocates and schedules
resources and provides suggestions for how best to resolve resource
conflicts.
USING THE PLANNINGWIZARD OPTION TO HELP YOU ALLOCATE RESOURCES
Microsoft Project 4.0 for Windows introduces PlanningWizard, an intelligent
assistant that monitors your actions as you work in Microsoft Project. The
PlanningWizard helps you create better schedules by giving you tips on how
to work more efficiently and by helping you identify and correct potential
problems. To turn on the PlanningWizard option, click Options on the Tools
menu and click the General tab. On the General tab, under PlanningWizard,
click to select the Advice From PlanningWizard check box (and make sure
that the Advice About Scheduling check box is selected).
ALLOCATING RESOURCE WORK
When you assign a resource to a task, you need to specify which resource
you are using and how many units of that resource you want to allocate to
the task. When you specify resource units, you allocate the workload for
that resource, and you also allocate a percentage of time that the resource
is available.
HOW THE WORKLOAD IS CALCULATED BASED ON THE UNITS YOU SPECIFY
When you first assign a resource to a task, Microsoft Project determines
the amount of work assigned to the resource, using the following formula
involving the task duration and the number of units allocated to the task:
Resource Work = Task Duration x Resource Units
For example, if you create a task with a duration of 2 days (using the
default setting of eight hours per day) and assign a resource at .7 units,
Microsoft Project will calculate 11.2 hours of work for the resource.
HOW THE AVAILABILITY OF A RESOURCE IS CALCULATED
When assigning a resource to a task, Microsoft Project determines the
available time for that resource using the following formula involving the
units assigned to the task:
Available Time = Unit x Each Resource's Calendar Hours Per Day
If the resource's calendar in this example operates on a four hour-per-day
calendar, the resource will be scheduled to work 70 percent of four hours
per day, or 2.8 hours per day, to complete the work assignment of 11.2
hours.
By specifying the number of resource units assigned to a task, you
direct Microsoft Project to allocate the equivalent percentage of that
resource's available time (determined by the resource's calendar) to
that task. The following example illustrates this method of allocating
resources:
If you assign 0.7 units of resource Scott to task 1, you are
directing Microsoft Project to allocate 70 percent of Scott's
available time to task 1. This leaves a maximum of 30 percent, or
0.3 units, of Scott's available time to be used for work on other
tasks. If Scott is working a four-hour day, this will allow him to do
2.8 hours of work on task 1 and 1.2 hours of total work on all
other tasks in one day.
Unless you specify differently, Microsoft Project assigns a default of
1 unit, or 100 percent, for each resource assignment.
Distinguishing Standard and Elapsed Time
One thing to keep in mind when you assign resources is the difference
between "standard" and "elapsed" duration.
Standard Duration: Standard duration refers to available working
times only. Because these times may vary from one project to another,
Microsoft Project allows you to change the default values for standard
duration from project to project. To specify the default values for
hours per day and hours per week, click Options on the Tools menu
and click the Calendar tab. Unless otherwise noted, all examples in
this article will use the following default values for hours per day and
hours per week:
1 day (1d) = 8 hours
1 week (1w) = 40 hours
Elapsed Duration: In Microsoft Project, an elapsed duration refers
to a continuous block of time; that is, there are no breaks for
nonworking periods such as overnight hours or weekend days.
1 elapsed day (1ed) = 24 hours
1 elapsed week (1ew) = 168 hours
When you enter a task with an elapsed duration, Microsoft Project
automatically fixes the task's duration (that is, the resource will no
longer affect the task's duration).
For more information about fixed-duration tasks, search on "Fixed-
Duration Scheduling" in Microsoft Project Help.
With the difference between standard and elapsed duration in mind,
look at the following examples of work calculated with the resource
work formula:
Task 1 has a duration of 2 elapsed days (2ed). If you assign 0.5 units
of resource Adrian to this task, Adrian's work will be:
Adrian's work = [(2ed) x (24h/ed)] x .5 = 24h
Task 2 has a duration of 2 days (2d). If you assign 0.5 units of
resource Adrian to this task, Adrian's work will be:
Adrian's work = [(2d) x (8h/d)] x .5 = 8h
In the elapsed duration example, because the duration of the task is
automatically fixed, the task will be scheduled from 2/28/94 to
3/2/94; however, Adrian will be assigned to work from 2/28/94 to
3/7/94. When this situation occurs, you will receive one of the
following error messages:
<Graphic deleted>
Figure 1 - Resource assigned outside of dates for task error message
-or-
<Graphic deleted>
Figure 2 - Planning Wizard dialog box
The PlanningWizard allows you to cancel the scheduling conflict or
continue. If you continue, Microsoft Project allows the scheduling conflict
and will not notify you of this particular conflict again.
To resolve this scheduling conflict, change the duration to 6d, clear
the Fixed option, or manually reassign the work for the resource to 2d.
WORKING WITH FIXED-DURATION TASKS
When a resource assigned to a task is scheduled to work at some time
before the Scheduled Start or after the Scheduled Finish of the task,
you will receive the error message "Resource is assigned outside of
the dates for task <n>." This error message occurs most often with tasks
of fixed duration, as in the following example:
Task 1 has a fixed duration of 2ed with a Scheduled Start of
1/24/94 8:00 AM and a Scheduled Finish of 1/26/94 8:00 AM. If you
assign resource Khoa to this task, letting Units default to 1 and
letting Microsoft Project calculate Khoa's work, Microsoft Project
allocates 48 hours of work to Khoa (2ed x 24h/ed). If Khoa's
calendar shows him as being available to work eight hours per day, it
will take Khoa six working days to complete this 48 hours of work.
Because the task itself has fixed duration and only spans two days,
Khoa must be scheduled past the end of the task to complete all
this work. Microsoft Project warns you of this problem with the
message "Resource is assigned outside of the dates for task 1 for
Project 1.
To resolve this problem, reduce Khoa's assigned work, increase his
daily calendar working hours, or lengthen the duration of the task.
VARYING A RESOURCE'S WORKLOAD
You can vary a resource's workload over the duration of a single task
in Microsoft Project. That is, you can assign a given percentage of a
resource to one portion of a task and a different percentage to a
different portion of the same task. To vary the workload of a
resource, you can break up the task, or you can delay the resource.
Example of Breaking up a Task
The following example illustrates how to break up the task into a
series of linked tasks with different resource units assigned to each
task, and then how to create a summary task to represent the span of the
individual tasks.
Tim is going to work half-time for the first three days of a 5-day task
and full-time for the remaining two days. To vary Tim's workload
appropriately, you must break this 5-day task into one 3-day and
one 2-day task. If the 5-day task is Write Specifications, you
could create a schedule similar to the one in Figure 3.
<Graphic deleted>
Figure 3 - Varying a workload over a series of linked tasks
NOTE: In the example, Phase 1 and Phase 2 have been linked finish-
to-start, and Tim has been assigned to Phase 1 with Units=0.5 and
Phase 2 with Units=1.
Example of Varying a Resource's Workload to Delay the Resource
Tim is going to work half-time for the first three days of a 5-day task
and full-time for the remaining two days. You can add delay to the
resource using the Task form and format it to Resource Schedule. Delay
represents the amount of time between the start of the task and when
the resource should start. Tim will be assigned twice to task 1
(Write Specifications). In the first instance, he will be assigned
with Units=0.5 and Work=12h. In the second instance, he will be
assigned with Units=1, Work=16h, and Delay=3d (as shown in Figure 4).
<Graphic deleted>
Figure 4 - Varying a workload over a task using delay
When assigning resources to a task, Microsoft Project calculates
the duration based on the resource with the largest amount of work.
If you have a task that is 5 days in duration and you vary a resource's
work using delay, Microsoft Project calculates the duration as 3 days, but
the Gantt Chart shows the task spanning five days.
SCHEDULING RESOURCE WORK
Once it has calculated the amount of work for a resource assignment,
Microsoft Project must determine when the work is to be scheduled.
When making the resource assignment, Microsoft Project first tries to
make changes to the Scheduled Start and Finish of the task if the
resource's calendar and the task constraint allow the changes; for
example:
The project Start date is set to 1/20/94 8:00 AM (by clicking
Summary Info on the File menu); the project uses the default
Standard calendar, and the project is scheduled from the project
Start date. If you have edited the Standard base calendar to make
1/20/94 and 1/21/94 nonworking days, any As Soon As Possible tasks
will normally be scheduled to start on 1/24/94. If Jeff is assigned
to one of these tasks, task 1, for example, and Jeff's Resource
Calendar has been edited to allow him to work on 1/20/94 and
1/21/94, the Scheduled Start for task 1 will change to 1/20/94 as
soon as Jeff is assigned.
So, even if tasks are not normally scheduled on certain days, as
determined by the project base calendar, Microsoft Project will
schedule work on those days if a resource is available. Scheduling
tasks according to resource availability results in tighter, more
efficient project schedules.
If a task has any constraint other than Must Finish On or Finish No
Earlier Than, Microsoft Project next sets the Scheduled Start for the
resource as close as possible to the Scheduled Start for the task,
taking into account any conflicts with the resource's calendar, as in
the following example:
Ken is a resource that works 8:00 AM-5:00 PM M-F. If task 1 has a
constraint of Must Start On 1/20/94 8:00 AM and Ken is assigned to
task 1, Ken will normally be scheduled to start working on task 1
at 8:00 AM on 1/20/94. If, however, you change Ken's resource calendar
to make 1/20/94 a nonworking day, Ken will be scheduled to
start at the beginning of his next available working day. In this
example, Ken would be scheduled to start on task 1 at 8:00 AM on
1/21/94.
In the Task Entry view (that is, a Gantt Chart on top and the Task
Form below), the schedule will resemble Figure 5:
<Graphic deleted>
Figure 5 - A Task Form with the Resource Schedule format in the Task
Entry view
In the Task Form, you can see the Scheduled Start and Scheduled Finish
for each resource on a task by clicking Details on the Format menu,
and then clicking Resource Schedule.
Once the Scheduled Start for the resource is determined, the amount of
scheduled time required to complete the assigned work is computed and,
taking into account any nonworking hours set in the resource calendar,
is used to find the resource's Scheduled Finish. The amount of
scheduled time required is determined using the following formula:
Scheduled Time = Resource Work/Resource Units
For example, if Ken is assigned to task 1 with three hours of work at 0.5
units, the amount of time needed to complete the three hours of work is 6h
(that is, 3h/0.5). So, assuming Ken is starting at 8:00 AM on 1/21/94,
his Scheduled Finish on task 1 will be six working hours later, or 3:00
PM. His working hours are calculated as follows:
1/21/94 8:00 AM-12:00 PM, 1:00 PM-3:00 PM=6hrs
If you assigned Ken 6.5 hours of work on task 1, again at 0.5 units,
you would produce a required scheduled time of 13h (that is, 6.5h/0.5).
With Ken starting at 8:00 AM on 1/21/94, his Scheduled Finish on task
1 will be 2:00 PM on 1/24/94. His working hours are the following:
1/21/94 8:00 AM-12:00 PM, 1:00 PM-5:00 PM=8hrs
1/24/94 8:00 AM-12:00 PM, 1:00 PM-2:00 PM=5hrs
Thus, the total is 13 hours (8hrs + 5hrs).
NOTE: Because 1/22/94 and 1/23/94 fall on a nonworking weekend, Ken
is scheduled for the next available working day, 1/24/94.
If the task has a constraint of Must Finish On or Finish No Earlier
Than, Microsoft Project first sets the Scheduled Finish for the
resource as close as possible to the Scheduled Finish of the task,
taking into account any conflicts with the resource calendar. The
Scheduled Start for the resource is then calculated using the same
principles outlined above, working backward from the Scheduled Finish.
LEVELING OVERALLOCATED RESOURCES
The process of resolving resource overallocation is called "resource
leveling."
What Is an Overallocated Resource?
A resource is said to be "overallocated" if at any time it is assigned
to work beyond its capacity (where the capacity is determined by the
Max Units as specified on the Resource sheet for that resource). When
the total number of resource units allocated to tasks exceeds the Max
Units for the resource, Microsoft Project will indicate that the
resource is overallocated.
You maintain the most control and obtain the most efficient schedules
by identifying and resolving these resource conflicts manually as they
arise. As an alternative, you can have Microsoft Project resolve any
resource conflicts automatically using the Resource Leveling option.
For more information about leveling resources automatically, see the
"Leveling Resources Automatically" section of this article.
How Does a Resource Become Overallocated?
There are two ways a resource can become overallocated: one way is if
more units of the resource are assigned to a single task than are
available in Max Units, and the other way is if the total units
assigned across a number of concurrent tasks exceeds the Max Units.
LEVELING RESOURCES MANUALLY
The following examples discuss ways your resources may become
overallocated and how you can manually resolve these overallocations.
If More Units of the Resource Are Assigned to a Single Task Than Are Available in Max Units
Microsoft Project allows you to assign more resource units than are
actually available to a single task without issuing a warning message.
This type of overallocation will often happen in situations where a
resource-driven task needs to be completed in an amount of time that
cannot be satisfied by the available number of resources, as in the
following example:
Task 1, Paint Walls, must be done in one day to avoid delaying the
project. There are 12 hours of work involved in completing this
task but only one painter is available, and she works an 8-hour
day. To complete task 1 in one day, you must assign 1.5 units of
resource Painter to the task. However, because the maximum number
of units available for Painter is 1, the resource is overallocated.
NOTE: If you encounter a similar situation when you are leveling
resources automatically, Microsoft Project will generate the following
error message
<Resource name> is assigned at more than the resource's maximum
units on <task> on <date> in <project>.
where <resource name>, <task>, <date>, and <project> are the specific
resource, task, date, and project you are working with.
To manually resolve this type overallocation, use either of the
following methods:
- Increase the Max Units field (in this example, that means you must
hire another painter).
-or-
- Reduce the units of Painter on task 1 to 1. (In this example,
another solution is to assign the painter to four hours of overtime
work to allow the task to be completed on schedule.)
If the Total Units Assigned Across a Number of Concurrent Tasks Exceeds the Max Units
If a resource is assigned to a number of current tasks and the sum of
the resource's allocated units for all these tasks is greater than the
resource's Max Units, the resource is overallocated. In the following
example, all tasks are scheduled to begin on 1/24/94. Resource Tami
has a Max Units of 1 and is assigned to task 1 at 0.6 units, task 2 at
0.5 units, and task 3 at 0.8 units. The units of Tami assigned on
1/24/94 are greater than 1 (0.6 + 0.5 + 0.8 = 1.9); therefore, Tami is
overallocated on this day.
<Graphic deleted>
Figure 6 - Example of overallocated resource
Similarly, on 1/25/94, 1.1 units (0.6 + 0.5) of Tami are assigned, so
she is overallocated on this day as well.
To resolve this type of overallocation, you can increase the Max Units for
the resource or decrease the number of units assigned to individual tasks
as before; however, because the units are assigned to more than one task in
this case, you can also decrease the number of units assigned at one time
by rescheduling one or more of the tasks involved in the overallocation. In
this example, you could link all three tasks finish-to-start to prevent the
tasks from overlapping, you could manipulate the order of the task's
schedules by adding Constraint Dates or Delay, or you could delay the
resource to compensate for the other days on which Tami is overallocated.
TIP: A convenient way to identify which tasks are contributing to a
resource overallocation is to use the Resource Allocation View (see
Figure 6). This view is a dual-pane view with Resource Usage in the
top pane and the Delay Gantt Chart in the bottom pane. To use this
view, click More Views on the View menu, then click Resource
Allocation, and click Apply.
<Graphic deleted>
Figure 7 - The Overallocation view
When you select a resource from the top pane of the Resource Allocation
view, the Delay Gantt Chart in the bottom pane will display only those
tasks that have the selected resource assigned to them. From this view, you
can scroll the timescale in the Delay Gantt Chart to see which dates
resource overallocations occur on, and which tasks contribute to the
overallocation.
LEVELING RESOURCES AUTOMATICALLY
Microsoft Project attempts to resolve overallocations, or resource
conflicts, by rescheduling tasks that contribute to the overallocations. It
does this by delaying some of these tasks, as in the following example:
Task 1 and task 2 are both 1-day-duration tasks that start on
1/24/94 8:00 AM. The constraint on both tasks is As Soon As
Possible, and 1 unit of resource Glenn (Max Units = 1) is assigned
to each task. Because there are 2 units of Glenn assigned at the
same time on 1/24/94, this resource is overallocated. To resolve
this conflict, Microsoft Project can add one elapsed day (1ed) to the
Delay field of either task. For example, if 1ed of Delay is added
to task 2, it will then be scheduled to start on 1/25/94 8:00 AM
and will no longer cause a conflict with the resource assignment on
task 1.
To see how much delay has been added to a task, use the Delay Gantt
view (Figure 8):
- On the View menu, click More Views.
- Click Delay Gantt, and click Apply.
<Graphic deleted>
Figure 8 - The Delay Gantt view
If Microsoft Project is unable to resolve all resource conflicts, you
will receive the following error message:
<Graphic deleted>
Figure 9 - Cannot Resolve Overallocation error message
Reasons Microsoft Project May Not Be Able to Successfully Level Your Resources
Microsoft Project cannot delay tasks that have any of the following:
- An actual start date not equal to "NA"
-and/or-
- A constraint other than As Soon As Possible
-and/or-
- A priority of Do Not Level
Because Microsoft Project attempts to level resources by delaying
tasks, if your project contains many tasks that meet these conditions,
Microsoft Project may not be able to resolve all the resource
conflicts. You should evaluate any tasks that have these attributes
and change them, if possible, to give Microsoft Project more
flexibility when it attempts to level resources.
You can quickly determine if any tasks meet these conditions by using
appropriate filters. For example, to use the predefined constrained filter
to find any tasks that have constraints other than As Soon As Possible,
follow these steps:
- From either the Task Sheet view or Gantt Chart view, click Filter
For on the Tools menu, and then click More Filters.
- In the More Filters dialog box, select the Tasks With Fixed Dates
filter, and click Apply.
Microsoft Project will display only tasks that have constraints other
than As Soon As Possible and Actual Start dates other than NA.
To display tasks that have an Actual Start date set, but have not yet
been completed, use the In Progress Tasks filter.
Microsoft Project cannot resolve a conflict that is caused by either
of the following:
- Too many resource units assigned to a single task. If a resource
has, for example, a Max Units value of 1, and 2 units of the
resource are assigned to a single task, it is not possible to
resolve this overallocation by delaying other tasks. This type of
conflict must be resolved manually by either increasing the Max
Units of the resource or by reducing the number of units assigned
to the task.
-or-
- The Delay Only Within Slack option has been selected (by clicking
Resource Leveling on the Tools menu). In this situation,
Microsoft Project may not be able to delay some tasks enough to
remove all the conflicts. To avoid this problem, clear this option
and then try to level your resources again.
What You Can Do to Help Microsoft Project Successfully Resolve Resource Conflicts
- In general, it is best to set the Leveling option to Manual in the
Leveling dialog box (click Resource Leveling on the Tools menu).
When you want Microsoft Project to level your resources, you can
click Resource Leveling on the Tools menu, and then click Level Now.
NOTE: When you click Level Now, Microsoft Project will
add delay to tasks only if necessary; it will not remove any
previously added delay. To remove any previously added delay,
select the Automatically Remove Delay option in the Resource
Leveling dialog box before you try to level your project.
- When you add a task with an As Soon As Possible constraint to a
project that is already in progress, do either of the following:
Manually add enough delay to these tasks to bring their Start
dates up to the Current date.
-or-
On the Tools menu, click Options, and then click the
Schedule tab. On the Schedule tab, set the Change New Task Start
On option to Current Date. This prevents the tasks from
conflicting with other tasks already in progress (Microsoft
Project cannot always resolve conflicts with in-progress tasks).
- Always put the most flexible possible constraint on your tasks. For
example, use a Finish No Earlier Than constraint instead of a Must
Finish On, if possible. This allows Microsoft Project more
flexibility when it tries to reschedule tasks. Use the As Soon As
Possible constraint whenever possible.
- Use task relationships as much as possible, instead of leveling, to
establish the initial ordering of tasks. For instance, if you have
a resource assigned to two tasks at the same time, it makes more
sense to link the two with a Finish-To-Start relationship. Linking
this way will automatically eliminate any conflict between the two
tasks and will not add any extra delay between the tasks as
leveling does.
- If Microsoft Project cannot resolve all conflicts when leveling
across all resources at once, try leveling one resource at a time.
To do this, select a resource view, such as the Resource Sheet, and
select a single overallocated resource. When you click Resource
Leveling on the Tools menu and then click Level Now, Microsoft
Project will ask you if you want to level the entire resource pool
or the selected resources only. Choose to level selected resource
only and see if this produces better results. You can then repeat
this procedure for any other overallocated resources.
Remember that although resource leveling is a powerful feature of
Microsoft Project, it is only helpful in providing a rough ordering of
your project tasks. You will obtain tighter schedules and maintain a
higher degree of control over your project if you manually resolve as
many conflicts as possible before asking Microsoft Project to resolve
the rest.
Additional query words: