One of the core skills of the project manager is to provide realistic estimates of how much time a project will take. A highly skilled project manager should also be able to calculate how the availability of resources will affect a project’s timetable.
There is a technique in Microsoft Project that can help you estimate project timetables without invoking as much black magic as you might think. The technique is called generic resourcing, a tool that makes it easier to see how the availability of differing types of resources can affect project deadlines. Here is how using generic resourcing can help you analyze project resources and keep your project and budget on target.
Step 1: Work estimates and task links
Using generic resources is similar to using ordinary project management techniques—they both require work estimates to be effective.
Before you can begin, you need to develop a reasonably accurate breakdown of your task structure with work estimates as accurate as possible. Without these estimates, the resource analysis using generic resources will not only be inaccurate but may also jeopardize the success of the entire project.
Let’s start with an example of a very simple development project plan. This project has only four tasks. Figure A shows these tasks and their work estimates. Note that we do not have duration estimates. In this analysis, we’ll let the assignment of resources determine the duration of our tasks. We do, however, have our links between tasks established.
In our example, the Data Modeling task needs to occur before the Architecture task can start, and both the UI design tasks need to wait for the completion of the Architecture task before they are launched. Establishing these links is another requirement for the duration analysis to be accurate.
|This project includes the basic schedule with work estimates and task links in place. It is ready to move to the next steps of the generic resource analysis.|
Step 2: Add generic resources
Now you need to add the generic resources. Generally, a skill-based resource model is best, but you could also add resources by location, department, or some other criteria that fits your situation.
For instance, if all the tasks in your project required mostly the same set of skills but were dispersed geographically, then you could use generic resources that correlated to specific regions.
For our example, we will use these skills:
- C++ programmer
- VB programmer
- Java programmer
To estimate costs, we will enter data on rates for each resource. While your actual resource rates will vary, you can get a good estimate of the project cost if you use an average rate for your generic resources.
At this point, you will also want to make any adjustments to the calendars for the generic resources as well. For example, if you know that most of your C++ programmers typically work weekends, then you’ll get a more accurate duration from the analysis if you adjust the C++ programmer generic resource to include weekends as working days. Figure B shows the basic set of resources we will use for our example.
|This project analysis now includes generic resources with representative rates.|
Step 3: The analysis
Now we are ready to figure out how long a project will take to complete, given available resources and scheduling constraints.
Be sure the tasks in your plan are of the Fixed-Work task type. Here are the steps to do this:
- Double-click on each task to bring up the Task Information dialog box.
- Click on the Advanced tab.
- Select Fixed Work from the Task Type drop-down list. This task type will, as its name implies, keep your estimated hours fixed. This will make sure that, as you change the resource assignments, only the duration or assignment units are changed.
Once that is completed, we can proceed. First, we must assign the resources to the tasks by using the Assign Resources dialog box:
- Click on the Tools | Resources | Assign Resources menu item or use the [Alt][F10] shortcut. (The Assign Resources dialog box is useful for this exercise because it stays open and is interactive with the rest of the view. When you change the task selection, the dialog box changes to show information that pertains to the new selection.)
- Open the Assign Resources dialog box and select each task.
- Select the appropriate resource and click the Assign button. As you assign the resources, you should see the durations stay at one day while the Units values in the Assign Resources dialog box default to some very high numbers (see Figure C).
If you divide the highest number that you see in the unit values by 100, the result represents the number of resources that you would need in order to perform the estimated number of hours of work if the duration of the task was one day. Of course, this schedule is not realistic but only a starting point. You are not going to have 62.5 Java developers build a user interface in one day.
To make it more realistic, try changing the 6,250 percent for the Java developer to 100 percent on Task 4. You will get the duration of the task if you had only one developer. We see the duration change to 62.5 days.
If we assume for the same task that we have three Java developers, we could find out what duration to expect by changing the Units value to 300 percent. After doing so, we see that the duration is now shown as 20.83 days.
The same process works in reverse as well. Let’s say we know that management wants the Web Client UI design to take only 10 days. We can see how many developers would be needed to meet that requirement by changing the duration of the task to 10 days (see Figure D).
|The number of programmers required to support a 10-day project timeline is indicated on Task 4.|
After changing the duration to 10 days, we see the Units for the Java programmer changed to 625 percent. This result tells us that in order to support the 10-day duration, we will need six full-time programmers and one quarter-time programmer.
Let’s say that we know that we have three DBAs, five C++ programmers, two VB programmers, and three Java programmers. Figure E shows the project plan using these resource limitations.
You can see that after the adjustments for the limitation on resources described above, we have an overall project duration of 87.5 days.
Now let's see what happens when management says that the project needs to be completed in 50 days. We can make adjustments in the Units values of the resources in order to shrink the duration of the project. In Figure F, we see the outcome of these adjustments.
In order to support the 50-day duration, we will need five DBAs, seven C++ developers, five VB developers, and five Java developers. Of course, these numbers may be unrealistic but will have to be taken into account on a case-by-case basis.
For example, some development tasks are best done by one or maybe two developers and would suffer if more than that number of developers were involved. The coordination efforts would be too cumbersome. Make that call as you go.
Now you have the tools to use Project to help you estimate project duration and resource usage. Using these tools, you will more accurately predict how your projects might proceed, and they will also help you make a case to management as to why that 20-day duration might not be realistic, based on the number of resources you have available.
Tell us about your experiences with Microsoft Project. Is this generic resource technique accurate? What would you recommend? Post a comment or send us a letter.