Wednesday, October 17, 2007

Don't use task dependencies to model resource constraints

Lately, I've been noticing a tendency for planners in my organization to model resource constraints by entering values in the predecessors column of an MS Project plan.

For example, if resource R1 is assigned to tasks T1 and T2, the planner will model a dependency between the tasks to "make the dates come out right". They understand that a resource can't be asked to work on two tasks simultaneously, so they want to spread out the work and schedule the tasks one after the other.

But just because a resource is assigned to two separate tasks does not mean that there are dependencies between the two tasks. In fact, it is not necessary to introduce task dependencies in order to level resources.

Here is the basic workflow I use when planning a project:

  1. Define the activities - What needs to be accomplished in order for this project to be successful?
  2. Sequence the activities - In what order - if any - do these things need to happen?
  3. Identify activity dependencies (AKA "predecessors" ) - Is it necessary for one activity to complete before another can begin?
  4. Estimate activity effort - Given known resource capabilities and constraints, how long will it take to complete this activity?
  5. Assign resources to specific activities.

You'll notice that sequencing project activities and identifying dependencies are completely independent from assigning resources.

For those who don't know, the idea of not over-scheduling is called resource leveling. You can use the MS Project resource leveling function, and your start and end dates will automatically be calculated for you. Here's how it works:

1. Create a new project in MS project. Go to Gantt chart view and make sure you can see the Work column (Insert --> Column, then enter "work").

2. Enter 3 tasks called Task 1, Task 2, and Task 3. Assign work efforts of 8 hours to each. Do not enter any predecessor information.

3. Assign resource R1 to each of the 3 tasks.

In the Gantt chart view you will see that R1 is assigned to complete all three tasks on the same day. This is the point where planners go wrong. In order to help out ol' R1, they enter dependencies between the three tasks. While this does have the effect of spreading out the work, it also introduces an incorrect model of the task network.

Rather than enter predecessor information, go to Tools --> Level Resources and click the Level Now button. You'll see the tasks spread out to a more managable schedule. The stalwart R1 will thank you, and as someone who reviews and approved project plans, I'll thank you as well.


Anonymous Hend Ismail said...

Thank you for info. i will level my resources from now on :)

3:45 AM  
Anonymous Anonymous said...

Please do that without resource leveling ! That is very difficult. Thats what I tried to do.

1:59 AM  
Blogger michael said...

If you don't use the tool to level resources then you must do it by hand, and for anything more than a trivial project plan, that is much harder!

8:08 AM  
Anonymous Anonymous said...

Just found this and still have issue where after resource leveling, I have three or four tasks that are assigned to same person, starting on the same day, but ending on the right times. So for those that are glancing at the project, they see the resource being double/triple booked.

Task 1 3d 1/1 1/4 Resource1
Task 2 2d 1/1 1/6 Resource1
Task 3 3d 1/1 1/9 Resource1

Leveling the entire project and/or resource has been to no avail.

7:54 AM  

Post a Comment

<< Home