Upload
others
View
22
Download
1
Embed Size (px)
Citation preview
INTRODUCTION TO
BPC LOGIC FILTER FOR MICROSOFT PROJECT
Prepared For:
General Release
Prepared By:
Thomas M. Boyle, PE, PMP, PSP
BPC Project No. 15-001 10-Mar-20
4236 Chandworth Rd. Charlotte, NC 28210
Phone: 704-916-6765 [email protected]
Boyle Project Consulting, PLLC
Project Management and Construction Support Services
Introduction to – BPC Logic Filter for Microsoft Project 10-Mar-20
Boyle Project Consulting, PLLC – Charlotte, NC USA i
TABLE OF CONTENTS
1.0 EXECUTIVE SUMMARY .................................................................................................... 1
2.0 BACKGROUND / MOTIVATION ...................................................................................... 1
2.1 HISTORY ................................................................................................................................... 1
2.2 NEEDS ....................................................................................................................................... 2
2.3 AVAILABLE TOOLS ................................................................................................................... 2
3.0 PROGRAM DEVELOPMENT ............................................................................................ 3
3.1 INITIATION ................................................................................................................................ 3
3.2 FEATURE DEVELOPMENT ......................................................................................................... 4
3.3 SHARING THE TOOLS .............................................................................................................. 13
4.0 NOTES ON SCHEDULE CALCULATIONS ................................................................... 14
4.1 DATES ..................................................................................................................................... 14
4.2 SUMMARY TASKS ................................................................................................................... 14
4.3 INACTIVE TASKS .................................................................................................................... 14
4.4 MANUALLY-SCHEDULED TASKS ............................................................................................ 15
4.5 RESOURCE LEVELING ............................................................................................................. 15
5.0 USER APPLICATIONS AND SETTINGS ....................................................................... 16
6.0 SOFTWARE EDITIONS AND LICENSING ................................................................... 16
Introduction to – BPC Logic Filter for Microsoft Project 10-Mar-20
Boyle Project Consulting, PLLC – Charlotte, NC USA 1
1.0 EXECUTIVE SUMMARY
For the professional planner, scheduler, project manager, or administrator working with Microsoft Project (2010+),
BPC Logic Filter is a tool that fills the gaps between Project’s native functionality and the requirements of logic-
driven schedule management in complex projects. BPC Logic Filter includes simple tools for examining and tracing
the schedule network(s) for any given task or collection of tasks. It also offers tools for standardized reporting of a
project’s Critical Path and near-critical paths when Microsoft Project’s internal reporting does not suffice. Finally,
BPC Logic Filter introduces and implements several tools for advanced schedule network analysis, including Path
Relative Float, Driving Path Drag, Bounded Network Analysis, Cross-Project Links, Gantt Chart Highlighting, and
Resource Leveling Drivers (i.e. Resource-Constrained Driving Path). The tool is implemented as a Microsoft Office
Customization (i.e. Project Add-In) and is deployed using secure Microsoft-developed technology that does NOT
require Administrative Privileges.
.
2.0 BACKGROUND / MOTIVATION
2.1 History
Twenty-five years after its introduction to the market, Microsoft’s Windows-based project scheduling software tool
– which I will call MS Project, Project, or MSP here – has become ubiquitous worldwide among corporate (and
government) users of the Microsoft Office suite of business software. During that time many “serious” project
planners and schedulers have avoided the tool due to real and perceived shortcomings compared to the competition.
Now most of the previous shortcomings have been addressed, and Project offers a task scheduling engine that
appears to be generally compliant with the Precedence Diagramming Method (PDM) and the Critical Path Method
(CPM) – two closely-related and often-specified methodologies for developing and implementing project schedules
based on networks of logically-related tasks. Nevertheless, Project continues to provide only rudimentary built-in
capability for logical network analysis – that is what is needed regularly to respond to schedule disruptions, and
more importantly, to communicate the sequential plan behind the schedule dates.
As an engineer, project manager, and (execution-focused) planning and cost consultant for complex industrial
engineering/construction projects around the world; I have been a user of Project and competing tools (P3/ST/P6)
for more than twenty years. Early on, I used the other tools for integrated project schedule management, and I used
Project mainly to open and review the relatively simple MSP schedule submittals from major equipment suppliers.
More recently (i.e. 2003 to 2015), I regularly consulted with Owners who required MS Project for integrated master
schedules involving multiple contracts, handover milestones, and firm deadlines. While overseeing these projects,
it was continually frustrating to have to rely on Project’s Total Slack as the only quantifiable measure of a task’s
importance – either to the project schedule as a whole or to any other specific task. It simply can’t tell the stories
that need telling – especially in a complex schedule with variable calendars, multiple deadlines, and multiple
critical/near-critical paths.
Introduction to – BPC Logic Filter for Microsoft Project 10-Mar-20
Boyle Project Consulting, PLLC – Charlotte, NC USA 2
2.2 Needs
A tool was needed to answer the following questions:
For a given task:
1. Which tasks are its predecessors? (The whole chain, not just the immediate dependencies.)
2. Which tasks are its successors?
3. Which predecessors are driving – i.e. effectively limiting the early start of – the task? (Also the whole
chain, though identifying the immediate dependencies would be a good start. Project’s Task Inspector and
Task Path bar highlighters promise to do exactly this, but their results are inconsistent for non-FS
relationships.)
4. Which successor tasks are being driven by the task?
5. If a predecessor is NOT driving, how much may it slip before it becomes driving.
6. If a successor is NOT being driven, how much may the given task slip before it has an impact on the
successor?
For the project as a whole:
7. What is the real “Critical Path” and how is this related to Project’s “Critical” task flag? (Is it related at all?)
8. What is the Longest Path – i.e. that group of logically connected activities that drive the overall project
completion date? (In my opinion a much better definition of Critical Path in the presence of deadlines and
variable calendars.)
9. What is the Critical/Longest Path for a project whose key milestone(s) don’t coincide with the end of the
project schedule? For example, construction schedules for industrial plants are often geared to starting
production (and generating revenue) as soon as possible, while permanent administration and maintenance
facilities may be completed later. A simple Longest Path doesn’t seem to reflect the true schedule
priorities.
10. Finally, how can we identify and differentiate parallel critical paths and near critical paths from each other
based purely on the schedule data?
2.3 Available Tools
There are established workflows for answering most of these questions in other project scheduling tools. Users of
Primavera Project Planner (P3) and its descendants are familiar with the info-packed predecessor and successor lists
and the asterisk that identifies the driving relationships in the lists. Combined with Primavera’s intuitive task-
jumping feature, it is a fairly simple matter to (manually) trace an activity’s logical drivers and non-drivers alike
through a project network. The overall project scheduling questions can be answered, in addition, using the
“Longest Path” and “Multiple Float Path” scheduling parameters that have been available natively for many years.
Introduction to – BPC Logic Filter for Microsoft Project 10-Mar-20
Boyle Project Consulting, PLLC – Charlotte, NC USA 3
With a couple exceptions, MS Project provides no similar functionality out of the box, and there are no obvious
technical restrictions precluding it. The exceptions are the aforementioned Task Inspector and the task network
diagram, neither of which I have found very workable. To use the tree-forest analogy, TI examines and displays
the bark on the (north side of the) tree, while the network diagram presents a birds-eye view of the whole forest or
whichever specific trees you tell it to show in advance. Neither can discern the path through the forest. Project also
includes an advanced calculation option called “Calculate multiple critical paths,” but it is completely unrelated to
the “Multiple Float Path” functionality that is needed. [Finally, recent versions (MSP 2013+) incorporate a set of
Task Path bar styles for graphically displaying the Predecessors, Driving Predecessors, Successors, and Driven
Successors of any selected task. These are useful for simple projects.]
Before writing BPC Logic Filter, I found no comparable tools available on the market at any price.1 The most
productive internet searches for “MS Project logic tracing” and similar terms typically led to discussion boards for
programmers who specialized in Visual Basic for Applications (VBA), the language underlying Microsoft Office’s
“macro” programs. Macros (also called vba customizations) provide methods to automate repetitive tasks, often in
Excel or Word. They are typically developed by advanced users for personal use or by corporate IT specialists for
use on machines within the corporate network. I have written and edited vba customizations for Excel for many
years, so what I found seemed to make sense.
3.0 PROGRAM DEVELOPMENT
3.1 Initiation
In late 2013, I started writing the code for BPC Logic Filter. Besides my ongoing frustration with Project, I was
prompted by an urgent request from a department manager in a client organization:
“My people can’t see why they need to finish these tasks so soon. Isn’t there a report or something to show
what other tasks (in other departments) are depending on them?”
“Well, yes there is,” I thought, “but the only way I know how to make it is to manually inspect each of ‘these tasks,’
identify and mark each of its successors, then identify and mark each successor’s successors, and so on. Then I
would have to apply a filter showing only the marked tasks and apply a table showing the key task responsibility
fields.” That could take a long time! And if the other department managers asked for the same report, we would
have to use more of the precious task fields in the Project file. This was a job for a macro that could be run on
demand and that would only use task fields when needed.
1 No doubt some of the alternate CPM scheduling tools can provide the needed functionality after importing the MSP files, but I preferred to stay in MSP. There are also some risk management tools that claim good interoperability with MSP, but I didn’t investigate – while struggling just to manage the deterministic project schedules, adding probabilities seemed a step too far. Finally, I was able to find three comparable tools only after developing BPC Logic Filter: ProjectPro Complete Critical Paths (www.ProjectProCorp.com); Driving Path Widget (www.projectwidgets.com); and OPDEC Critical Path Tool (www.opdec.com). They may be worth considering….
Introduction to – BPC Logic Filter for Microsoft Project 10-Mar-20
Boyle Project Consulting, PLLC – Charlotte, NC USA 4
Given the immediate need, I felt confident in buying Rod Gill’s book – VBA Programming – For Microsoft Project
’98 through 2010 with an Introduction to VSTO – and getting to work. What resulted was the recursive logic tracing
algorithm that is at the core of BPC Logic Filter. This is not special. Similar logic tracing algorithms, including
some complete VBA macros, have been generously shared on the internet by several developers. Any Project user
with minimal programming experience would have no trouble implementing the same macro on her own machine,
at which point she would be able to answer the first two questions above. Much more work would be needed to
answer the others, however.
3.2 Feature Development
Over the several years – and some hundreds of hours – I refined and added functionality to my little set of macros
as time permitted and as new needs arose. With each new feature came an extra layer of complexity, the need for
extensive re-testing and debugging, and the inevitable need for new features or complete re-writing of code to
overcome my previous shortsightedness. Here is the list of basic feature adds in order:
1. Created a simple logic tracer and filter for all dependencies of a task or group of tasks. (Answers questions
1 and 2 on the Needs list.)
2. Added limits for overall number of tasks to be checked (for terminating an endless loop during
development) and the number of logical steps away from the selected task (i.e. “local network only”).
3. Added filter for Driving Relationships Only. This was the first quantum leap in complexity and
functionality, as it required the calculation of Relative Relationship Float. The concept is very simple: for
a successor task in a relationship, what is the difference between the computed (early) date of the task and
the earliest date that can satisfy the constraints of the relationship.2 A value of zero means that the
relationship is “driving.” (Answers questions 3 and 4 on the Needs list.) A value greater than zero reflects
the amount of time that the predecessor may slip before it becomes one of several concurrent drivers of the
successor task. Values less than zero are not encountered except in cases of unresolved logical conflicts.
Figure 1 illustrates the Relative Relationship Float computed for each relationship in a simple schedule
network. Figure 2 shows that path which includes only Driving Relationships among the predecessors of
the last task of the schedule (“Task9”) – this is Task9’s “Driving Path”.
2 According to Dr. Gui Ponce de Leon (2010 PMI Global Proceedings), what I’ve called Relative Relationship Float is essentially identical to the “link lag” originally described by Fondahl for FS relationships and subsequently established as “link gap” by Ponce de Leon for other relationship types. Link gaps are regularly computed by Ponce de Leon’s Graphical Planning Method (e.g. PMA Netpoint.) Ron Winter (www.ronwinterconsulting.com) defined a similar quantity that he termed (relationship) “Slack” in some papers aimed at Primavera users. While the word “slack” in American usage seems intuitively more appropriate for relationships, MSP already uses it in a distinctly different context. I’ve stayed away from it. A similar quantity in Oracle’s Primavera Project Management P6 is called Relationship Successor Free Float.
Introduction to – BPC Logic Filter for Microsoft Project 10-Mar-20
Boyle Project Consulting, PLLC – Charlotte, NC USA 5
Figure 1. Relative Relationship Float in a Simple Project Schedule Network
Figure 2. Driving Path Relative Relationship Float = 0
4. Introduced Path Relative Float, the second quantum leap in complexity and ultimately the most useful
functionality. This essentially expands Relative Relationship Float to account for all the tasks and
relationships between any two tasks in the network. For a certain “Selected” task, all of its predecessors
(and successors) may be identified and grouped according to their Relative Float values. Those
predecessors with a value of zero represent the “driving path(s)” for the selected task. (Answers questions
5 and 6 on the Needs list.) Those with low non-zero values represent the “near-driving paths” for the
selected task. By starting the analysis from the last task in the project or from the key project completion
milestone, the “driving path” becomes the “Critical Path” for the project according to the most commonly-
applied “longest path” definition. (Answers questions 8 and 9). Applying special sorting criteria can also
differentiate any concurrent- or near-critical paths. (Answers question 10.)3 Figure 3 illustrates the Path
Relative Float (relative to Task9) for three non-driving paths of the simple schedule network.
3 For a project Critical Path or Longest Path application, Ron Winter’s “Longest Path Value” seems to play a similar role as the more general “Path Relative Float” does here. The same could be said of Total Float and Forensic Total Float in the Graphical Path Method (e.g. PMA Netpoint.)
Introduction to – BPC Logic Filter for Microsoft Project 10-Mar-20
Boyle Project Consulting, PLLC – Charlotte, NC USA 6
Figure 3. Path Relative Float for Driving and Non-Driving Paths
5. Introduced Longest Path Filter as a special application. This automatically selects the last task(s) in the
project schedule and identifies the associated driving path(s).
6. Introduced Local Network Filter as a special application to facilitate task-jumping through the network a
few steps at a time.
7. Introduced the Target Task concept to support finely bounded impact analysis. For example, given the
prospect of a delay on one task, what will be the impact on another related but more important task, and
where are the opportunities for recovering the delay between the two? Here the analysis is truncated to
show only those logic paths connecting the two tasks (one the “selected task” and the other the “target
task”), with the zero-Relative Float values presenting the first opportunities for recovery. Figure 4
demonstrates the concept for the simple schedule network introduced above, where the grayed-out area is
automatically omitted.
Figure 4. Bounded Analysis of a Simple Schedule Network
8. Added Cross-Project Links to apply logic tracing and all the other features across master- and sub-project
boundaries. Adding this functionality was technically quite challenging, but it seems invaluable for those
who are forced to rely on these powerful but problematic MS Project features. Testing showed no problems
Introduction to – BPC Logic Filter for Microsoft Project 10-Mar-20
Boyle Project Consulting, PLLC – Charlotte, NC USA 7
in a standalone Windows 7 machine. I didn’t test in environments using a network file server or Project
Server.
9. Added Driving Path Drag as an advanced feature for prioritizing a schedule crashing process. Critical Path
Drag was introduced in 1999 as a formal metric to be applied to Critical Path tasks/activities only4. In that
context, Drag represents the amount of time that each task contributes to the Critical Path of the Project. In
simple terms, “how much could the Critical Path be compressed by eliminating this task?” It is computed
for each CP task as either a) the duration of the CP task, or b) the lowest Total Float of any parallel task –
whichever is less. Figure 5 is a simple network logic diagram with drag computed as originally presented
to illustrate the concept. BPC Logic Filter adapts the concept for general use with respect to the “driving
path” for any selected task, not just the last task in the network. In this context, the Drag for each task (on
the Driving Path of a given selected task) is either its own duration or the lowest Path Relative Float of its
parallel tasks, whichever is less. Figure 6 illustrates the concept as adapted for our own simple network
schedule introduced above. In this figure, the Drag of Task8 (Dur =10 days) is limited to 5 days by the
RelFlt=5 of the parallel path. Similarly, the Drag of Task7 is initially limited to 7 days by the RelFlt=7 of
the single parallel task (Task61). Ultimately however the Drag of Task 7 and its two predecessors are
limited to 5 days by the same parallel path that limited Task 8. In other words, the current “Critical” Path
may be shortened a maximum of 5 days before the secondary path becomes critical.
Figure 55. Drag Definition
4 See Devaux, Stephen A., Total Project Control: A Manager’s Guide to Project Planning, Measuring and Tracking, 1999, John Wiley & Sons 5 Figure taken from The Drag Efficient: The Missing Quantification of Time on the Critical Path, by Stephen A. Devaux, Defense AT&L: January–February 2012
Introduction to – BPC Logic Filter for Microsoft Project 10-Mar-20
Boyle Project Consulting, PLLC – Charlotte, NC USA 8
Figure 6. Drag Analysis for a Simple Schedule Network
10. Some months later, added a feature to analyze resource leveling drivers. MSP’s resource leveling engine
acts to delay lower-priority tasks in favor of higher-priority tasks demanding the same resources. BPC
logic filter examines the leveling delays and assignment details to infer resource-driven, implied logical
relationships between tasks that demand the same resources. As a result, the user can easily determine the
Resource-Constrained Driving Path for any task in the project. Incorporating the feature in the Longest
Path Filter reveals the Resource Constrained Critical Path for the overall project.
Figure 7. Inferred Links from Resource Leveling Drivers
11. In concert with the added resource-leveling features, added bar-coloring methods to modify the Gantt Chart
appearance. These methods allow the results of logical analysis to be presented within the context of the
overall project schedule, not limited to filtered views. Even within the filtered views, bar coloring methods
are necessary for effective communication of the logical relationships (including resource drivers) that
control the scheduled dates.
5 5
5
A1 Releases
resource
A2 Gains
resource
Inferred A1‐
A2 FS Link
Introduction to – BPC Logic Filter for Microsoft Project 10-Mar-20
Boyle Project Consulting, PLLC – Charlotte, NC USA 9
Figure 8. Resource Drivers and Bar Coloring Example
12. Added the Project Logic Checker function. This provides a method for precisely-controlled review and
summary of various logic issues and topics of interest in the schedule.
Figure 9. Project Logic Checker Preferences
The analysis concludes with the presentation of a dynamic output form that…
Summarizes the findings on the face of the form;
Provides a report (in the text window) of the details of the analysis, including a complete project
logic statistical summary;
Provides a dynamic filter controller (using simple checkboxes) to display only the tasks of interest
for particular logic issues.
Introduction to – BPC Logic Filter for Microsoft Project 10-Mar-20
Boyle Project Consulting, PLLC – Charlotte, NC USA 10
Figure 10. Project Logic Checker Dynamic Filter Control Form
13. Added the Logic Quick Checker function. This provides a method for one-click examination of key project
schedule health metrics, with only minimal user input required.
Introduction to – BPC Logic Filter for Microsoft Project 10-Mar-20
Boyle Project Consulting, PLLC – Charlotte, NC USA 11
Figure 11. Logic Quick Checker Output Form
14. Later added a Task Logic Inspector. This function provides data-rich interface windows for examining
schedule logic relationships – typically verifying the Tracer/Filter results on a task-by-task basis. In
addition to the logic information, the Logic Inspector windows provide “jump” buttons to navigate through
the schedule based solely on logical relationships. The Logic Inspector is the most-used tool in all of BPC
Logic Filter, for good reason.
Introduction to – BPC Logic Filter for Microsoft Project 10-Mar-20
Boyle Project Consulting, PLLC – Charlotte, NC USA 12
Figure 12. Task Logic Inspector Windows
15. Integrated the QuickTrace macros. This collection of simple programs – which I originally wrote and
shared in a weekend blog entry – performs quick filtering, highlighting, and sorting of schedule tasks based
strictly on internal MSP task properties. QuickTrace results are 100% consistent with the results of MSP’s
“Task Inspector” tool and its “Task Paths” bar styles. Comparing these results with those obtained using
the Task Logic Tracer can be enlightening, especially when “Driving” relationships are examined.
The attentive reader may notice I did not add any features to answer Question 7 on the Needs list: What is the real
“Critical Path” and how is this related to Project’s “Critical” task flag? (Is it related at all?) I don’t think there
is a good answer except for relatively simple project schedules. With BPC Logic Filter, I don’t rely on Project’s
Introduction to – BPC Logic Filter for Microsoft Project 10-Mar-20
Boyle Project Consulting, PLLC – Charlotte, NC USA 13
Critical flag (or Total Slack) anymore.
3.3 Sharing the Tools
I wrote BPC Logic Filter to be more effective and efficient as a project management consultant in multiple
industries. Within a very short time the set of macros comprising BPC Logic Filter became the “go to” tools in my
MS Project toolbox. I could now do in a few seconds – and with perfect repeatability – what previously could be
done only manually over several hours and with unavoidable human error. Now I was routinely using the tools to
analyze, to persuade, to justify, and to report status. This last of course included monthly management updates of
project critical path (i.e. the driving and near driving paths to the key completion milestones.)
Then came the objections, “we would like to open the project file and re-print the critical path reports (maybe with
a few changes), but all we get is a blank screen! Why can’t we do this?” The very people I had helped to develop
in client organizations now couldn’t do their jobs because I had set a certain standard and then withheld the tools to
meet it. I had also set up a situation where my firm’s primary value to our clients might devolve to “software-
jockey” rather than keeping our true focus on successful project management processes and outcomes through
people. It seemed clear, then, that we needed to find a way to share these tools with clients and others.
Since macros are not easy to share on a large scale, I spent a few more hundreds of hours preparing BPC Logic
Filter for deployment as a Project Add-In. This process exposed how terribly under-educated I was in the
fundamentals of object-oriented program design. Nevertheless, the resulting program runs as well (though not quite
as fast) as its predecessors.
BPC Logic Filter was deployed for initial (internal) testing as a Project Add-In in April 2015. The first beta-testing
began at client sites in North America in May 2015, and we actively sought other beta test sites to validate the
software before proceeding with general deployment in Q3-Q4 2015. From that time through the beginning of
2019, BPC Logic Filter remained non-commercial software that we freely licensed to clients, other qualified
professionals, and advanced academic users. Substantial improvements were made during this period, often in
response to diverse user needs. Beginning in Q1 2019, we made the tool generally available for downloading, trial
operation, and commercial licensing.
A Note on Language Packs: BPC Logic Filter uses English as its sole language for user interface, but it has been
adapted for use with Microsoft language packs for a number of different locales. Additional language packs are
added in response to specific user requests.
Introduction to – BPC Logic Filter for Microsoft Project 10-Mar-20
Boyle Project Consulting, PLLC – Charlotte, NC USA 14
4.0 Notes on Schedule Calculations
4.1 Dates
BPC Logic Filter does not change the dates. Because it is necessary to compute the path relative float for each task
in the analysis, BPC Logic Filter mimics most of MSP’s forward-pass and/or backward-pass analyses, consistent
with MSP default behavior for task calendars, leads and lags.6 All task dates, however, remain exactly as computed
by MS Project. This also means that if you have made a change to the schedule logic without re-calculating the
dates, then BPC Logic Filter may display incorrect results.
4.2 Summary Tasks
While BPC Logic Filter does account for sequential logic (i.e. predecessors and successors) passing through
summary tasks, it ignores all sequential constraints that are passed through parent/child inheritance. Parent/child
inheritance means that if a summary task (the parent) is logically-driven or otherwise constrained to start no earlier
than a given Summary Start Date, all of its sub-tasks (the children) will inherit the same constraint. Similarly, the
date constraints of sub-tasks routinely roll up to the summary task. This behavior is not optional in MSP, and
haphazard application of scheduling logic to summary tasks and their subtasks can lead to schedule dates that are
difficult to explain or justify. For this reason, and since parent/child inheritance is not anticipated in the classical
CPM algorithm, it is customary to avoid applying sequential logic or constraints to summary tasks in professional
schedules. BPC Logic Filter is mainly aimed at CPM-oriented professional schedulers, so it was judged that
including a feature to check for such inheritance was simply not worth the additional complexity. It may be added
to future versions.
4.3 Inactive Tasks
BPC Logic Filter ignores “Inactive” Tasks in MSP 2010 but includes them in the logic tracing for MSP 2013+. As
defined when introduced with MSP 2010, “Inactive” tasks (i.e. tasks with Active field = False) are retained in the
schedule file for record purposes but are omitted from the schedule calculations. Consequently, when used with an
MSP 2010 build, BPC Logic Filter excludes inactive tasks from logic tracing and filtering. With the introduction
of MSP 2013, Microsoft changed this behavior such that – at calculation time only – Project inserts pseudo-links
between all predecessors and all successors of each inactive task.7 When used with an MSP 2013+ build, BPC
Logic Filter accurately traces driving logic through inactive tasks but excludes them from filtered views. Depending
6 BPC Logic Filter normally computes relative float using the effective calendar of the successor task and its resources. (An alternate relative float is computed using the predecessor calendar.) Project computes the slack of the two related activities each using its own effective calendar, ignoring resources. 7 This can lead to unexpected results for those who routinely activate and deactivate tasks as part of what-if analyses or contingency planning – especially if the inactivated tasks have relationships other than finish-to-start-with-zero-lag. Ironically, the few mentions of this change in the “blogosphere” seem to refer to it as a “fix” for the as-designed behavior observed in MSP 2010.
Introduction to – BPC Logic Filter for Microsoft Project 10-Mar-20
Boyle Project Consulting, PLLC – Charlotte, NC USA 15
on the exact nature of the inactive task dependencies, the relative float of some non-driving relationships may be
underestimated.
4.4 Manually-Scheduled Tasks
BPC Logic Filter ignores the “Task Mode” (2010+) and assumes all tasks with predecessors are automatically
scheduled. As a consequence, if a manually scheduled task has unresolved schedule conflicts, BPC Logic Filter
will ignore them. In the example below (Figure 13), the new “Manual Test Task” has been logically inserted
between Task 15 and Task 16, but the manual dates are unachievable in light of the Task 15 predecessor relationship.
The conflict is not resolved, and Project computes negative total slack as a result. BPC Logic Filter assumes that
the unresolved conflict reflects an unreal relationship, and all the dates shown will be honored.
Figure 13. Impact of Manually Scheduled Tasks
4.5 Resource Leveling
BPC Logic Filter allows resource leveling. When “Check Resource Leveling Drivers” is not selected, the program
will account for leveling the same way that Project does when computing slack, i.e. by including the “leveling
delay” field in the backward pass to eliminate “phantom” float in the logically-connected tasks. Such results are
hardly useful, however, since the resource-constrained driving path remains hidden.
If “Check Resource Leveling Drivers” is selected, then the user should carefully review the results to understand
the resource constraints that are implied by the order of the tasks. MS Project’s leveling algorithm can make major
changes to the inferred logical paths in response to minimal modifications of the leveling parameters. BPC Logic
Filter utilizes but does not report these parameters, and the user should be careful to document them separately. In
addition, Project does allow users to manually-enter values for task (and assignment) leveling delay, but BPC Logic
Filter may be unable to identify a resource driver under such conditions.
BPC Logic Filter identifies resource drivers solely by time adjacency of resource assignments; that is, any task that
releases a resource immediately before a leveling-delayed task begins to use it is considered a resource driver for
the leveled task. If two or more tasks release a leveled resource at the same time, then each is considered an
equivalent, parallel, resource driver, regardless of its relative resource demand or work. For projects with large
resource pools that are allocated among many tasks with fractional resource demands, then a large number of
ID Unique ID Task Name Start Finish Duration Total Slack
BPC Relative Float (d): 0 16 Jun '15 10 Aug '15 40 days4 8388611 Task13 16 Jun '15 29 Jun '15 10 days -46 days
5 8388612 Task14 30 Jun '15 13 Jul '15 10 days -46 days
6 8388613 Task15 14 Jul '15 27 Jul '15 10 days -46 days
8 8388614 Task16 28 Jul '15 10 Aug '15 10 days 20 days
BPC Relative Float (d): 41 01 Mar '15 30 May '15 67 days7 8388646 Manual Test Task 01 Mar '15 30 May '15 67 days 61 days
0% 0%
0% 0%
0% 0%
0%
0%
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov1st Quarter 2nd Quarter 3rd Quarter 4th Quart
Introduction to – BPC Logic Filter for Microsoft Project 10-Mar-20
Boyle Project Consulting, PLLC – Charlotte, NC USA 16
parallel driving paths may be inferred. Under such conditions, the concept of a “resource constrained driving path”
may not be valid.
Note that resource-leveled schedules are not compatible with Drag Analysis. A future upgrade to improve
compatibility is planned.
5.0 USER APPLICATIONS AND SETTINGS
A User Guide, separate from this document, provides detailed instructions related to the user interface, applications,
settings, and interpretation of program output. The User Guide is made available to trial users and registered users
after installation of the software.
6.0 SOFTWARE EDITIONS AND LICENSING
BPC Logic Filter is targeted for per-user licensing in Standard and Professional Editions, with the latter being
required for more advanced functions. These editions are NOT related to the Microsoft Project versions; both
editions work with any modern desktop version of Microsoft Project. Users who evaluate a Trial Version but elect
not to upgrade the software will retain limited (i.e. Freeware Edition) functionality. See Table 1. In general, the
Freeware Edition includes elementary logic tracing capability along with the general display options. This improves
upon what might be achieved by copying and adapting some of the publicly available vba code within a “macro-
building” context.
The Standard Edition adds full data persistence, the ability to show only driving/driven tasks (with constraint
delays), and the ability to use hourly schedules in all Tracer functions. In addition, the Standard Edition offers a
fully-integrated version of the QuickTrace macros and provides access to the pre-programmed Logic Quick
Checker, Longest Path, and Local Network special applications. Finally (and most importantly), the Standard
Edition provides full access to the Task Logic Inspector, including driving relationship flags, user-selectable data
columns, and logic-based schedule navigation (i.e. the Jump buttons.) The Standard Edition is aimed at the typical
Project Manager, administrator, or scheduler whose duties may include schedule development and review (for
simpler projects) or generating standard reports requiring these functions (for complex projects.)
The Professional Edition adds the more advanced functions described in this document, including Relative Float
Analysis (with sophisticated calendar handling), Cross-Project Links, Bounded Network Analysis (i.e. Target
Tasks), Driving Path Drag, Resource Leveling Drivers, and Gantt Bar Highlighting. The Professional Edition is
aimed at the professional project planner/scheduler, scheduling consultant, or forensics consultant whose duties
require a much more comprehensive and in-depth understanding of the scheduling logic network.
7.0 SOFTWARE DEPLOYMENT AND SECURITY
BPC Logic Filter is securely published to a Microsoft Azure cloud server for deployment as a self-updating
ClickOnce application. (ClickOnce is a Microsoft technology developed for this purpose.) The
Introduction to – BPC Logic Filter for Microsoft Project 10-Mar-20
Boyle Project Consulting, PLLC – Charlotte, NC USA 17
download/installation process is seamlessly integrated with Microsoft’s Internet Explorer (and Edge) browser, and
downloading using other browsers is not recommended. By default, ClickOnce applications are installed as
standalone additions to a Windows User account. Such installations normally do not require administrative
privileges, but such limitations can be imposed by corporate security policy.
Right after installation, users will be prompted to accept the End User License Agreement and to validate or change
a selected folder for storing log files. Rejection of the EULA may lead to unreliable results.
During operation, the software requires continuous internet connectivity for two purposes:
At each startup it checks for updates at the deployment server.
At various times during operation it communicates with a license service to verify permissions for the
advanced functions. (The license service retains a minimal record of each such communication, including
the license number and the user’s public IP address.) If the license service connection is blocked or
disconnected, then the software will still run, but the advanced functions will be unavailable.
Introduction to – BPC Logic Filter for Microsoft Project 10-Mar-20
Boyle Project Consulting, PLLC – Charlotte, NC USA 1
Feature Freeware Edition
Standard Edition
Professional Edition
Remarks
Fully‐functioning trial version. All three editions may be evaluated. After expiration of the trial, Freeware edition features will remain available.
General Relationships to Check
Start with single OR multiple selected tasks to analyze
Trace Predecessors Only, Successors Only, or Both
General Display Options
Display Tracer results using Highlight OR Filter
Show/Hide Summary Task Rows (In Filter)
Show/Hide Completed Tasks (In Filter)
Re‐sort tasks to highlight dependencies (In Filter)
Display an Output Form (Copy/paste image or log for documentation.)
Autoformat Bar Chart & Page Layout Needed for in‐line filter display and resource drivers
Logic Tracing Options
Handle Inactive Tasks
Trace Summary Task Logical Dependencies
Trace Summary Task Parent/Child Dependencies X X X
Trace Local Logic Network Only Limited Dedicated Ribbon command for Registered versions.
Trace Driving Relationships Only Driving logic computed from relationship float.
‐ Override if successor is delayed by constraint (For complete longest path)
‐ Allow partial‐day lags/slips/float
Longest Path Filter Dedicated Ribbon command for Registered versions.
QuickTrace Driving logic provided by MSP.
Task Logic Inspector Detailed logic examination and navigation
Evaluate/Show Path Relative Float i.e. Multiple Float Path Analysis
Near Longest Path Filter
Include Cross‐Project Task Links (In Master/SubProject Structures)
Include a Target Task i.e. Bounded Network Analysis
Compute Driving Path Drag
Check Resource Leveling Drivers Resource Constrained Critical Path, Resource‐Constrained Driving Path
Use Combined Task/Resource Calendars
Other Options
Restore Last View
Preserve Analysis Results for Custom Views/Reports
If selected, preserves all flags, labels, and analysis results in task custom fields
Logic Quick Check Expedited Review of Task Logic Issues.
Project Logic Checker Detailed Review and Dynamic Filtering of Logic Issues
Table 1. BPC Logic Filter – Feature/Edition Comparison