BPC Logic Filter for Microsoft Project provides an automated method for extracting and presenting the Resource Critical Path (a.k.a Resource-Constrained Critical Path or Critical Chain) from a leveled schedule.
In a previous entry (Logic Analysis of Resource-Leveled Schedules), I investigated the impact of resource leveling on the logical analysis of Microsoft Project schedules. Conclusions were not encouraging, i.e.:
- Project’s Total Slack calculation – and as a consequence, the “Critical” flag – fails to adequately account for resource constraints in the schedule. Neither the “Resource Critical Path” nor any other resource-leveled logical path can be deduced from the schedule by analyzing the logical relationships and slack (nor even the “Leveling Delay” artifacts). Even worse, tasks that are clearly schedule critical when considering resource constraints can have unexpectedly high values for Total Slack and may therefore be neglected during crashing exercises or disruption analysis.
- BPC Logic Filter – our preferred tool for logical analysis of Microsoft Project schedules – could not completely overcome the weaknesses of MSP when it came to resource leveling.
- To be amenable for logical analysis, it seemed that schedules needed to be constructed with “soft” logic links to mimic the impacts of the resource leveling algorithm.
As the developer and primary user of BPC Logic Filter, I was not satisfied with these latter conclusions. After all, I had developed the tool specifically to overcome MSP’s shortcomings in the context of multiple deadlines/constraints and variable calendars. Why should it stop there?
While I have intended to address resource constraints in BPC Logic Filter since the beginning, I didn’t have much need for it until recently. Now the latest code revision incorporates full analysis and comparison of resource assignments in parallel with the existing logic analysis algorithm. I’m pleased with the results and feel confident that BPC Logic Filter can now depict the Resource Critical Path (or any resource-constrained driving path) in a Microsoft Project Schedule.
Figure 8 of the earlier article showed the resource-leveled schedule of a simple construction project, while Figure 9 showed BPC Logic Filter’s multiple-float-path analysis of the schedule. The latter figure demonstrated how resource leveling introduced gaps into the logical arrangement of the schedule, but it did not track the resource constraints behind those gaps. Figure 11 of the earlier article demonstrated the analysis after replacing the resource-leveling delays with soft (“preferential”) logic links to create exactly the same (early) schedule dates. I’ve included these figures below.
Now I’ve added a figure (let’s call it Figure 12) showing the “new and improved” analysis from BPC Logic Filter. The top band of the figure illustrates the Resource Constrained Critical Path for the project as originally scheduled and leveled (i.e. without preferential logic). The dates remain unchanged. The relative float values for all tasks are identical to those of the revised (preferential-logic) schedule, but the total slack, critical flag, and bar colors are as originally scheduled and leveled. The next figure (13) shows a revised version of the bar chart with custom bar colors applied to clarify the logic- and resource-driven paths. This is comparable to MSP’s “Task Path” graphical display (though of course that tool is limited to logical paths, does not differentiate among relative float paths, and has no filter.)
Figure 13 – BPC Logic Filter Bar Colors
To summarize, BPC Logic Filter now includes full analysis of driving resource constraints for leveled schedules.
I’ve tested the upgraded functionality against some of the more sophisticated leveling scenarios, like split-assignments, split-tasks, and in-progress tasks with splits. I’ve also stress-tested the algorithms against some public-domain resource-constrained schedule datasets – namely PSPLIB files j1201_7 and j12060_10, both leveled by MSP with default parameters. For the latter project, BPC Logic Filter required nearly two minutes to chug through the numerous parallel resource-driving paths. (The project includes large pools of homogeneous resources distributed among many small tasks, which I hope is not typical.)
For now, the resource-analysis features do not work across multiple projects (i.e. linked master/sub-project structures.)
Finally, the banner/featured image at the top of this article is an updated version of the project schedule, with a couple arrows added to depict the inherent logic of the resource leveling delays. It would be great for the program to insert these arrows automatically, but I’m afraid the necessary effort isn’t justified at this time. Maybe I’ll revisit in the future.
[See a related video entry here: Video-Using BPC Logic Filter to Analyze Resource Leveled Critical Path]