I was recently asked a very interesting question from a user of MS Project Server 2007:
“How can I assign a resource to a task that I’ve allotted 10 days to complete, but have the team member think they have to complete it the first 5 days of the task’s duration?”
Pretty sneaky, but still an excellent question! What this person essentially needed to know was how to add a buffer to a task. The goal is to allow the work on a critical task to slip for a short period of time without impacting any of its successor tasks. Of course once the buffer is used up, then subsequent tasks in the schedule may be impacted.
Fortunately, I’ve come across this one before so I had an answer ready. If you need to add task or project buffers to your schedule, read on!
How to create a buffer:
To describe how to add a buffer, I’ll use a simple example of adding a task buffer although the same technique can be used to add a buffer to a project.
For the task in need of a buffer, a new task will be inserted which will represent the buffer. It is probably a good idea to insert this buffer task right after the detail task so that we can easily keep our eye on it. This buffer task should have the same predecessor and successor relationships as the detail task. In addition, the buffer task will have a Finish to Finish (FF) relationship with the detail task.
For example:
Let’s say I have a detail task “Code Module” that is dependent on completion of the “Design Module” activity. I also have a “Test Module” task that cannot start until coding is completed. The Duration for all of these tasks is 5 days each. I inserted these three tasks into my project schedule, input the Durations, and created the relationships. Here is the result:
Now, I need to add the buffer for my Code Module task. I will insert a new task below my Code Module activity called Code Module Buffer. I will also create the links as described above. We need to have the predecessor relationship in place so that if the Design Module task slips, both the Code Module activity and its associated buffer will adjust accordingly. Having the Finish-to-Finish relationship in place between the detail task and the buffer task ensures that once our buffer is used up, our subsequent Start and Finish dates for successor tasks will adjust accordingly. This last part also requires that the successor relationships for the Code Module activity apply to the buffer task as well.
Whew! That seems like a lot of links, but it’s really pretty simple as you can see here:
You may have noticed that I have not yet entered a Duration value, or buffer amount, for my buffer task. This of course is the next step! Determining what the buffer amount should be is a topic best saved for another blog post, so for now let’s just assume that I would like to have 5 days of buffer. Since my Code Module task has a Duration value of 5 days, the total Duration of my buffer needs to be 10 days. This allows 5 days for the actual coding activity and 5 days for the buffer, as shown here:
After I change my duration for the buffer task, you can see my Finish date for that task has pushed out by 5 days. I now have my 5 day buffer! In addition, my dependent tasks have also adjusted to accommodate the buffer.
Managing the Buffer:
We now have our buffer set up and it’s time to begin executing our project. The first question we need to ask is, what happens if the resource takes more than the 5 days to complete the task? For example, what if our Duration grows from 5 days to 9 days? Well, let’s take look:
The convenient Change Highlighting feature of MS Project 2007 (isn’t it great!?) shows that the only thing impacted by this slippage is the Finish date of the Code Module activity. Because we have our built-in buffer, the scheduled dates for the subsequent activities have not been impacted. Yet.
Now, what happens when the Duration for the Code Module activity grows beyond the allotted buffer amount? What if it takes 12 days? I bet you can guess the answer, but let’s take a look anyway:
That’s right! Because we used up our buffer, and then some, the Start and Finish dates for our successor tasks have shifted. In this basic example, all of our tasks are on the critical path, so our project finish date has also been delayed.
There is one more important question to ask regarding managing our buffer. That is, what happens if the resource completes the work without using up the buffer? Because we have built this buffer into our schedule, the Start of any successor tasks is now unnecessarily delayed. This one will require some active schedule management on your part but the solution is still pretty easy! Once the task is complete, you can “close the buffer” by simply setting the Duration for the buffer task equal to the Actual Duration of the detail task and then marking it as 100% complete.
To demonstrate this example, I have assumed that it took our hard working resource only 7 days to complete the Code Module task. After entering in the Actual Duration, Duration, and %Complete values, here is what we have:
Good news! Our Test Module activity can now begin earlier than originally scheduled because we didn’t use our entire buffer. Again, because all of our tasks are on the critical path we are now on track to finish our project earlier than planned. Our stakeholders will definitely be happy!
Recent Comments