An improved version of this article is included in my free e-book, MS Project Hacks. Download the book and a sample MS Project file here. And scroll to the bottom to view a video lesson based on this article, created by the good folks at Webucator.
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.
Setting Schedule Constraints
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, which means that you won’t be able to finish by the required end date. In such a situation, it would help to have a flag that identifies tasks that have to be adjusted, in order to respect your constraints. Here’s how to add such a flag to your MS Project plan.
The Negative Total Slack 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 paste in the following:
The Flag field contains a True or False value. This formula 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. Once you have chosen the image for your flag, click OK.
Your project plan should now 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.
Give it a try, and leave a comment if you find it useful, or find a bug, or think of an enhancement.