Some of you may have noticed I like to make the odd “Cultural Reference” in my blog articles. When running training courses I sometimes make reference to some features only running to 10 not 11 which gets a laugh from those of a certain age. Have you got this blogs cultural reference* yet?
In this Blog I want to focus upon the project Baselines and how we can make use of all 11 Baselines that are available, that being THE BASELINE and then the ten additional versions of the baseline made available in Microsoft Project.
First off it is worth noting that there are a lot of users out there who never Baseline their schedule which is really missing a key feature of the solution. Baselines give us the opportunity to measure how our project is performing against original expectations. Setting or saving the Baseline captures 5 values for every single task, milestone, summary task and the entire project – the five baseline values are:
- Baseline Start
- Baseline Finish
- Baseline Duration
- Baseline Cost
- Baseline Work
By capturing this information and then updating the schedule you can compare “Actuals” against what was planned “Baseline” and understand where differences have arisen. If things go according to plan big deal they are supposed to. As Project Managers we need to understand what did not go to plan and more importantly why it didn’t go to plan so we can learn from the experience and look to improve in the future.
Recording and updating progress in the schedule also gives us the opportunity to see how we are getting closer to achieving our objectives. All too often people don’t tackle challenges as they appear to be overwhelming and they don’t know where to start. The Work Breakdown Process, creation of the schedule and then its updating can overcome this inertia and enthuse people with a sense of achievement.
It is a recognised fact of human nature that we take comfort from making progress, if we can see that we are making our way towards an objective we feel happy and comforted. This is not some cosy platitude, it is based upon scientific observation. Check out the excellent book “The Rough Guide to Happiness” by Dr Nick Baylis for more insights into how making progress makes us happy.
Apart from the intended use of the Baseline how else can we exploit it? There are three areas where Baselines can deliver additional benefit, these all assume a degree of maturity in the processes being observed by the organisation.
The first approach leverages the baseline to illustrate how future vacation commitments may affect our schedules, I tend to call this approach Premature Baselining. The second approach uses “Interim Baseline” data to visually illustrate the impact of change on a schedule. The third and perhaps most mature approach makes use of “Protected Baselines”.
[ribbon_new header=”h2″ style=”light”]Premature Baselining[/ribbon_new]First off we have the phenomena of vacations or holidays, for whatever reason people always seem to book their time off work at the most inconvenient times and awareness of such situations only tends to become evident when such time off work is likely to have a significant detrimental impact on the schedule.
So how can you leverage baselines to handle this phenomena?
For most organisations there will be processes in place to handle approved time off work. Such policies may well require for such time off to be requested and approved in advance and there may also be policies in place that dictate a “minimum headcount” so for example if there is a team of 6 people and two team members are going to be off work at the same time a further member looking to book time off in the same window of time would have their request declined.
If an organisation is sufficiently mature as to use Resource Availability or Timesheet Administrative lines to capture and approve holiday/vacation requests we can then use this information to our advantage as follows.
I always advise people to plan their projects as they see fit without consideration for any resources who may have non-working time approved. Trying to plan around the vacation commitments of several team members can really cause a headache. Any compromises introduced by being considerate towards resources can be made redundant if things change.
Far better to create the schedule and then Baseline it and to then assign resources to tasks. Any slippage, tasks moving compared to the Baseline, as a result of resources being assigned at this point will be solely attributable to the resource on the first slipping task in question being unavailable to work when the task was originally scheduled to occur. The slipping tasks filter is useful in this case as it shows all tasks that are not finished, where there is a baseline finish and the current finish is later than the baseline finish. When running the filter invariably the earliest displayed task is the culprit and subsequent tasks are the victims of its delaying impact.
If the slipping task is non-critical can you allow it to be delayed? If the slipping task is critical what can you do? Armed with this information you can make some informed choices. In the case of delayed non-critical tasks you are aware that they may be delayed a bit but perhaps your schedule can accommodate such delays. For slipping critical tasks can you find someone else who is available or failing that can you tweak your schedule so that the impacted task is scheduled earlier and finishes before the person in question leaves on their holiday/vacation? If you have to accelerate such tasks you will also appreciate the need for them to be completed by a certain date and as such it may be worth assigning a FNLT constraint on the task along with a note about the impending absence of the relevant team member.
This approach leverages a key principle of Microsoft Projects scheduling engine – “Resource Driven Scheduling” which in essence dictates that people do work, people make projects happen, if they are unavailable for whatever reason they cannot perform their work as scheduled.
[ribbon_new header=”h3″ style=”light”]Change Impact[/ribbon_new]The facility for multiple baselines in a schedule provides the user with the facility to retain copies of the original baseline and to compare these with the current baseline and by virtue of “Bar Styles” illustrate how change has had an impact.
The facility to revise the baseline is a feature that we would recommend you treat with caution. In Project Server it is possible to invoke “Protected Baselines” and to make these unavailable to some audiences. More of that later.
If you encounter a significant change in your Project it is worth revising your schedule and having a new baseline to measure progress against. If you don’t revise the schedule you can cause yourself all sorts of problems.
However before revising the baseline you should keep a copy of the original baseline.
This explanation assumes Baseline 1 has not been used so far.
In the “Set Baseline” dialog box select the “Set Interim plan” radio button and from the “Copy” drop down list select “Baseline”. In the “Into” drop down list select “Baseline 1”.
You have now captured a copy of the original baseline and all 5 values have been written to the corresponding Baseline 1 fields for start, finish, duration, cost and work.
You should now edit the project schedule to reflect the significant change that has been introduced to the project.
Once you are satisfied that your schedule has been revised to accommodate the change you should now revise the baseline.
The set Baseline dialog box shows that the original baseline was previously saved on a specified date – it is “Time-stamped” and this information can be checked by others so it is not good policy to revise the baseline in order to cover your tracks!
When doing so you will be challenged as shown below – proceed with the saving of the baseline.
Your project schedule now has the original baseline and the revised baseline within it. In effect the schedule contains the original and revised versions. This in itself is quite beneficial, I have met plenty of users in the past who create “versions” of the schedule which can then be problematical especially in a Project Sever environment.
So you now have two sets of information in your schedule, what can you do with them? If there have been revisions to work in the schedule you could have project compute the change variance that has arisen – this would involve having a new Number field with a simple calculation as follows:
([Baseline Work] – [Baseline 1 Work])/60
Have the field use the formula at Summary Levels. This will deliver values equating to hours but will not show the hrs suffix that is displayed in native work fields in Microsoft Project. You could be flash and have a number field contain the following formula.
Format([Baseline Work]-[Baseline1 Work]/60),”#,##0.00″) & ” hrs”
However whilst this would look consistent when displayed with other work values in a Microsoft Project table the data generated by the formula would be unavailable for more sophisticated reporting as it is text rather than numeric data.
If the resulting values are positive the change has resulted in more work than was originally scheduled, if the values are negative the change has resulted in less work than was originally scheduled.
The values at the summary level and project summary level will show the aggregate impact of change on your schedule.
The saying “a picture paints a thousand words” may be a bit clichéd but sometimes visual representations can communicate a message more effectively than words ever could. The following of course assumes that your audience are able to assimilate the information conveyed in a Gantt chart view.
Using the Bar Styles dialog box available from the Format ribbon you can illustrate the disruptive impact of change on your schedule.
Quick hint here, for the “Show for … ” option you cannot simply click on a cell with values and copy and paste the same values in to the new row for your new bar style, however if you click in a cell for an existing bar style that shows values as follows:
Normal, Critical, Active, Not Manually Scheduled
You can then press the F2 button to “edit” this cell and then select all the text in the cell and copy it. For the “Show for … ” option for your new bar style again click in the cell, press the F2 button to invoke editing and then paste in what you copied, simples!
I have created an example as shown in the dialog box below. I have called it “Delay” – no point tiptoeing around what it displays. I have configured the appearance of my new bar using the options at the bottom of the dialog box, I have included the “Show for …” values using the technique described above. I have left the row value as 1, if you elect to show bars on rows 2-4 it will result in your Gantt chart being a lot deeper as it will display bars on two rows for every task not the default single row determined by the 1 value. In the from cell I select Baseline 1 Start and in the To cell I select Baseline Start – my bar will span the time from the original baseline start to the current baseline start.
If you want to be particularly clever you could also elect to display a text value with the bar – if you have configured a field which displays the delay as a value you could show it to the left of the Gantt bar. In my case I have elected to show just the ID number for illustration purposes. It is important to display such data to the left in order to avoid it being obscured by the current scheduled tasks bar styles.
When you click OK the Gantt chart now shows bars denoting the delay attributable to the change wrought upon your schedule.
In the example shown above there are some bars with no “Delay” bar showing. These have not been impacted by change – other tasks have a bar preceding them with the ID number shown to the left of the bar, these tasks have been impacted by change.
If you are unfortunate to have your project subjected to changes on a regular basis you at least have the facility of a further 9 interim baselines available to you to capture the impact of such changes.
Whilst it may be interesting to display the incremental impact of successive changes it is probably scant consolation for the disruption and frustration that persistent change can provoke.
[ribbon_new header=”h4″ style=”light”]Prevarication is the thief of time.[/ribbon_new]Baselines are also a powerful way to illustrate how delay has consequences when it comes to projects. All too often decisions early in a project are deferred with the prevailing mind-set being “we have plenty of time”, the deadline is out there somewhere beyond our immediate time horizon. Time however is a finite resource and allowing a culture of drift, inertia or prevarication to intrude will ultimately impact the project schedule.
By displaying the baseline you can illustrate how a delay early in the schedule has a “ripple” effect through the remainder of the schedule – running the “Slipping Tasks” filter available from the “More Filters” option can show how delay has a consequence.
For this impact to be truly evident it is wise to ensure that your schedule has a “Closed Network” whereby every task with two exceptions has at least one predecessor and one successor. The two exceptions being the first and last tasks in the schedule. By following this approach your schedule will elegantly illustrate the “domino effect” of tasks being delayed and their impact on subsequent tasks in the schedule.
When looking to ensure a closed network in your schedule avoid linking summary tasks together and use Milestones to both “tidy-up” tasks with no obvious successor and to “trigger” the subsequent stage of the schedule.
Fred Brooks, author of the seminal IT Project Management book “The Mythical Man Month” was once challenged as to why a project could get to be a year behind schedule, his laconic answer was “shucks that’s easy, it happens a day at a time!”.
So there you have it – exploiting the baseline to illustrate lack of resource availability, the impact of change and the results of being casual with regards to time and the deadline.
* For those of you still in the dark the cultural reference is to the cult film “This is Spinal Tap” and the amplifier scene.
[ribbon_new header=”h4″ style=”dark”]Next Steps[/ribbon_new]