Can negative float exist in a schedule network? What impact does it have? How does it impacts the critical path? As a Project Planner or Manager how should work on these cases?
These were some of the questions that came up in a recent session on Practical PMP with MS Project. The MS Project® version used was 2016 and PMBOK® version used is its 5th edition.
First, the definition of Total Float (or Total Slack). Putting it simply: "This is the amount of time that an activity can be delayed without delaying the project finish date or violating a schedule constraint."
Taking an example - say you have a task "Task - A". This task can be delayed by 3 days without delaying the project's finish date. The total float of Task - A is 3 days.
Now, let us take a MS Project sample, which is shown below. There are many tasks in this project - each of these tasks have Free Slack (or Free Float) or Total Slack (or Total Float) shown. To see these floats - just switch to View tab -- Data group -- Tables -- Schedule table (or you can add the columns in the default Entry table).
Figure - 1: A Sample Project |
Note the critical path here: Start - Task E - Task F - Finish. It is the longest path or path having float values less than equal to zero. The critical path is highlighted in red. To see the critical path enable the checkbox "Critical Tasks" under Format tab -- Bar Styles group. There many other ways to see the critical tasks.
Next, let us see when the negative total float can come.
Scenario - 1: Setting a Hard Constraint (MSO)
I'll be setting a hard constraint on Task B - a Must Start On (MSO) constraint. This can be done in the Task Information dialog box, which is launched when you double click on a task.
Figure - 2 : Hard Constraint Set |
As I pressed OK, the below message popped up. I selected the 3rd option and continued by pressing OK button.
Figure - 3: Message while Setting the MSO |
Next, the below message popped up. This is clearly saying there will be scheduling conflict if you set this constraint.
Figure - 4: Message - Scheduling Conflict |
Now, see the impact on the schedule. The new schedule comes as shown below with two critical paths now. But more importantly, the total float/slack of Task B is now changed from 3 days to -1 day.
Figure - 5: Total Float as Negative with MSO Constraint |
By how it became -1 day (earlier 3 days)?
To understand that, let us draw the Schedule Network Diagram, where we will find out the Early Start (ES), Late Start (LS), Early Finish (EF) and Late Finish (LF). I am using Forward and Backward pass approach to calculate these values (as one would be doing while preparing for PMP Exam)
Figure - 6: Forward and Backward Pass Calculation |
The legend on the top right of the above diagram shows the ES, LS, EF, LF values for each activity.
Now total float is calculated as the difference between LS and ES or the difference between LF and EF. For example the total float for Task A = LS - ES = 4 - 1 = 3 days. Take the Task B, for it total float = LS - ES = 6 - 3 = 3 days. The result is same while being calculated with MS Project (refer Figure - 1). But that diagram does not show the ES, LS, EF, LF values. The below one shows (Figure - 7). To see Early Start, Late Start, Early Finish and Late Finish, you can add them as columns into the table of MS Project view.
Figure - 7: Forward and Backward Pass - Auto Calculated in MS Project |
These values exactly matches what we saw in theory. For Task B, when it was scheduled, without any constraint:
ES = Wednesday (July 1)
LS = Monday (July 6)
EF = Friday (July 3)
LF = Wednesday (July 8)
Total Slack = 3 days
Figure - 8: Forward and Backward Pass with Constraint - Auto Calculated in MS Project |
The values for ES, LS and also EF and LF have changed. By applying a hard constraint, we changed the dates for ES, LS, EF and LF.
This resulted in the Total Slack/Float as -1 day.
Scenario - 2: Setting a Semi-Flexible Constraint (SNLT)
In this scenario, I am setting a semi-flexible constraint on Task B, i.e., Start No Later Than (SNLT) constraint. I'll set the constraint in similar fashion as done before. The constraint date is June 30 again.
Figure - 9: Total Float as Negative with SNLT Constraint |
Scenario - 3: Setting a Deadline
In this case I am setting a deadline for Task B. Task B is scheduled to be completed by Friday, July 3. (Check the Figure - 1). I am setting the deadline as Wednesday, July 1. Deadline can be set from the Task information dialog box as shown below.
Figure - 10 : Setting Deadline for Task B |
Figure - 11: Total Float as Negative with Deadline |
Finally, coming back to our initial set of questions:
1. Can negative float exist?
Yes. As we saw, negative float can exist with various scenarios. If total slack or float is positive, it informs about the time that the task can be delayed without delaying the project's finish date. If total slack/float is negative, it informs about the amount of time that must be saved so as not to delay the project's end date.
2. Where does negative float come?
I have listed scenarios where negative float comes up for the schedules - primarily with constraints (deadline, if you think at a higher level, is also a type of constraint). So, negative total float can come up when you violate a schedule constraint.
3. What impact does negative floats have?
It lessens the flexibility of the schedule. A schedule with many negative floats is not a desirable one. The schedule also becomes quite unrealistic.
4. What impact does it have on the critical path?
There will be multiple critical paths in the network diagram now. This increases the risk of the project. Do note that critical path setting here has been done that way from Backstage View -- Options.
5. As a Project Planner or Manager how should work on these cases?
Rework the schedule to remove the negative floats. In fact, there are cases when a schedule with negative float will not be accepted by your sponsor or sponsoring organization.
You may also like courses on Practical PMP:
You may also like:
- Actual Cost Vs Actual Cost of Work Performed(ACWP) - Practical PMP with MS Project
- Working with Multiple Baselines in MS Project 2016
- PMBOK 5th Edition with MS Project 2016 - A Practical, Hands-On Guide
Greetings,
ReplyDeleteWorking on a school project I realized that the Native EVR Report in MS Project (presumably 2019) appears to calculate ACWP, BCWP, and BCWS, differently concerning 'Cost' type resources.
In this example I have a task with work, materials and cost type resources. I set a baseline at the beginning of the project. Viewing 'Task Usage' BCWS appears to collect values at the resource level for Material, and Work but not Cost resources. Updating the status date, task, and entering actual costs once the 'Cost' resources have been fulfilled (necessary to update task from 99% given by auto-update function, to 100%).
ACWP and BCWP, like BCWS, has the Work, and Material values at resource level in 'Task Usage,' but not 'Cost' type resources.
Here is where I am confused. BCWP has a higher value in the Task level summary of costs, and it is the value of Actual Cost (not ACWP) of the task.
If BCWP is using data that includes 'Cost' type resources associated with a task, (though on a summary level apparently), why are ACWP, and BCWS not?
Cheers,
Damien