MS Project Hacks - The Practicing IT Project...
Transcript of MS Project Hacks - The Practicing IT Project...
MS Project Hacks
Selected posts from The Practicing IT Project Manager blog
By David A. Gordon
The Practicing IT Project Manager e-Press
MS Project Hacks: Selected posts from The Practicing IT Project Manager Blog
David A. Gordon
Text and images copyright © 2014 by David A. Gordon
All Rights Reserved. This book was self-published by the author, David A. Gordon under The
Practicing IT Project Manager LLC. No part of this book may be reproduced in any form by any
means without the express permission of the author. This includes reprints, excerpts,
photocopying, recording, or any future means of reproducing text.
If you would like to do any of the above, please seek permission first by contacting me at
Published in the United States by Practicing IT Project Manager LLC
Version 1.0
Table of Contents About the Author ............................................................................................................................4
Preface ............................................................................................................................................. 5
1. Add Holidays to the MS Project Calendar .............................................................................. 6
Change Working Time in MS Project ......................................................................................... 6
Commonly Observed National and Religious Holidays 2015 ..................................................... 7
2. Crafting Formulas for Calculated Fields ................................................................................. 8
Parentheses and Brackets .......................................................................................................... 8
Passing Arguments to Functions ............................................................................................... 8
3. Adding a Current Tasks Flag .................................................................................................. 10
Inserting the Flag ...................................................................................................................... 10
Modifications ............................................................................................................................. 11
4. Add a Status Indicator to Detail Tasks .................................................................................. 12
Adding the Stoplight Indicator.................................................................................................. 12
Variation 1 .................................................................................................................................. 15
Variation 2 ................................................................................................................................. 15
Final Thoughts ........................................................................................................................... 16
5. Add a Negative Total Slack Flag ............................................................................................ 17
Finish No Later Than ................................................................................................................ 17
Inserting the Flag ...................................................................................................................... 18
6. Track Qualitative Risk ........................................................................................................... 20
How It Looks ............................................................................................................................ 20
How to Implement It ................................................................................................................. 21
Risk Response Strategies.......................................................................................................... 23
7. Add a Cutover Weekend Calendar ........................................................................................ 24
Creating a Custom Calendar .................................................................................................... 24
Using the Custom Calendar....................................................................................................... 25
Other Variations ....................................................................................................................... 26
8. Additional Resources ............................................................................................................. 27
About the Author
Dave Gordon is an experienced portfolio, program, and project manager. Most recently, he has
been managing Software-as-a-Service (SaaS) implementation projects of Workday HCM. Over
the last 30 years, he has worked in nearly every IT discipline, for a variety of organizations. He
has managed software development projects, SaaS, ERP and other packaged software
implementations, and business process outsourcing projects in over twenty states, four
Canadian provinces, Spain, and the UK.
Dave holds a BS in Business and an MS in Information Technology, specializing in Project
Management. He also holds the Project Management Professional (PMP) credential, the Senior
Professional in Human Resources (SPHR) credential, the Global Professional in Human
Resources (GPHR) credential, and the Certified Employee Benefits Specialist (CEBS)
credential.
In his spare time, Dave enjoys wildlife and landscape photography, and plays guitar, mandolin,
and several other musical instruments. Dave and his wife, Lien, an accomplished watercolor
artist, live in Las Vegas, Nevada.
Dave says:
I use Microsoft Project to schedule the tasks in my work breakdown structure. Then I flesh out
the task list with things like external events, define milestones and summary roll-ups, identify
dependencies, and assign resources. During execution, I use it to track progress on completion
of tasks, in support of everything from communicating and managing team activities to status
reporting and change management, to risk management. I use several different views, flag
fields, and filters to highlight the information I want to extract, and then print to a PDF file or
Powerpoint slide for distribution. It’s not perfect, but it’s effective.
Since 2010, I have been blogging about project management at The Practicing IT Project
Manager web site. In response to various requests from readers, colleagues, customers, and
project teams for better ways to manage the information available in Microsoft Project, I
created a number of blog posts over several years. These articles were “how-to” use the
delivered features in Project to accomplish useful tasks, and included screen shots and detailed
instructions. The target audience was experienced project managers, and I received welcome
feedback from several of them. I’ve incorporated that feedback into this e-book.
Thanks to all the folks who’ve stopped by, read my articles, commented on them, and passed
them along. This e-book, and the blog, are for you. Peace be with you.
Preface
Many project managers use Microsoft Project to make plans, manage their schedule, track
progress, and otherwise collect and update project information. Typically, the project manager
will need to extract and share this information with people who aren’t project managers, from
their project team to the project sponsor, to other stakeholders. While Microsoft includes a
number of useful reports in Project, it can be useful to organize the information in other ways.
The purpose of this e-book is to provide instructions for using the standard features of
Microsoft Project to do a few useful things. The target audience is project managers. The
chapters originated as blog posts, as noted above, but I’ve updated and fine-tuned them. Along
with this PDF file, there is a Microsoft Project file available for download, including examples
of all of the techniques described here. Here are the chapters:
1. Add Holidays to the MS Project Calendar – Start by accounting for all of your
non-working days. It’s embarrassing when someone points out that a key task is
scheduled to complete on a national holiday.
2. Crafting Formulas for Calculated Fields – You use Excel because you can
calculate values from what is in other cells. Project is useful in the same way.
3. Add a Current Tasks Flag – I originally created this to be able to extract a list of
tasks in progress or about to begin, for review at team meetings. It has since proven to
be incredibly useful.
4. Add a Status Indicator to Detail Tasks – Show a calculated Red / Yellow / Green
indicator on tasks in progress. This is by any measure the most popular article I’ve ever
written.
5. Add a Negative Total Slack Flag – If you have a task with a fixed end date, you
probably need this in order to debug your critical path.
6. Track Qualitative Risk – Most risks are retired during the course of a project. This
approach incorporates elements of your risk register into your schedule.
7. Add a Cutover Weekend Calendar - Is your team performing one or two tasks over
a weekend? Here’s how to represent it in Project without distorting the schedule for
tasks that follow.
8. Additional Resources
After you read the first two chapters, you’ll have the background needed to skip to whatever
other chapters interest you.
1. Add Holidays to the MS Project Calendar
As the end of the year approaches, it’s time to look at your project plans that extend into the
coming year. Have you accounted for all of the holidays your project will observe? As I
recently pointed out to another project manager, there aren’t four work weeks in November, or
December. Fortunately, if you’re using Microsoft Project, you can define non-working days, in
order to prevent the embarrassment of a deliverable coming due on Thanksgiving Day. And as
a special bonus, I’m going to include a table with some of the most commonly observed
national and religious holidays you and your global team might need to plan for in 2015.
Change Working Time in MS Project
Navigation depends on which version of project you are using. In Microsoft Project 2007,
under the Tools menu, select Change Working Time. In Project 2010 and later, on the Project
tab, select Change Working Time. You can then enter the holidays under the Exceptions tab.
Note that Exception days appear in the calendar in blue; however, if you have selected one of
the exception dates, as shown in the example below, the date will appear in red. Scheduled
non-working days appear in gray. Note that you can also make an exception of a scheduled
non-working day, so that it appears to be a working day. Use this feature carefully – having
some of the team working over a weekend can easily throw off the scheduled for the entire
team. See Chapter 7 for this special case.
Commonly Observed National and Religious Holidays 2015
Holiday Weekday Celebrated New Year’s Day Thursday January 1 Martin Luther King’s Birthday (US) Monday January 19 Republic Day (India) Monday January 26 Chinese / Vietnamese New Year Thursday February 19 President’s Day (US) Monday February 16 Ash Wednesday Wednesday February 18 Beginning of Passover Saturday April 4 Good Friday Friday April 3 Easter Monday (UK) Monday April 6 May Day (China) Friday May 1 Early May Bank Holiday (UK) Monday May 4 Victoria Day (Canada) Monday May 18 Memorial Day (US) Monday May 25 Spring Bank Holiday (UK) Monday May 25 Shauvot Monday May 25 First day of Ramadan Thursday June 18 Canada Day Wednesday July 1 Independence Day (US) Saturday July 4 Independence Day (India) Saturday August 15 Summer Bank Holiday (UK) Monday August 31 Labor Day (US and Canada) Monday September 7 Rosh Hashanah Monday September 14 National Day (China) Thursday October 1 Mahatma Gandhi’s Birthday (India) Friday October 2 Yom Kippur Wednesday September 23 Eid al-Adha / Festival of Sacrifice Thursday September 24 Sukkot Monday September 28 Columbus Day (US) Monday October 12 Thanksgiving (Canada) Monday October 12 Diwali (India) Wednesday November 11 Veteran’s Day (US) / Remembrance Day (Canada) Wednesday November 11 Thanksgiving Day (US) Thursday November 26 Day after Thanksgiving (US) Friday November 27 First day of Chanukah Monday December 7 Christmas Eve Thursday December 24 Christmas Day Friday December 25 Boxing Day (UK, Canada) Saturday December 26
In the next chapter, we’ll look at the basics of using calculated values in the custom fields of
Project.
2. Crafting Formulas for Calculated Fields
I’ve published several posts over the last couple of years on using custom fields in MS Project.
I’ve been gratified to see a number of folks adapt them to their specific needs, with
modifications to the calculation formulas and other refinements. But not all project managers
are former programmers, and some folks have had trouble getting their refinements to work
the way they want them to. So I figured I’d share a few tips on crafting your own formulas.
Parentheses and Brackets
Project uses parentheses in formulas to pass arguments to a function, and to group items in a
calculation, much as you would in Algebra. You can “nest” parentheses, meaning you are
allowed to do things like this:
IIf(Finish>Now(), IIf(Start>Now(),1,3),4)
In most programming languages (Lisp is the only exception I can think of), you must have an
equal number of left and right parentheses; otherwise, the program interpreting the formula
won’t understand what you’re trying to tell it. Project will tell you when you try to save a
formula if it doesn’t understand, but its objections tend to be sketchy.
In some applications, single or double quotes support the use of field names that include a
space character; Project uses square brackets. To use Scheduled Start and Finish, you would
write the example above like this:
IIf([Scheduled Finish]>Now(), IIf([Scheduled Start]>Now(),1,3),4)
To help me get things matched up, I use a programmer’s editor that highlights the parenthesis
and its mate when I place my cursor on it. No highlight means there is no mate, so I know to
look for a problem before I paste it into the calculation field in MS Project. Note that brackets
are not nested; they should only appear at the beginning and end of a field name.
Passing Arguments to Functions
A function in a programming language receives zero or more arguments, separated by commas
and enclosed in parentheses, and returns a value of some type, such as a date or numeric value.
Some of these arguments may be optional; check the Function Reference to be sure. In our
example, the Now function doesn’t need arguments, so the list is empty; it merely returns
today’s date. The IIF function, however, has three arguments. The first argument should be an
equation that will evaluate to True or False. If True, it will evaluate whatever is in the second
argument and return the value; if False, it will evaluate and return whatever is in the third
argument. In this case, evaluating could be to return the correct numeric constant, or to return
the value returned by the nested IIF function. Note that the equation needs to compare two
values of the same type; if you want to compare a date value with a text string, you’ll need to
use a conversion function to make them compatible.
If you wanted to explain our example to someone, you might say, “If the scheduled finish date
is not after today, return a 4. Otherwise, check to see if the scheduled start date is after today;
if it is, return a 1, and if not, return a 3.”
Arguments are documented for every available function in a programming language. Typically,
the function assumes a default value for a non-specified argument, if it isn’t required. MS
Project requires all three arguments for the IIf function. However, other functions have
different requirements. The Switch and Choose functions, for example, can have as many
arguments as needed. Microsoft’s documentation on the available functions for custom fields
in Project is available here.
I hope this quick introduction is useful to you. If you don’t already use one, Wikipedia has a
high-level comparison of commonly available programmer’s editors. If you have other
questions or want to correct an error, please leave me a comment at the Book page on The
Practicing IT Project Manager blog, where you downloaded this e-Book.
In the next few chapters, we will use these techniques to create custom fields.
3. Adding a Current Tasks Flag
If you want to send out a weekly update to your project team, showing which tasks are active
but incomplete, or scheduled to start in the next week, it would help to have a flag that
identifies those tasks for you. Here’s how to add it to your MS Project plan.
Inserting the Flag
Right click on the column where you want to insert the status indicator. Click “Insert Column”
and then select Flag 1. Right click on the newly inserted column and select “Custom Fields.”
From here, you can rename the field (I chose “Act” to keep it brief). Then under custom
attributes, click on the radio button for Formula. You’ll get a warning message; that’s fine,
because you really do want to calculate the values.
Then click on the Formula button, and past in the following:
IIf([Scheduled Start]<ProjDateAdd(Now(),5) And [% Complete]<>100,True,False)
Click OK, and then click on the Graphical Indicators button. This is where you choose the flag
to display.
Then click OK. Your project plan should look like this:
On September 30, Task 2 and Task 3 are flagged because they are already started, and Child
Task A is flagged because its start date is within the next week. Note that the calculation uses
the project calendar, so it only uses working days. If you have a holiday coming up, it takes
that into account.
Modifications
The 5 in the formula is the part that specifies five working days. For two weeks, use 10. If you
want to use a different reference point, change Scheduled Start to a different date field.
4. Add a Status Indicator to Detail Tasks
While Project includes a Status field, it’s not exactly what I want. I use a numeric field to
calculate the status of tasks in the project plan, and display stoplights – Green, Yellow, and Red
– and found it adds some immediacy to project status meetings. I posted an explanation of
how to create that “stop light” status indicator using calculated fields in MS Project, and it
became the most widely read, referenced, and commented on post I’ve ever made. So, based
on some of those comments and a request from Marlene Robertson, I posted an update. For
this e-Book, I’ve also included variations in response to requests from several other readers.
Here’s what it does:
For zero duration tasks (milestones)
o If % Complete = 100, return Blue
o If the scheduled finish is at least seven days away, return Clear
o Otherwise, if % Complete is < 80, return Red
o If % Complete is between 80 and 99, return Yellow
For non-zero duration tasks
o If % Complete = 100, return Blue
o If it's not scheduled to start yet, return Clear
o If past the scheduled finish date and % Complete is less than 100%, return Red
o If % complete >= the prorated expected completion, return Green
o Otherwise, return Yellow.
That “prorated expected completion” is calculated using the project calendar. If the percent
complete is less than the number of days since the task was scheduled to begin, divided by the
task duration, it will be Yellow; otherwise, it will be Green. Keep this in mind for later, when
we’ll talk about summary tasks.
Adding the Stoplight Indicator
To add this to your project schedule, right click on the column where you want to insert the
status indicator. Click “Insert Column” and then select Number 1. Right click on the newly
inserted column and select “Custom Fields.” From here, you can rename the field (I chose “St”
to keep it brief). Under custom attributes, click on the radio button for Formula. You’ll get a
warning message; that’s fine, because you really do want to calculate the values.
Then click on the Formula button, and past in the following formula:
IIf([Scheduled Duration]=0,(IIf([% Complete]=100,5,IIf([Scheduled Finish]<Now()+7
And [% Complete]<100 And [% Complete]>=80,3,IIf([Scheduled Finish]<Now()+7 And [%
Complete]<80,4,1)))),IIf([% Complete]=100,5,IIf([%
Complete]>=100*(Abs(ProjDateDiff([Scheduled Start],Now())/ProjDateDiff([Scheduled
Start],[Scheduled Finish]))),2,(IIf([Scheduled Finish]>Now(),IIf([Scheduled
Start]>Now(),1,3),4)))))
Note the brackets around the fields.
Click OK.
Now click on the Graphical Indicators button. This is where you choose the colors to display.
In each row, under “Test for” select “equals.” Associate 5 with Blue, 4 with Red, 3 with Yellow,
2 with Green, and 1 with Clear. Note that you only want these indicators to appear for non-
summary rows, since the % Complete field isn’t accurate for summary rows.
Then click OK. Your project plan should look like this:
On August 25, Task 1 is Blue because it’s complete. Task 2 is Yellow because it’s two days past
the start date, it’s a three day task, and it’s only 50% complete. Task 3 is Green because two
days have passed, the task was scheduled for five days, and it’s 75% complete. If the task were
less than 40%, it would be Yellow. Task 6 is Red because it’s incomplete, and past the Finish
date. The start date for Child Task C is in the future, so it’s Clear. Note that “days” is defined
using the project calendar, so it only uses working days.
You’ll see that no indicator is shown for Task 5, which is the summary task for Child Tasks A,
B, and C. For automatically scheduled summary tasks, MS Project shows the Start date as the
earliest Start date among its children, and Finish date as the latest Finish date. It calculates
Duration for its child tasks as the difference between the two. In the simple example above, the
child tasks are scheduled in the sequence A, B, C so that the summary task duration actually
reflects the sum of the durations of the individual tasks, ten days. Task A is scheduled for two
days, and is 25% complete; Tasks B and C are not started. Based on this, summary Task 5
calculates 5% complete, which is accurate.
Now consider if Task A and Task B were scheduled to start on the same date. The Duration for
Task 5 would be calculated as eight days, although it still represents ten work days of effort.
After two days, you would expect Task A to be complete, Task B to be at 50%, and Task C to not
yet have begun, for a total of four days of effort. Thus, anything less than 40% complete for the
summary task should appear Yellow, but the formula will show Green at 25%. So rather than
display a potentially inaccurate result, we simply don’t show stop lights for the summary tasks.
Variation 1
Several project managers asked for different versions of this formula, to meet their specific
needs. Ken asked for milestones, if 100% complete, to return 5 (Blue); otherwise, return 1
(Clear). For non-zero duration tasks:
If 100% complete, return 5 (Blue);
Otherwise,
o If Today < Start date and % complete = 0% (not started, future event), return 1
(Clear)
o If Today <= Finish date and % complete = 0% (scheduled but waiting to start),
return 3 (Yellow); otherwise, return 2 (Green)
Otherwise, the task is incomplete and past Finish date, so return 4 (Red)
Here is the formula that does that:
IIf([Scheduled Duration]=0,IIf([% Complete]=100,5,1),IIf([%
Complete]=100,5,IIf([Scheduled Start]>Now() And [% Complete]=0,1,IIf([Scheduled
Finish]>=Now(),IIf([% Complete]=0,3,2),4))))
Variation 2
Rishi asked for a bit more variation on the milestones:
If 100% Complete, return 5 (Blue)
Otherwise, if Finish is less than 7 days away and Complete is between 80% and 99%,
return 3 (Yellow)
If Finish is less than 7 days away and Complete is less than 80%, return 4 (Red)
Otherwise, return 1 (Clear).
For non-zero duration tasks:
If Complete = 100%, return 5 (Blue)
Otherwise, if Prorated Complete > scheduled complete, return 2 (Green)
o Otherwise, if Finish > Today
If Start > Today, return 1 (Clear)
Else return 3 (Yellow) o Otherwise, return 4 (Red)
Here is the formula that does that:
IIf([Scheduled Duration]=0,(IIf([% Complete]=100,5,IIf([Scheduled Finish]<Now()+7
And [% Complete]<100 And [% Complete]>=80,3,IIf([Scheduled Finish]<Now()+7 And [%
Complete]<80,4,1)))),IIf([% Complete]=100,5,IIf([%
Complete]>=100*(Abs(ProjDateDiff([Start],Now())/ProjDateDiff([Scheduled
Start],[Scheduled Finish]))),2,(IIf([Scheduled Finish]>Now(),IIf([Scheduled
Start]>Now(),1,3),4)))))
Final Thoughts
As you can see, these formulas can get rather complex, depending on how you want to classify
the status of your detail tasks. The calculations will only be meaningful if the % Complete
information it’s based on is maintained on a consistent basis. Set some standards for the values
you enter. For example:
Milestone tasks: Enter either 0% or 100%, depending on whether all predecessor tasks
are complete. Alternatively, enter 0%, 25%, 50%, 75%, and 100% as predecessor tasks
are completed.
Detail tasks: Enter 0%, 25%, 50%, 75%, and 100%, as the task is worked. Alternatively,
enter other values, appropriate to the task and the performing team members.
Whatever standard you choose, communicate it to the project team and use it consistently.
Don’t fall into the trap of starting a task at 90% and then spending the next few weeks waiting
for the performer to report 100%! Define “inch pebbles” that can be reported at the task level.
If necessary, break the task into multiple tasks so that the durations are in the same range. A
consistent granularity is the key to measuring and reporting progress.
5. Add a Negative Total Slack Flag
As you know, the critical path is the sequence of scheduled activities that determines the
overall duration of the project. However, not all tasks are part of the critical path. The concept
of slack time, also called float time, comes from the fact that some tasks can be performed
sooner or later in time without impacting the finish date of the project. These tasks have an
earliest possible start and a latest possible start, as well as an earliest and latest finish. The
difference between the early and late finish dates is called the Total Slack. For tasks that are
not part of the critical path, this is usually a positive value; for critical path tasks, it is should be
zero. But that’s not always the case.
Finish No Later Than
When planning or updating a project schedule, one of the most useful capabilities of Microsoft
Project is the ability to set scheduling constraints. While most tasks will likely use the default,
“As Soon As Possible,” there are times when a task has a constraint such as a required start or
end date. When you set up a task with a fixed end date, you’ll go into the Advanced tab of the
Task Information window, set the Constraint Type to “Finish No Later Than”, and enter the
date.
Project will then apply that constraint, to determine whether you can actually meet that date
with your current plan. If you’ve defined non-working time in your Standard calendar, specify
it in the Calendar field. This will allow the scheduling algorithm to respect holidays. If the date
math doesn’t work out, one or more tasks will have a negative Total Slack. In such a situation,
it would help to have a flag that identifies tasks that must be adjusted, in order to respect your
constraints. Here’s how to add such a flag to your MS Project plan.
Inserting the Flag
Right click on the column where you want to insert the status indicator. Click “Insert Column”
and then select Flag 1. Right click on the newly inserted column and select “Custom Fields.”
From here, you can rename the field (I chose “Sched” to keep it brief). Then under Custom
Attributes, click on the radio button for Formula. You’ll get a warning message; that’s fine,
because you really do want to calculate the values.
Then click on the Formula button, and past in the following:
IIf([Total Slack]<0,True,False)
This will calculate the field to be True when Total Slack is less than zero, so we can display our
flag. Click OK, and then click on the Graphical Indicators button. This is where you choose the
image to display.
You really only need to define an image for the True value, and only for the Nonsummary rows.
This will cause the flag to be visible only in the detail rows, where you can actually make
schedule adjustments that will resolve the problems. Then click OK. Your project schedule
should look like this:
Tasks 1, 6, 7, 9, and 10 are flagged because they are on the critical path, and the total of their
individual durations is greater than the number of work days between the project start date
and the constrained end date. Note that the Total Slack calculation uses the Standard project
calendar, so it only considers working days. If you have a holiday coming up, it takes that into
account. Changing the duration of these critical path tasks, or changing the relationships
between them to take one of them off the critical path, will change the total slack. When all of
the flags are cleared, you have an achievable plan to get to your required end date.
6. Track Qualitative Risk
One of the challenges in project management is preventing the gradual disconnect between the
project schedule and risk management. When we’re in execution mode, we tend to focus on the
list of tasks and the dates in the plan, and only occasionally on the results of that qualitative
risk analysis we prepared in the planning stage. In order to see the gradual reduction in total
project risk, I wanted a way to incorporate risk attributes into tasks on the schedule. I also
wanted to factor in the work we’ve already accomplished, in order to see how much residual
risk remains when a risk has been retired. I implemented this in Microsoft Project, using
calculated fields.
How It Looks
I set up three custom fields: Probability (Null, Low, Medium, High), reflecting the possibility
that the risk event will occur; Impact (Null, Low, Medium, High), reflecting the impact if the
event actually occurs, and a calculated Risk exposure field.
In the simple example above, we have decided to track execution risks on three project tasks.
Our qualitative analysis classified the probability of occurrence and the impact as Low,
Medium, or High, scored 1, 2 and 3 respectively. In all three cases, the risks will be retired
gradually, as the tasks are completed. We want to monitor this process of risk reduction
graphically, using the formula Probability * Impact * Work Remaining to Retire the Risk,
defined as 1 - (% Complete / 100). In this example, a score greater than 3.0 is considered high
risk (red); as the score falls below the threshold, the visible risk indicator changes to yellow,
and when the task is completed and the score drops to zero, the indicator changes to green.
At a glance, you can see that task 4, Data Conversion Mapping, was determined to have a
performance risk with high probability and low impact. Now that the task is 100% complete, it
has been retired and displays a green smiley face. Task 7, Code and Unit Test, was determined
to be medium probability, medium impact. At the current 20% Complete, it shows as a high
risk [2*2*(1-0.2) = 3.2], but once it gets to 25% complete, it will drop to a medium risk
[2*2*(1-0.25) = 3.0]. Task 14 reflects low probability, high impact, and medium risk. As each
task is worked, % Complete is adjusted and the associated risk is reduced in linear fashion.
How to Implement It
I implemented the Probability and Impact fields using Lookup values in number fields, and
implemented the Risk field using a formula, with appropriate graphical indicators.
As you can see, the Probability value uses Number 2, the Impact value uses Number 3, and the
calculated Risk value uses Number 4. Here is how to set up the Lookup Table in the Custom
Attributes section of the Custom Fields screen:
For the Probability and Impact fields, the Lookup function was used to define four values:
None, Low, Medium, and High. I associated the None value with a blank graphical indicator,
and the other values with appropriate graphics. As a result, only rows with actual Probability
and Impact values have indicators.
The Risk value was implemented using a Formula:
IIf(Number2=0,-1,Number2*Number3*(1-[% Complete]/100))
If you wanted to use a quadratic calculation, you could adjust the formula accordingly.
Here are the indicators for the Risk field:
As usual, we only enter indicators for the non-summary rows. Note that zero values will have
the green indicator, reflecting a retired risk. Non-zero values below the High risk threshold will
appear with the yellow indicator. To adjust the High risk threshold, change the 3.0 value
associated with the red graphical indicator.
Risk Response Strategies
I've described the four common risk response strategies in a blog post: avoid, transfer,
mitigate, and accept. In this example, the risks were accepted and they will be retired through
execution of the associated task. When a risk is avoided, there should be no need to track it as a
task on the project schedule. Depending on the situation, you might want to track performance
and retirement of a transferred risk as a task, or you might not. In a mitigation strategy, there
might be one or more tasks to track separately from the execution tasks. Consider how you
want to tell the story to your sponsor, team members, and stakeholders, as they are the
primary consumers of this information.
As long as you associate the Probability and Impact score with a detail task to calculate the
risk, it will work correctly. Note that this technique will not work with summary tasks, because
MS Project doesn’t calculate percent complete for summary tasks in a way that is usable for
calculated fields.
7. Add a Cutover Weekend Calendar
In Chapter 1, I showed how to add non-working days to your project calendar, so MS Project
would take them into account when automatically scheduling tasks. This is an incredibly
powerful feature, as it allows you to focus on the duration of a task and its predecessors and
successors, without getting tied up in dates. Of course, there are occasions where you want to
schedule tasks to be performed on dates that would otherwise be non-working days. A common
example would be a cutover weekend, where you schedule certain tasks for a Saturday or
Sunday. The challenge is to make them working days for the tasks of interest, while ensuring
that other tasks aren’t shifted in time. The solution is a custom calendar, applied to only certain
tasks.
Creating a Custom Calendar
As with adding holidays to the calendar, the version of Microsoft Project you are using makes a
difference in navigation. In Project 2007, under the Tools menu, select Change Working
Time. In Project 2010, on the Project tab, select Change Working Time. Click the Create
New Calendar button, and Click the Make a copy of radio button. Select the Standard
calendar from the pull-down list, and then give the new calendar a name. In this case, I named
it Cutover Weekend. Then click OK.
At this point, you can add the dates you want to mark as exceptions to the working calendar.
Enter the Name, Start, and Finish dates. Then click the Details button. Click the Working
Times radio button. The default working hours will appear; change them only if necessary.
Click OK to return to your custom calendar.
At this point, click OK. Then navigate to the task you want to schedule for that weekend. Bring
up the Task Information dialog box by double-clicking on it. Then click on the Advanced tab,
and select your custom calendar. Click OK and repeat for any other tasks you want to apply this
calendar to.
Using the Custom Calendar
Now your task can be scheduled for a weekend, without impacting the tasks around it. See the
example below: Task 8 follows the predecessor to the Cutover task, Preparation. As you would
normally expect, it starts on the next working day, Monday, November 18. Task 9 follows the
cutover task, also beginning on Monday, November 18.
Reducing the duration of the Cutover task to one day does not impact the tasks that follow it.
Other Variations
As you can see, assigning a custom calendar in this way isolates the effect to just the tasks to
which the calendar applies. In addition to this example, you can also apply the same approach
to situations where a portion of the project team will be unavailable during the normal work
week. One potential application would be for when certain members of the team will be
occupied in other activities, such as year-end financial processing.
This simple technique will allow you to create your project schedule around your team’s
availability, while still correctly handling exceptions.
8. Additional Resources
As I mentioned in the Forward, I write about project management and related topics at The
Practicing IT Project Manager web site. I’ve created a page on that site that will include any
corrections, additional information, and downloads for this book. It will also provide a space
for readers to comment and share information and experiences.
In addition to the MS Project Hacks page in the “Books” section, consider visiting the site for
other resources on project management and leadership. Each Sunday evening, I publish a
weekly roundup of news articles, blog posts, and other content of interest to project managers.
I also maintain a site archive, organized by topic, of previously publish articles, and a list of
recommended project management web sites and professional resources. I keep all articles
open for comments, so feel free to ask a question, make a suggestion, or express your opposing
viewpoint.
Finally, feel free to reach out to me via the Email address posted on the “About” page of the
web site, if you have any inquiries you’d rather not be public. I’m available on a consulting
basis, to help with project management and training, among other things.
Thanks for taking the time to read this book all the way to the end!