left Image

I’ve heard from time to time people saying that LiquidPlanner “automatically buffers” their tasks.  It is easy to see how you could think this.  After all, when you put a bunch of uncertain tasks into LiquidPlanner the schedule comes out looking longer than it would using a more primitive scheduling system.  However, the added time represents real increases to the likely schedule, not added buffer.

Buffers 1

To see this let’s take a look at a sample schedule with two people, each of them working on a 2-4 day task.

You can see that Project Baby Bear’s end dates extend past the end dates for the individual tasks.  So, isn’t this project buffer?  Well, not exactly.  While it could be considered buffer for the uncertainty in the individual tasks, it is not what most project managers would consider risk buffer.  That is, it does not account for all the things in Project Baby Bear that could possible change or go wrong.  It merely takes into account the two tasks (Anne’s Task and Bruce’s Task) and the uncertainty expressed in them.

Suppose one of the risks in the project is that either Anne or Bruce gets sick (a not unreasonable project risk).  The uncertainty in the size of the tasks does not take this risk into account.  Instead, an additional risk buffer should be put in place to account for this risk.

Let’s suppose that we think that the longest that either Bruce or Anne might be out sick would be one week.  LiquidPlanner is predicting a 90% confident end date on Thursday 1/15.  So I would place the promise date for Project Baby Bear after 1/22.  Let’s make it Friday 1/23.

Buffers 2

I double click the project to edit it and set the promise date to 1/23 on the scheduling tab.  Now when I click save and the schedule updates (remember that you can continue to work while the schedule is being updated) I see that the promise date icon appears a week after the predicted end of Project Baby Bear.

Buffers 3

Alternatively, I could build into the schedule a specific task called something descriptive like “risk buffer” and use dependencies to make it follow all of the tasks in the project.  But that would be hard to maintain and really kind of overkill.