Resource Leveling. The process of making sure that none of your resources are scheduled to work MORE hours than humanly possible! All PM’s SHOULD do it. Most don’t and the ones that do, don’t enjoy it very much! Project has a Resource Leveling feature that will, by the letter of the definition, do just that: It will make sure that none of your resources are scheduled to work more than their Max Units value says they can for a given time period. It will move assignments out in time to make sure that any assignments that overlap do not cause overallocations. It will even take several different criteria into account when deciding which assignments should be moved. But let’s not forget that it is a formula. It is not smart. It just does what it is told to do.
For what it does it is a fine feature. It is often a good start to a more manual process of leveling your resources. It gives you A solution but likely not THE solution and certainly not the ONLY solution. In my mind relying totally on the built in leveling function is a little like a carpenter relying on his hammer to decide where to drive nails.
Think about the problem. The schedule you have created for your project, as it stands right now, has several of your resources doing more work than is possible according to their Max Units field and their calendar settings. Delaying assignments (moving them OUT in time), which is the only thing that the Resource Leveling feature will do, is only one possible option. Others include ‘compelling’ your resources to work overtime, starting some tasks earlier, replacing the overallocated resource with another one that is not as busy or even assigning more resources to a certain tasks to make it take less time. Technology is great, technology is wonderful, I love technology. But do I trust it to make these kinds of complex decisions for me? No. How would Project even start to know which resource is the best choice to replace the busy one? Sure fields like Outline Codes in Project Server that hold skill information are a start but this is a decision that is best left up to a human brain.
The relationship between people and software/computers is often a strange thing, full of contradictions. I know people that don’t trust Microsoft enough to install the latest hotfixes in Windows but these same people are willing to let the Leveling algorithm in Project decide for them the schedule and resource allocation on their $200,000 project! The OnStar car navigation system is a very cool thing. It has never given me wrong directions when I have used it. But would I let it steer the car for me? Umm, No. Like I said before, the leveling features in Project great for as far as they go and for what they were programmed to do but in all but the most simple projects they are likely NOT going to give you the BEST resource scheduling solution.
I like to say that if Project COULD provide the best solution for resource scheduling then your boss would not need you because the software would be smart enough to do the rest of your job too! Finding the right solution for how to schedule your resources is YOUR job. Project will provide you will TONS of data about what tasks your resources are assigned to, how much work they have to do in a given time period and how over or under allocated they are. It is up to you to use this information to solve your problem. You are driving the bus. You are swinging the hammer. Don’t let the hammer swing you. :-)