BPC Logic Filter – an add-in for Microsoft Project (desktop) – includes an advanced Logic Inspector feature to greatly simplify the examination and navigation of resource-leveled, logic-driven schedule activities.
The resource leveling feature in Microsoft Project (MSP) offers an effective method for management of resource-constrained projects, but most project managers don’t appreciate its impact on Total Slack, the Critical flag, and the resulting “critical path.” Specifically, all of those terms become unreliable or misleading in the presence of resource leveling. I first wrote about those issues here.
With some improvements to BPC Logic Filter – we were able to identify resource-driving links and include them in The Resource-Constrained Critical Path and in other logical path analyses.
Analyzing logical paths in schedules requires detailed examination of each task’s dependencies and (for leveled schedules) resource assignments. It’s helpful to have the results of such examinations at hand while reviewing (and confirming) the logical path analyses, so recent versions include a task Logic Inspector for Inspecting Task Links with BPC Logic Filter.
Logic Inspector also includes inferred resource-driving links if desired by the user. Consider this simple resource-leveled schedule from the earlier articles.
With resource-checking disabled (and no calendars or constraints to confuse things), BPC Logic Filter computes relative float and identifies driving predecessors in a way that is consistent with MSP’s calculation of total slack. For the A2 Structures task (ID 11), this means that the driving predecessor is the only predecessor — ID10: A2 Civil — even though it finishes two weeks before A2 Structures starts. It also means that A2 Structures is logically driving all three of its successors.
Adding the late-relative float (LRF) column identifies the one successor relationship with bi-directional driving logic. Thus, ID14: A2 Electrical Change Order 1 is highlighted red as the successor relationship with the most effect on the total slack of the selected activity.
While this method is useful for understanding how MSP computes slack in resource leveled schedules, it does not help in understanding the actual resource limitations that drive the schedule of a task. To gain that understanding, we first visit the Tracing Preferences tab in the Settings and ensure that Resource Checking is enabled.
Now Logic Inspector shows us the true picture of the schedule of the A2 Structures task. Namely:
1. A new predecessor — the true driving predecessor for the task — is identified: the A1 Structures task in Area 1 must finish (and release its resources) before the A2 Structures task can start. The only explicit logical predecessor of the A2 Structures task — ID10: A2 Civil — has 10 days of relative float. That is, it could slip two weeks according to the standard calendar before THIS RELATIONSHIP starts to drive the A2 Structures task.
2. A new “driven successor” is identified in that the A3 Structures task may not start until the structural resources are finished with A2 Structures.
3. The A2 Electrical Change Order 1 task (ID14) is actually 40 days (8 weeks) away from being driven by its relationship to the current task. (It is in fact driven by other resource constraints.)
4. Tasks 10 and 14 remain highlighted as late-date drivers. With no direct impact on the scheduled dates for the selected task, they illustrate MSP’s basis for total slack calculations.
The JUMP button — which allows on-the-fly exploration of the schedule through logic links — treats the (implicit) resource driving links the same as explicit logical relationships. Consequently, it is just as easy to hop through the logic of most resource-leveled schedules as it is to hop through one with no resources at all.