BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro...

55
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 27-Sep-16 4236 Chandworth Rd. Charlotte, NC 28210 Phone: 704-916-6765 [email protected] Boyle Project Consulting, PLLC Project Management and Construction Support Services

Transcript of BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro...

Page 1: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

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 27-Sep-16

4236 Chandworth Rd. Charlotte, NC 28210

Phone: 704-916-6765 [email protected]

Boyle Project Consulting, PLLC

Project Management and Construction Support Services

Page 2: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

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 ........................................................................................................... 8

4.0 USER INTERFACE ......................................................................................................... 9

4.1 INSTALLATION .................................................................................................................... 9

4.2 TRIAL OPERATION............................................................................................................. 10

4.3 BASIC OPERATION ............................................................................................................ 10

4.4 USER APPLICATIONS ......................................................................................................... 11

4.4.1 General Task Logic Tracer......................................................................................... 11

4.4.1.1 Simple Project Logic Tracing ............................................................................................................. 11

4.4.1.2 Interpreting Path Relative Float .......................................................................................................... 13

4.4.1.3 Complex/Multiple Project Logic Tracing ............................................................................................ 15

4.4.1.4 Bounded Network (Target Task) Analysis .......................................................................................... 21

4.4.1.5 Driving Path Drag Analysis ................................................................................................................ 24

4.4.1.6 Re-Sorting to Show Logical Branches ................................................................................................ 27

4.4.1.7 Rounding-Off Clock-Time Errors ....................................................................................................... 31

4.4.1.8 Resource Leveling Drivers ................................................................................................................. 35 4.4.2 Longest Path Filter .................................................................................................... 37

4.4.3 Local Network Filter .................................................................................................. 41

4.5 USER SETTINGS ................................................................................................................. 44

4.5.1 General Settings ......................................................................................................... 44

4.5.2 Analysis Preferences .................................................................................................. 45

4.5.3 About/Upgrade .......................................................................................................... 46

4.6 DATA OUTPUT AND RETENTION ........................................................................................ 47

4.7 NOTES ON SCHEDULE CALCULATIONS............................................................................... 48

4.7.1 Dates ......................................................................................................................... 48

4.7.2 Summary Tasks .......................................................................................................... 48

4.7.3 Inactive Tasks ............................................................................................................ 49

Page 3: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA ii

4.7.4 Manually-Scheduled Tasks ......................................................................................... 49

4.7.5 Resource Leveling ...................................................................................................... 49

5.0 SOFTWARE EDITIONS AND LICENSING ................................................................ 50

Page 4: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

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 new tool that offers to fill 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 equally important, to show project stakeholders why they must finish intermediate tasks on time. 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.

Page 5: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

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 promises to do exactly this, but its results seem 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. With a couple exceptions, MS Project provides no similar functionality out of the box, and there are no obvious

Page 6: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 3

technical restrictions precluding it. I suspect a reluctance to add more complexity to a tool whose users (mostly) don’t want it – a by-product of its huge installed user base. 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. 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 the discussions I found seemed to make sense.

3.0 PROGRAM DEVELOPMENT

3.1 Initiation

About two years ago, 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. Given the immediate need, I felt confident in buying Rod Gill’s book – VBA Programming – For Microsoft Project

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….

Page 7: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 4

’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 next year – 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 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.

Page 8: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

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 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.

Page 9: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

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 tasks connecting the two tasks (one the “selected task” and the other the “target task”), with the lowest 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

Page 10: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

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

Page 11: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 8

Figure 6. Drag Analysis for a Simple Schedule Network

10. Finally, 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.

11. In concert with the added resource-leveling features, added mechanisms to modify the Gantt Chart appearance by adding custom-colored bars and text. These mechanisms allow the results of logical analysis to be presented within the context of the overall project schedule, not limited to filtered views.

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 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

5 5

5

Page 12: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 9

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 seems to run 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 seek other beta test sites to validate the software before proceeding with general deployment in Q3-Q4 2015.

4.0 User Interface

4.1 Installation

BPC Logic Filter is deployed from the internet as a Microsoft Click-Once installation for users of MS Project (2010+) operating in a Windows7 environment. The user simply clicks on a link that is provided by email or web page, and the Microsoft Office Customization Installer automatically downloads and installs the required files. The installation does not require elevated permissions, as it includes no executable files and is isolated to run only when called by Microsoft Project. As part of the initial installation, one or two permission windows may need to be accepted. (If desired afterward, the software can be uninstalled through the Control Panel’s “Uninstall Programs” dialog.) After installation, open Microsoft Project. The list of MS Project Add-Ins (found through Menu/File/Options/Add-Ins) should include a new Active Application Add-in called BPCLogicFilter1000, whose location is https://boyleprojectconsulting…..vsto. In Addition, the BPC Logic Filter button group (Figure 7) will be added to the ribbon of Project’s Add-Ins menu.

Figure 7. Ribbon Group for BPC Logic Filter

Page 13: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 10

Clicking any of the buttons will load the Add-in. If it is running for the first time, the user will be prompted to create or select a default folder path for storing program run logs. This selection can be changed later if desired through the settings menu.

4.2 Trial Operation

The trial license includes fully functioning software that, after a limited trial period, reverts to the limited Free Edition functionality. During the trial period, the user may use the “Trial Settings” tab within the Settings window to test the limitations of the three software editions available (Figure 8). The Pro Edition limitations are selected by default.

Figure 8. Select Which Edition to Evaluate (Trial Version Only)

4.3 Basic Operation

All logic filtering operations have three simple steps: 1. Use the mouse or cursers to select the task(s) to be analyzed (i.e. the “Selected Task(s)”). Your selection

must be made in a task-table view of an open project. 2. Click the ribbon button corresponding to the particular application to be executed. For example, clicking

the “Task Logic Tracer” button brings up the window below (Figure 9). 3. Select the analysis parameters to use, then click “Run” to apply the filter. The section on “User

Applications” will address the impacts of the different parameters.

Page 14: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 11

Figure 9. Task Logic Tracer Options Dialog

4.4 User Applications

BPC Logic Filter includes a general Task Logic Tracer application and two special applications with pre-selected analysis parameters.

4.4.1 General Task Logic Tracer

The task logic tracer is invoked by first selecting a task (or tasks) to start from, then clicking the ribbon button.

4.4.1.1 Simple Project Logic Tracing

Figure 10 presents the same simple schedule network previously introduced in Figure 1 (called Project2a) with 2 parallel branches connecting common start and finish tasks. Each of the 2 main branches also has side-branch comprised of a single task. Figure 11 demonstrates the result of running the task logic tracer with simple parameters, starting from the finish task (Task9) and looking backward. (The Output Form is shown with the bar chart to document the analysis). The key parameters are:

1. Show all predecessors – not only driving; 2. Do NOT re-sort to show branches.

The resulting bar chart is identical to the original schedule. No tasks are hidden because all tasks are predecessors

Page 15: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 12

of Task9. Throughout BPC Logic Filter, the “Selected Task” – i.e. the starting point of the logic tracing – is identified by yellow highlighting in the table. If multiple tasks are selected, then the logic tracing will be completed for each of them in sequence, and all selected tasks will be highlighted.

Figure 10. Project 2a.mpp Simple Project Schedule Network

Figure 11. Project 2a.mpp – Predecessors of Task 9

Page 16: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 13

Figure 12 demonstrates the result of running the task logic tracer – still starting from Task9 – with more advanced parameters such as:

1. Check driving/driven tasks only. 2. (Use Professional Options to expand the definition of “driving/driven tasks” to include all tasks within 100

days of a driving relationship.) Evaluate/Show Path Relative Float = Checked – with Relative Float limit of 100 days away from driving.

3. Re-Sort to show logical branches. The resulting bar chart clearly displays a single driving/critical path and 3 other float paths that are 5, 7, and 12 days away from the driving/critical path. These correlate to the illustration of path relative float in Figure 3.

Figure 12. Project 2a.mpp – Multiple Float Path Predecessors of Task 9

4.4.1.2 Interpreting Path Relative Float

As noted earlier, the (path) Relative Float is the amount that a specified (predecessor) task may slip before affecting a particular task among its logical successors. Thus, in many useful cases, a task’s Relative Float could be equally

Page 17: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 14

referred to as its number of days away from the driving path (for a “selected” task) as in the previous example. When the successors rather than predecessors of a selected task are examined, the Relative Float definition is unchanged; it is the amount that the predecessor (i.e. the “selected” task) may slip without affecting the task at hand. In other words a successor task’s Relative Float could be equally described as its number of days away from being driven by the selected task. This is a far less useful quantity, and the user must be careful not to misinterpret the results with respect to other tasks. In the previous figure, Task21 at 12 days away from the driving/critical path for Task9 may be the subject of special interest. Figure 13 shows the result of selecting Task21 and re-running the tracer to check “Both” predecessors and successors. There it is evident that Task21 is driven by Task 0, Task 1, and Task 2, and that it may be allowed to slip 7 days before it affects Task 4. The two may then be allowed to slip a further 5 days before affecting Task9 (the project Finish). What should be clear is that, although the Relative Float values from the two analyses appear similar (and are of course related), they must be interpreted independently. Relative Float is measured from the starting point of the selected task. Relative Float values based on two different selected tasks (Task9 and Task21 in the previous examples) cannot be directly compared with each other. This is why it is good to be wary about permanent storage of such data within the project schedule – it is meaningless, and possibly even misleading, in the absence of the analysis parameters.

Page 18: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 15

Figure 13. Project 2a.mpp – Bi-directional Logic Analysis of Task 21

4.4.1.3 Complex/Multiple Project Logic Tracing

Figure 14 demonstrates a substantial expansion of the previous project schedule network by adding two sub-projects – Project3a and Project4a – with some new logical links into our existing project (re-named Project2c and with its start moved from Dec’13 to April’15). In addition, Project4a has its own nested sub-projects Project4aSub and Project4aSubSub. The new tasks and relationships have substantially delayed Tasks 5-9 (part of our earlier critical path).

Page 19: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 16

Figure 14. Project 2c.mpp with Multi-tiered Sub Projects

Page 20: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 17

By re-running the previously simple analysis of Figure 11 (i.e. “show all predecessors of Task9) – but including all Cross-Project Links – we can condense the view slightly to that of Figure 15.

Figure 15. Project 2c.mpp with Sub-Projects – Predecessors of Task 9

ID Unique ID Task Name Early Start Early Finish Duration Predecessors

1 10 1 Task0 01 Apr '15 01 Apr '15 1 day2 1 2 Task1 02 Apr '15 15 Apr '15 10 days 13 2 3 Task2 16 Apr '15 29 Apr '15 10 days 24 11 4 Task21 30 Apr '15 04 May '15 3 days 35 3 5 Task3 30 Apr '15 13 May '15 10 days 36 4 6 Task4 14 May '15 27 May '15 10 days 5,4

9 5 9 Task5 12 Jan '16 25 Jan '16 10 days 1,F:\Thomas\MyDocuments\BPC\References\ProjectManagement\TMB

Workbooks\Project4a.mpp\811 6 11 Task6 02 Feb '16 15 Feb '16 10 days 9FS+50%12 12 12 Task61 16 Feb '16 18 Feb '16 3 days 1113 7 13 Task7 16 Feb '16 29 Feb '16 10 days 1114 8 14 Task8 01 Mar '16 14 Mar '16 10 days 13,12

16 9 16 Task9 15 Mar '16 15 Mar '16 1 day 14,6

18 24 18 Project3a 28 May '15 01 Aug '16 308 days2 8388609 2 Task11 28 May '15 10 Jun '15 10 days F:\Thomas\My

Documents\BPC\References\ProjectManagement\TMBWorkbooks\Project2c.mpp\6

3 8388610 3 Task12 11 Jun '15 24 Jun '15 10 days 24 8388611 4 Task13 25 Jun '15 08 Jul '15 10 days 35 8388612 5 Task14 09 Jul '15 22 Jul '15 10 days 46 8388613 6 Task15 23 Jul '15 05 Aug '15 10 days 57 8388614 7 Task16 06 Aug '15 19 Aug '15 10 days 68 8388615 8 Task17 20 Aug '15 02 Sep '15 10 days 79 8388616 9 Task18 03 Sep '15 16 Sep '15 10 days 810 8388617 10 Task19 17 Sep '15 30 Sep '15 10 days 919 26 19 Project4a 24 Mar '15 11 Jan '16210 days3 12582913 3 Task41 20 Oct '15 02 Nov '15 10 days F:\Thomas\My

Documents\BPC\References\ProjectManagement\TMBWorkbooks\Project3a.mpp\10,F:\Thomas\My

Documents\BPC\References\ProjectManagement\TMBWorkbooks\Project4aSub.mpp\9

4 12582914 4 Task42 03 Nov '15 16 Nov '15 10 days 35 12582915 5 Task43 17 Nov '15 30 Nov '15 10 days 46 12582916 6 Task44 01 Dec '15 14 Dec '15 10 days 57 12582917 7 Task45 15 Dec '15 28 Dec '15 10 days 68 12582918 8 Task46 29 Dec '15 11 Jan '16 10 days 7

10 12582927 10 Project4aSub 24 Mar '15 19 Oct '15 150 days1 16777217 1 Task471 24 Mar '15 20 Apr '15 20 days

3 16777218 3 Task472 21 Apr '15 18 May '15 20 days 14 16777219 4 Task473 19 May '15 15 Jun '15 20 days 35 16777220 5 Task474 16 Jun '15 13 Jul '15 20 days 46 16777221 6 Task475 14 Jul '15 10 Aug '15 20 days 58 16777222 8 Task476 25 Aug '15 21 Sep '15 20 days 6,F:\Thomas\My

Documents\BPC\References\ProjectManagement\TMBWorkbooks\Project4aSubSub.mpp\7

9 16777223 9 Task477 22 Sep '15 19 Oct '15 20 days 8

11 16777224 11 Project4aSubSub 21 Apr '15 24 Aug '15 90 days2 20971521 2 Task4711 21 Apr '15 11 May '15 15 days F:\Thomas\My

Documents\BPC\References\ProjectManagement\TMBWorkbooks\Project4aSub.mpp\1

3 20971522 3 Task4712 12 May '15 01 Jun '15 15 days 24 20971523 4 Task4713 02 Jun '15 22 Jun '15 15 days 35 20971524 5 Task4714 23 Jun '15 13 Jul '15 15 days 46 20971525 6 Task4715 14 Jul '15 03 Aug '15 15 days 57 20971526 7 Task4716 04 Aug '15 24 Aug '15 15 days 6

Task0Task1

Task2Task21

Task3Task4

Task5

Task6Task61

Task7Task8

Task9

Task11

Task12Task13

Task14Task15

Task16Task17

Task18Task19

Project4aProject4aTask41

Task42Task43

Task44Task45

Task46

Project4aSubProject4aSubTask471

Task472Task473

Task474Task475

Task476

Task477

Project4aSubSubProject4aSubSubTask4711

Task4712Task4713

Task4714Task4715

Task4716

B E M B E M B E M B E M B E M B E M B EMarch May July September November January March

Page 21: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 18

Figure 16 illustrates the driving path only for Task9. It is now clear that this task is driven by the details of Project4a and its nested subprojects.

Figure 16. Project 2c.mpp with Sub-Projects – Driving-Only Predecessors of Task 9

Finally, a complete picture of the logic controlling Task9 is obtained by re-running the task logic tracer with Relative Float values included and re-sorting to show logical branches. Figure 17 shows the resulting bar chart with one linear driving path, two significant side branches at 10 and 13 days off the driving path, and the same two single-task side-branches at 7 and 20 days off the driving path.

ID Unique ID Task Name Early Start Early Finish Duration Predecessors

9 5 9 Task5 12 Jan '16 25 Jan '16 10 days 1,F:\Thomas\MyDocuments\BPC\References\ProjectManagement\TMB

Workbooks\Project4a.mpp\811 6 11 Task6 02 Feb '16 15 Feb '16 10 days 9FS+50%13 7 13 Task7 16 Feb '16 29 Feb '16 10 days 1114 8 14 Task8 01 Mar '16 14 Mar '16 10 days 13,12

16 9 16 Task9 15 Mar '16 15 Mar '16 1 day 14,6

19 26 19 Project4a 24 Mar '15 11 Jan '16210 days3 12582913 3 Task41 20 Oct '15 02 Nov '15 10 days F:\Thomas\My

Documents\BPC\References\ProjectManagement\TMBWorkbooks\Project3a.mpp\10,F:\Thomas\My

Documents\BPC\References\ProjectManagement\TMBWorkbooks\Project4aSub.mpp\9

4 12582914 4 Task42 03 Nov '15 16 Nov '15 10 days 35 12582915 5 Task43 17 Nov '15 30 Nov '15 10 days 46 12582916 6 Task44 01 Dec '15 14 Dec '15 10 days 57 12582917 7 Task45 15 Dec '15 28 Dec '15 10 days 68 12582918 8 Task46 29 Dec '15 11 Jan '16 10 days 7

10 12582927 10 Project4aSub 24 Mar '15 19 Oct '15 150 days1 16777217 1 Task471 24 Mar '15 20 Apr '15 20 days

8 16777222 8 Task476 25 Aug '15 21 Sep '15 20 days 6,F:\Thomas\MyDocuments\BPC\References\ProjectManagement\TMB

Workbooks\Project4aSubSub.mpp\79 16777223 9 Task477 22 Sep '15 19 Oct '15 20 days 8

11 16777224 11 Project4aSubSub 21 Apr '15 24 Aug '15 90 days2 20971521 2 Task4711 21 Apr '15 11 May '15 15 days F:\Thomas\My

Documents\BPC\References\ProjectManagement\TMBWorkbooks\Project4aSub.mpp\1

3 20971522 3 Task4712 12 May '15 01 Jun '15 15 days 24 20971523 4 Task4713 02 Jun '15 22 Jun '15 15 days 35 20971524 5 Task4714 23 Jun '15 13 Jul '15 15 days 46 20971525 6 Task4715 14 Jul '15 03 Aug '15 15 days 57 20971526 7 Task4716 04 Aug '15 24 Aug '15 15 days 6

Task5

Task6Task7

Task8

Task9

Project4aProject4aTask41

Task42Task43

Task44Task45

Task46

Project4aSubProject4aSubTask471

Task476

Task477

Project4aSubSubProject4aSubSubTask4711

Task4712Task4713

Task4714Task4715

Task4716

B E M B E M B E M B E M B E M B E M B EMarch May July September November January March

Page 22: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 19

Figure 17. Project 2c.mpp with Sub-Projects – Multiple Float Path Predecessors of Task 9, Re-Sorted

For completeness, we can also repeat the previous analysis of Task21. Now as shown in Figure 18, Task21 can still slip 7 days before affecting Task4 and its (new) successors. Together they can slip an additional 20 days before affecting two distinct groups of successor tasks. All of these conclusions are independent of Project’s Total Slack calculations.

ID Unique ID Task Name Early Start Early Finish Duration Total Slack

BPC Relative Float (d): 0 24 Mar '15 15 Mar '16 256 days1 16777217 Task471 24 Mar '15 20 Apr '15 20 days 0 days2 20971521 Task4711 21 Apr '15 11 May '1515 days 0 days3 20971522 Task4712 12 May '15 01 Jun '15 15 days 0 days4 20971523 Task4713 02 Jun '15 22 Jun '15 15 days 0 days5 20971524 Task4714 23 Jun '15 13 Jul '15 15 days 0 days6 20971525 Task4715 14 Jul '15 03 Aug '15 15 days 0 days7 20971526 Task4716 04 Aug '15 24 Aug '15 15 days 0 days8 16777222 Task476 25 Aug '15 21 Sep '15 20 days 0 days9 16777223 Task477 22 Sep '15 19 Oct '15 20 days 0 days3 12582913 Task41 20 Oct '15 02 Nov '15 10 days 0 days4 12582914 Task42 03 Nov '15 16 Nov '15 10 days 0 days5 12582915 Task43 17 Nov '15 30 Nov '15 10 days 0 days6 12582916 Task44 01 Dec '15 14 Dec '15 10 days 0 days7 12582917 Task45 15 Dec '15 28 Dec '15 10 days 0 days8 12582918 Task46 29 Dec '15 11 Jan '1610 days 0 days9 5 Task5 12 Jan '16 25 Jan '16 10 days 0 days11 6 Task6 02 Feb '16 15 Feb '16 10 days 0 days13 7 Task7 16 Feb '16 29 Feb '16 10 days 0 days14 8 Task8 01 Mar '16 14 Mar '16 10 days 0 days16 9 Task9 15 Mar '16 15 Mar '16 1 day 89 days

BPC Relative Float (d): 7 16 Feb '16 18 Feb '16 3 days12 12 Task61 16 Feb '16 18 Feb '16 3 days 7 days

BPC Relative Float (d): 10 21 Apr '15 10 Aug '15 80 days3 16777218 Task472 21 Apr '15 18 May '15 20 days 10 days4 16777219 Task473 19 May '15 15 Jun '15 20 days 10 days5 16777220 Task474 16 Jun '15 13 Jul '15 20 days 10 days6 16777221 Task475 14 Jul '15 10 Aug '15 20 days 10 days

BPC Relative Float (d): 13 01 Apr '15 30 Sep '15 131 days1 10 Task0 01 Apr '15 01 Apr '15 1 day 13 days2 1 Task1 02 Apr '15 15 Apr '15 10 days 13 days3 2 Task2 16 Apr '15 29 Apr '15 10 days 13 days5 3 Task3 30 Apr '15 13 May '15 10 days 13 days6 4 Task4 14 May '15 27 May '15 10 days 13 days2 8388609 Task11 28 May '15 10 Jun '15 10 days 13 days3 8388610 Task12 11 Jun '15 24 Jun '15 10 days 13 days4 8388611 Task13 25 Jun '15 08 Jul '15 10 days 13 days5 8388612 Task14 09 Jul '15 22 Jul '15 10 days 13 days6 8388613 Task15 23 Jul '15 05 Aug '15 10 days 13 days7 8388614 Task16 06 Aug '15 19 Aug '15 10 days 13 days8 8388615 Task17 20 Aug '15 02 Sep '15 10 days 13 days9 8388616 Task18 03 Sep '15 16 Sep '15 10 days 13 days10 8388617 Task19 17 Sep '15 30 Sep '15 10 days 13 days

BPC Relative Float (d): 20 30 Apr '15 04 May '15 3 days4 11 Task21 30 Apr '15 04 May '15 3 days 20 days

0% 0%0% 0%

0% 0%0% 0%

0% 0%0% 0%

0% 0%0% 0%

0% 0%0% 0%

0% 0%0% 0%

0% 0%0% 0%

0% 0%0% 0%

0% 0%0% 0%

0% 0%0%

0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%

Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Jan Feb Mar Apr1st Quarter 2nd Quarter 3rd Quarter 4th Quarter 1st Quarter 2nd Quarter

Page 23: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 20

Figure 18. Project 2c.mpp with Sub-Projects – Bi-Directional, Multiple Float Path Analysis Task 21, Re-Sorted

ID Unique ID Task Name Early Start Early Finish Duration Total Slack

1-Predecessors of Selected Task 01 Apr '15 29 Apr '15 21 days BPC Relative Float (d): 0 01 Apr '15 29 Apr '15 21 days

3 2 3 Task2 16 Apr '15 29 Apr '15 10 days 13 days2 1 2 Task1 02 Apr '15 15 Apr '15 10 days 13 days1 10 1 Task0 01 Apr '15 01 Apr '15 1 day 13 days

2-Selected Tasks 30 Apr '15 04 May '15 3 days BPC Relative Float (d): 0 30 Apr '15 04 May '15 3 days

4 11 4 Task21 30 Apr '15 04 May '15 3 days 20 days

3-Successors of Selected Task 14 May '15 01 Aug '16 318 days BPC Relative Float (d): 7 14 May '15 30 Sep '15 100 days

6 4 6 Task4 14 May '15 27 May '15 10 days 13 days2 8388609 2 Task11 28 May '15 10 Jun '15 10 days 13 days3 8388610 3 Task12 11 Jun '15 24 Jun '15 10 days 13 days4 8388611 4 Task13 25 Jun '15 08 Jul '15 10 days 13 days5 8388612 5 Task14 09 Jul '15 22 Jul '15 10 days 13 days6 8388613 6 Task15 23 Jul '15 05 Aug '15 10 days 13 days8 8388614 8 Task16 06 Aug '15 19 Aug '15 10 days 13 days9 8388615 9 Task17 20 Aug '15 02 Sep '15 10 days 13 days

10 8388616 10 Task18 03 Sep '15 16 Sep '15 10 days 13 days11 8388617 11 Task19 17 Sep '15 30 Sep '15 10 days 13 days

BPC Relative Float (d): 20 20 Oct '15 01 Aug '16 205 days3 12582913 3 Task41 20 Oct '15 02 Nov '15 10 days 0 days4 12582914 4 Task42 03 Nov '15 16 Nov '15 10 days 0 days5 12582915 5 Task43 17 Nov '15 30 Nov '15 10 days 0 days6 12582916 6 Task44 01 Dec '15 14 Dec '15 10 days 0 days7 12582917 7 Task45 15 Dec '15 28 Dec '15 10 days 0 days8 12582918 8 Task46 29 Dec '15 11 Jan '16 10 days 0 days9 5 9 Task5 12 Jan '16 25 Jan '16 10 days 0 days

25 8388628 25 Task30 26 Jan '16 08 Feb '16 10 days 35 days26 8388629 26 Task31 09 Feb '16 22 Feb '16 10 days 35 days27 8388630 27 Task32 23 Feb '16 07 Mar '16 10 days 35 days28 8388631 28 Task33 08 Mar '16 21 Mar '16 10 days 35 days29 8388632 29 Task34 22 Mar '16 04 Apr '16 10 days 35 days30 8388633 30 Task35 05 Apr '16 18 Apr '16 10 days 35 days31 8388634 31 Task36 19 Apr '16 02 May '16 10 days 35 days32 8388635 32 Task37 03 May '16 16 May '16 10 days 35 days33 8388636 33 Task38 17 May '16 30 May '16 10 days 35 days34 8388637 34 Task39 31 May '16 13 Jun '16 10 days 35 days11 6 11 Task6 02 Feb '16 15 Feb '16 10 days 0 days12 12 12 Task61 16 Feb '16 18 Feb '16 3 days 7 days14 8 14 Task8 01 Mar '16 14 Mar '16 10 days 0 days14 8388618 14 Task20 15 Mar '16 28 Mar '16 10 days 0 days15 8388619 15 Task21 29 Mar '16 11 Apr '16 10 days 0 days16 8388620 16 Task22 12 Apr '16 25 Apr '16 10 days 0 days17 8388621 17 Task23 26 Apr '16 09 May '16 10 days 0 days18 8388622 18 Task24 10 May '16 23 May '16 10 days 0 days19 8388623 19 Task25 24 May '16 06 Jun '16 10 days 0 days20 8388624 20 Task26 07 Jun '16 20 Jun '16 10 days 0 days21 8388625 21 Task27 21 Jun '16 04 Jul '16 10 days 0 days22 8388626 22 Task28 05 Jul '16 18 Jul '16 10 days 0 days23 8388627 23 Task29 19 Jul '16 01 Aug '16 10 days 0 days16 9 16 Task9 15 Mar '16 15 Mar '16 1 day 89 days36 8388638 36 Task40 16 Mar '16 29 Mar '16 10 days 89 days13 7 13 Task7 16 Feb '16 29 Feb '16 10 days 0 days

0%0%

0%

0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%0%0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%0%

M B E M B E M B E M B E M BJanuary May September January May September January

Page 24: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 21

4.4.1.4 Bounded Network (Target Task) Analysis

Bounded Network Analysis supports the examination of the detailed logic connecting any two tasks in the project schedule. Beginning with the “Selected Task”, logical relationships are traced through the schedule network until the “Target Task” is reached. The resulting filter shows only tasks that connect the Selected and Target tasks. While the first task is selected using the mouse or the cursor before starting the analysis, the target must be specified in the input form by its Unique_ID number. Throughout BPC Logic Filter, Target tasks are identified by rust/orange colored highlighting in the corresponding table row. As an example of Bounded Network Analysis, Task35 and Task2 are both visible in the Task21 analysis of the previous section. It is tempting to infer their direct relationships from Figure 18 and conclude that Task2 could slip a total of 20 days without affecting Task35. A more direct analysis of the relationship between the two tasks is shown in Figure 19 – which traces all predecessors of Task35 back to a Target Task which is Task2 (whose Unique_ID coincidentally is 2). Here it becomes clear that Task2 could only slip 13 days before affecting Task35, not the 20 days inferred from the prior analysis. (Task3 had been correctly omitted previously.)

Page 25: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 22

Figure 19. Project 2c.mpp with Sub-Projects – Multiple Float Path Connections Between Two Tasks (1-Direction)

Figure 20 and Figure 21 demonstrate the results of repeating the Task2-Task35 bounded network analysis using slightly different parameters. The first of these uses the same task specifications, but it changes the “Relationships to Check” from “Predecessors Only” to “Both”. This would be appropriate for general purpose use when it is not known in advance which task precedes the other. It is also useful for debugging accidental logic loops during schedule development. Using the “Both” setting, the program traces logic both backward and forward from the selected Task35, looking for the target Task2. The resulting list of tasks shown in Figure 20 is the same as the Predecessors-Only analysis of the previous figure (though grouped and sorted slightly differently).

ID Unique ID Task Name Start Finish Duration Total Slack

BPC Relative Float (d): 0 20 Oct '15 18 Apr '16 130 days3 12582913 Task41 20 Oct '15 02 Nov '15 10 days 0 days4 12582914 Task42 03 Nov '15 16 Nov '15 10 days 0 days5 12582915 Task43 17 Nov '15 30 Nov '15 10 days 0 days6 12582916 Task44 01 Dec '15 14 Dec '15 10 days 0 days7 12582917 Task45 15 Dec '15 28 Dec '15 10 days 0 days8 12582918 Task46 29 Dec '15 11 Jan '1610 days 0 days9 5 Task5 12 Jan '16 25 Jan '16 10 days 0 days25 8388628 Task30 26 Jan '16 08 Feb '16 10 days 35 days26 8388629 Task31 09 Feb '16 22 Feb '16 10 days 35 days27 8388630 Task32 23 Feb '16 07 Mar '16 10 days 35 days28 8388631 Task33 08 Mar '16 21 Mar '16 10 days 35 days29 8388632 Task34 22 Mar '16 04 Apr '16 10 days 35 days30 8388633 Task35 05 Apr '16 18 Apr '16 10 days 35 days

BPC Relative Float (d): 13 16 Apr '15 30 Sep '15 120 days3 2 Task2 16 Apr '15 29 Apr '15 10 days 13 days5 3 Task3 30 Apr '15 13 May '15 10 days 13 days6 4 Task4 14 May '15 27 May '15 10 days 13 days2 8388609 Task11 28 May '15 10 Jun '15 10 days 13 days3 8388610 Task12 11 Jun '15 24 Jun '15 10 days 13 days4 8388611 Task13 25 Jun '15 08 Jul '15 10 days 13 days5 8388612 Task14 09 Jul '15 22 Jul '15 10 days 13 days6 8388613 Task15 23 Jul '15 05 Aug '15 10 days 13 days8 8388614 Task16 06 Aug '15 19 Aug '15 10 days 13 days9 8388615 Task17 20 Aug '15 02 Sep '15 10 days 13 days10 8388616 Task18 03 Sep '15 16 Sep '15 10 days 13 days11 8388617 Task19 17 Sep '15 30 Sep '15 10 days 13 days

BPC Relative Float (d): 20 30 Apr '15 04 May '15 3 days4 11 Task21 30 Apr '15 04 May '15 3 days 20 days

0% 0%0% 0%

0% 0%0% 0%

0% 0%0% 0%

0% 0%0%

0%0%

0%0%

0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%

Mar Apr May Jun Jul Aug Sep Oct Nov Dec Jan Feb Mar Apr May1st Quarter 2nd Quarter 3rd Quarter 4th Quarter 1st Quarter 2nd Quarter

Page 26: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 23

Figure 20. Project 2c.mpp with Sub-Projects – Multiple Float Path Connections Between Two Tasks (Bi-Direction)

Figure 21 shows the results of reversing the selected task and target task. Now instead of starting with Task35 and looking for Task2, the program starts from Task2 and looks for Task35. Once again the resulting list of tasks is the same as the previous figures, but now they are shown as successors of Task2 rather than predecessors of Task35. As noted previously (in 4.4.1.2), each task’s Relative Float value now reflects its days away from being driven by Task2, and there is no direct relationship with the target task. Users should keep this in mind when applying Relative Float values from bounded network analyses.

ID Unique ID Task Name Start Finish Duration Total Slack

0-Target Task 16 Apr '15 29 Apr '15 10 daysBPC Relative Float (d): 13 16 Apr '15 29 Apr '15 10 days

3 2 Task2 16 Apr '15 29 Apr '15 10 days 13 days

1-Predecessors of Selected Task 30 Apr '15 04 Apr '16 243 daysBPC Relative Float (d): 0 20 Oct '15 04 Apr '16 120 days

29 8388632 Task34 22 Mar '16 04 Apr '16 10 days 35 days28 8388631 Task33 08 Mar '16 21 Mar '16 10 days 35 days27 8388630 Task32 23 Feb '16 07 Mar '16 10 days 35 days26 8388629 Task31 09 Feb '16 22 Feb '16 10 days 35 days25 8388628 Task30 26 Jan '16 08 Feb '16 10 days 35 days9 5 Task5 12 Jan '16 25 Jan '16 10 days 0 days8 12582918 Task46 29 Dec '15 11 Jan '16 10 days 0 days7 12582917 Task45 15 Dec '15 28 Dec '15 10 days 0 days6 12582916 Task44 01 Dec '15 14 Dec '15 10 days 0 days5 12582915 Task43 17 Nov '15 30 Nov '15 10 days 0 days4 12582914 Task42 03 Nov '15 16 Nov '15 10 days 0 days3 12582913 Task41 20 Oct '15 02 Nov '15 10 days 0 days

BPC Relative Float (d): 13 30 Apr '15 30 Sep '15 110 days11 8388617 Task19 17 Sep '15 30 Sep '15 10 days 13 days10 8388616 Task18 03 Sep '15 16 Sep '15 10 days 13 days9 8388615 Task17 20 Aug '15 02 Sep '15 10 days 13 days8 8388614 Task16 06 Aug '15 19 Aug '15 10 days 13 days6 8388613 Task15 23 Jul '15 05 Aug '15 10 days 13 days5 8388612 Task14 09 Jul '15 22 Jul '15 10 days 13 days4 8388611 Task13 25 Jun '15 08 Jul '15 10 days 13 days3 8388610 Task12 11 Jun '15 24 Jun '15 10 days 13 days2 8388609 Task11 28 May '15 10 Jun '15 10 days 13 days6 4 Task4 14 May '15 27 May '15 10 days 13 days5 3 Task3 30 Apr '15 13 May '15 10 days 13 days

BPC Relative Float (d): 20 30 Apr '15 04 May '15 3 days4 11 Task21 30 Apr '15 04 May '15 3 days 20 days

2-Selected Tasks 05 Apr '16 18 Apr '16 10 daysBPC Relative Float (d): 0 05 Apr '16 18 Apr '16 10 days

30 8388633 Task35 05 Apr '16 18 Apr '16 10 days 35 days

0%

0%0%

0%0%

0%0% 0%

0% 0%0% 0%

0% 0%0% 0%

0% 0%0% 0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%

0%

0%

Mar Apr May Jun Jul Aug Sep Oct Nov Dec Jan Feb Mar Apr May1st Quarter 2nd Quarter 3rd Quarter 4th Quarter 1st Quarter 2nd Quarter

Page 27: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 24

Figure 21. Project 2c.mpp with Sub-Projects – Multiple Float Path Connections Between Two Tasks (Reverse-Direction)

4.4.1.5 Driving Path Drag Analysis

As noted previously, Driving Path Drag is one metric for indicating how much overall duration (i.e. Drag) a certain task contributes to the driving path leading to the completion of a selected task in the project. For large, complex project schedules, it can be useful for evaluating and prioritizing potential schedule accelerations or recovery. Its use – in the context of Critical Path Drag – has also been advocated for integration with overall project and program cost assessment. Figure 22 introduces Driving Path Drag to the simple-network Relative-Float chart previously shown in Figure 12. As before, the Selected Task (Task9) is the last task in the schedule network, so the driving path is the same as the

ID Unique ID Task Name Start Finish Duration Total Slack

2-Selected Tasks 16 Apr '15 29 Apr '15 10 daysBPC Relative Float (d): 0 16 Apr '15 29 Apr '15 10 days

3 2 Task2 16 Apr '15 29 Apr '15 10 days 13 days

3-Successors of Selected Task 30 Apr '15 04 Apr '16 243 daysBPC Relative Float (d): 0 30 Apr '15 30 Sep '15 110 days

4 11 Task21 30 Apr '15 04 May '15 3 days 20 days6 4 Task4 14 May '15 27 May '15 10 days 13 days2 8388609 Task11 28 May '15 10 Jun '15 10 days 13 days3 8388610 Task12 11 Jun '15 24 Jun '15 10 days 13 days4 8388611 Task13 25 Jun '15 08 Jul '15 10 days 13 days5 8388612 Task14 09 Jul '15 22 Jul '15 10 days 13 days6 8388613 Task15 23 Jul '15 05 Aug '15 10 days 13 days8 8388614 Task16 06 Aug '15 19 Aug '15 10 days 13 days9 8388615 Task17 20 Aug '15 02 Sep '15 10 days 13 days10 8388616 Task18 03 Sep '15 16 Sep '15 10 days 13 days11 8388617 Task19 17 Sep '15 30 Sep '15 10 days 13 days5 3 Task3 30 Apr '15 13 May '15 10 days 13 days

BPC Relative Float (d): 13 20 Oct '15 04 Apr '16 120 days3 12582913 Task41 20 Oct '15 02 Nov '15 10 days 0 days4 12582914 Task42 03 Nov '15 16 Nov '15 10 days 0 days5 12582915 Task43 17 Nov '15 30 Nov '15 10 days 0 days6 12582916 Task44 01 Dec '15 14 Dec '15 10 days 0 days7 12582917 Task45 15 Dec '15 28 Dec '15 10 days 0 days8 12582918 Task46 29 Dec '15 11 Jan '16 10 days 0 days9 5 Task5 12 Jan '16 25 Jan '16 10 days 0 days25 8388628 Task30 26 Jan '16 08 Feb '16 10 days 35 days26 8388629 Task31 09 Feb '16 22 Feb '16 10 days 35 days27 8388630 Task32 23 Feb '16 07 Mar '16 10 days 35 days28 8388631 Task33 08 Mar '16 21 Mar '16 10 days 35 days29 8388632 Task34 22 Mar '16 04 Apr '16 10 days 35 days

4-Target Task 05 Apr '16 18 Apr '16 10 daysBPC Relative Float (d): 13 05 Apr '16 18 Apr '16 10 days

30 8388633 Task35 05 Apr '16 18 Apr '16 10 days 35 days

0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%0%

0% 0%0% 0%

0% 0%0% 0%

0% 0%0% 0%

0% 0%0%

0%0%

0%0%

0%

Apr May Jun Jul Aug Sep Oct Nov Dec Jan Feb Mar Apr May Jun2nd Quarter 3rd Quarter 4th Quarter 1st Quarter 2nd Quarter

Page 28: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 25

project’s Longest Path (= “Critical Path.”). The Drag values shown also directly correspond with those of the original Drag-related network diagram in Figure 6. Figure 23 provides a similar update of the expanded network analysis (still based on Task9) of Figure 17. In each case, the tasks included on the Driving Path (Relative Float = 0) are additionally grouped according to their Driving Path Drag values, while the other tasks are unchanged.

Figure 22. Project 2a.mpp – Drag Analysis of a Simple Schedule

ID UniqueID

Task Name Early Start Early Finish Duration TotalSlack

BPC Relative Float (d): 0 09 Dec '13 11 Feb '14 47 days BPC Driving Path Drag (d): 10 10 Dec '13 13 Jan '14 25 days

7 5 7 Task5 10 Dec '13 23 Dec '13 10 days 0 days8 6 8 Task6 31 Dec '13 13 Jan '14 10 days 0 days

BPC Driving Path Drag (d): 7 14 Jan '14 27 Jan '14 10 days10 7 10 Task7 14 Jan '14 27 Jan '14 10 days 0 days

BPC Driving Path Drag (d): 5 28 Jan '14 10 Feb '14 10 days11 8 11 Task8 28 Jan '14 10 Feb '14 10 days 0 days

BPC Driving Path Drag (d): 1 09 Dec '13 11 Feb '14 47 days1 10 1 Task0 09 Dec '13 09 Dec '13 1 day 0 days

12 9 12 Task9 11 Feb '14 11 Feb '14 1 day 0 days

BPC Relative Float (d): 5 10 Dec '13 03 Feb '14 40 days BPC Driving Path Drag (d): 0 10 Dec '13 03 Feb '14 40 days

2 1 2 Task1 10 Dec '13 23 Dec '13 10 days 5 days3 2 3 Task2 24 Dec '13 06 Jan '14 10 days 5 days5 3 5 Task3 07 Jan '14 20 Jan '14 10 days 5 days6 4 6 Task4 21 Jan '14 03 Feb '14 10 days 5 days

BPC Relative Float (d): 7 14 Jan '14 16 Jan '14 3 days BPC Driving Path Drag (d): 0 14 Jan '14 16 Jan '14 3 days

9 12 9 Task61 14 Jan '14 16 Jan '14 3 days 7 days

BPC Relative Float (d): 12 07 Jan '14 09 Jan '14 3 days BPC Driving Path Drag (d): 0 07 Jan '14 09 Jan '14 3 days

4 11 4 Task21 07 Jan '14 09 Jan '14 3 days 12 days

Task5Task6

Task7

Task8

Task0Task9

Task1Task2

Task3Task4

Task61

Task21

B M E B M E B M E BDecember January February March

Page 29: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 26

Figure 23. Project 2c.mpp with Sub-Projects – Drag Analysis of a Complex Schedule

ID Unique ID Task Name Early Start Early Finish Duration

BPC Relative Float (d): 0 24 Mar '15 15 Mar '16 256 days BPC Driving Path Drag (d): 20 24 Mar '15 21 Sep '15 130 days

1 16777217 1 Task471 24 Mar '15 20 Apr '15 20 days8 16777222 8 Task476 25 Aug '15 21 Sep '15 20 days

BPC Driving Path Drag (d): 15 21 Apr '15 03 Aug '15 75 days2 20971521 2 Task4711 21 Apr '15 11 May '15 15 days3 20971522 3 Task4712 12 May '15 01 Jun '15 15 days4 20971523 4 Task4713 02 Jun '15 22 Jun '15 15 days5 20971524 5 Task4714 23 Jun '15 13 Jul '15 15 days6 20971525 6 Task4715 14 Jul '15 03 Aug '15 15 days

BPC Driving Path Drag (d): 13 22 Sep '15 19 Oct '15 20 days9 16777223 9 Task477 22 Sep '15 19 Oct '15 20 days

BPC Driving Path Drag (d): 10 04 Aug '15 14 Mar '16 160 days7 20971526 7 Task4716 04 Aug '15 24 Aug '15 15 days3 12582913 3 Task41 20 Oct '15 02 Nov '15 10 days4 12582914 4 Task42 03 Nov '15 16 Nov '15 10 days5 12582915 5 Task43 17 Nov '15 30 Nov '15 10 days6 12582916 6 Task44 01 Dec '15 14 Dec '15 10 days7 12582917 7 Task45 15 Dec '15 28 Dec '15 10 days8 12582918 8 Task46 29 Dec '15 11 Jan '16 10 days9 5 9 Task5 12 Jan '16 25 Jan '16 10 days11 6 11 Task6 02 Feb '16 15 Feb '16 10 days14 8 14 Task8 01 Mar '16 14 Mar '16 10 days

BPC Driving Path Drag (d): 7 16 Feb '16 29 Feb '16 10 days13 7 13 Task7 16 Feb '16 29 Feb '16 10 days

BPC Driving Path Drag (d): 1 15 Mar '16 15 Mar '16 1 day16 9 16 Task9 15 Mar '16 15 Mar '16 1 day

BPC Relative Float (d): 7 16 Feb '16 18 Feb '16 3 days BPC Driving Path Drag (d): 0 16 Feb '16 18 Feb '16 3 days

12 12 12 Task61 16 Feb '16 18 Feb '16 3 days

BPC Relative Float (d): 10 21 Apr '15 10 Aug '15 80 days BPC Driving Path Drag (d): 0 21 Apr '15 10 Aug '15 80 days

3 16777218 3 Task472 21 Apr '15 18 May '15 20 days4 16777219 4 Task473 19 May '15 15 Jun '15 20 days5 16777220 5 Task474 16 Jun '15 13 Jul '15 20 days6 16777221 6 Task475 14 Jul '15 10 Aug '15 20 days

BPC Relative Float (d): 13 01 Apr '15 30 Sep '15 131 days BPC Driving Path Drag (d): 0 01 Apr '15 30 Sep '15 131 days

1 10 1 Task0 01 Apr '15 01 Apr '15 1 day2 1 2 Task1 02 Apr '15 15 Apr '15 10 days3 2 3 Task2 16 Apr '15 29 Apr '15 10 days5 3 5 Task3 30 Apr '15 13 May '15 10 days6 4 6 Task4 14 May '15 27 May '15 10 days2 8388609 2 Task11 28 May '15 10 Jun '15 10 days3 8388610 3 Task12 11 Jun '15 24 Jun '15 10 days4 8388611 4 Task13 25 Jun '15 08 Jul '15 10 days5 8388612 5 Task14 09 Jul '15 22 Jul '15 10 days6 8388613 6 Task15 23 Jul '15 05 Aug '15 10 days8 8388614 8 Task16 06 Aug '15 19 Aug '15 10 days9 8388615 9 Task17 20 Aug '15 02 Sep '15 10 days10 8388616 10 Task18 03 Sep '15 16 Sep '15 10 days11 8388617 11 Task19 17 Sep '15 30 Sep '15 10 days

BPC Relative Float (d): 20 30 Apr '15 04 May '15 3 days BPC Driving Path Drag (d): 0 30 Apr '15 04 May '15 3 days

4 11 4 Task21 30 Apr '15 04 May '15 3 days

0%0%

0%0%

0%0%

0%

0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%

0%

0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%

Mar Apr May Jun Jul Aug Sep Oct Nov Dec Jan Feb Mar Apr May Jun Jul Aug1st Quarter 2nd Quarter 3rd Quarter 4th Quarter 1st Quarter 2nd Quarter 3rd Quarter

Page 30: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 27

For completeness, we can also repeat the previous (bi-directional) analysis of Task21, now including Driving Path Drag as shown in Figure 24. For this particular selected task, adding Drag increases the size of the figure without contributing substantially to the logical analysis. As shown, BPC Logic Filter computes drag for driving predecessors of the selected task – drag for all other tasks is zero. Project teams often face the need to shorten or accelerate an entire schedule (or key portions of it) in response to internal or external disruptions, and Driving/Critical Path Drag has been suggested as a useful metric for prioritizing the specific tasks to address. While I do not wholeheartedly subscribe to that suggestion based on my own experience with complex engineering and construction projects (often with multiple, shifting critical- and near-critical-paths), Driving/Critical Path Drag values may prove useful for some projects. Thus, BPC Logic Filter accurately computes, displays, and stores Drag values subject to the defined analysis parameters. Due to variable calendars and other effects, Drag computations based on schedule network analysis do not always agree with Drag values computed using more intrusive methods. Recent releases of BPC Logic Filter include a “Brute Force” Drag checking option that is for experimental use only. The procedure modifies task durations and re-calculates the schedule. Unintended consequences may result, especially if the schedule includes complex resource loading. So as always, save your work and proceed with caution. Note that neither the network-based nor the “Brute Force” Drag analyses are compatible with resource-leveled schedules. A future upgrade to improve compatibility is planned.

4.4.1.6 Re-Sorting to Show Logical Branches

The input form for the Task Logic Tracer includes four General Display Options: • Hide Summary Rows • Hide Completed Tasks • Re-Sort to Show Logical Branches • Display an Output Form

The first two of these are relatively simple and self-explanatory additions to the filter specification, and the last is provided to allow more complete documentation of the analysis than can fit into a filter name. As seen in the previous figures however the re-sorting option has a bit more to it. Depending on the other parameters of the analysis, the “Re-Sort” option will adjust the displayed results according to Table 1. Essentially, if both predecessors and successors are checked, then a grouped display is useful to separately identify the selected task(s) and the target task (if any), as well as the predecessors and successors. This is the Relationship Type. If the “Check Driving/Driven Only” option is selected, then the order in which tasks are examined is closely correlated to the driving logical paths. Sorting the results accordingly provides a good display of parallel driving paths, if any. When the “Evaluate/Show Path Relative Float” option is also selected, then the same display parameters are used to incorporate the Relative Float data.

Page 31: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 28

Page 32: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 29

Figure 24. Project 2c.mpp with Sub-Projects – Bi-Directional, Multiple Float Path Logic Analysis of a Task with Drag

ID Unique ID Task Name Early Start Early Finish Duration Total Slack

1-Predecessors of Selected Task 01 Apr '15 29 Apr '15 21 days BPC Relative Float (d): 0 01 Apr '15 29 Apr '15 21 days

BPC Driving Path Drag (d): 10 02 Apr '15 29 Apr '15 20 days3 2 3 Task2 16 Apr '15 29 Apr '15 10 days 13 days2 1 2 Task1 02 Apr '15 15 Apr '15 10 days 13 days

BPC Driving Path Drag (d): 1 01 Apr '15 01 Apr '15 1 day1 10 1 Task0 01 Apr '15 01 Apr '15 1 day 13 days

2-Selected Tasks 30 Apr '15 04 May '15 3 days BPC Relative Float (d): 0 30 Apr '15 04 May '15 3 days

BPC Driving Path Drag (d): 3 30 Apr '15 04 May '15 3 days4 11 4 Task21 30 Apr '15 04 May '15 3 days 20 days

3-Successors of Selected Task 14 May '15 01 Aug '16 318 days BPC Relative Float (d): 7 14 May '15 30 Sep '15 100 days

BPC Driving Path Drag (d): 0 14 May '15 30 Sep '15 100 days6 4 6 Task4 14 May '15 27 May '15 10 days 13 days2 8388609 2 Task11 28 May '15 10 Jun '15 10 days 13 days3 8388610 3 Task12 11 Jun '15 24 Jun '15 10 days 13 days4 8388611 4 Task13 25 Jun '15 08 Jul '15 10 days 13 days5 8388612 5 Task14 09 Jul '15 22 Jul '15 10 days 13 days6 8388613 6 Task15 23 Jul '15 05 Aug '15 10 days 13 days8 8388614 8 Task16 06 Aug '15 19 Aug '15 10 days 13 days9 8388615 9 Task17 20 Aug '15 02 Sep '15 10 days 13 days

10 8388616 10 Task18 03 Sep '15 16 Sep '15 10 days 13 days11 8388617 11 Task19 17 Sep '15 30 Sep '15 10 days 13 days

BPC Relative Float (d): 20 20 Oct '15 01 Aug '16 205 days BPC Driving Path Drag (d): 0 20 Oct '15 01 Aug '16 205 days

3 12582913 3 Task41 20 Oct '15 02 Nov '15 10 days 0 days4 12582914 4 Task42 03 Nov '15 16 Nov '15 10 days 0 days5 12582915 5 Task43 17 Nov '15 30 Nov '15 10 days 0 days6 12582916 6 Task44 01 Dec '15 14 Dec '15 10 days 0 days7 12582917 7 Task45 15 Dec '15 28 Dec '15 10 days 0 days8 12582918 8 Task46 29 Dec '15 11 Jan '16 10 days 0 days9 5 9 Task5 12 Jan '16 25 Jan '16 10 days 0 days

25 8388628 25 Task30 26 Jan '16 08 Feb '16 10 days 35 days26 8388629 26 Task31 09 Feb '16 22 Feb '16 10 days 35 days27 8388630 27 Task32 23 Feb '16 07 Mar '16 10 days 35 days28 8388631 28 Task33 08 Mar '16 21 Mar '16 10 days 35 days29 8388632 29 Task34 22 Mar '16 04 Apr '16 10 days 35 days30 8388633 30 Task35 05 Apr '16 18 Apr '16 10 days 35 days31 8388634 31 Task36 19 Apr '16 02 May '16 10 days 35 days32 8388635 32 Task37 03 May '16 16 May '16 10 days 35 days33 8388636 33 Task38 17 May '16 30 May '16 10 days 35 days34 8388637 34 Task39 31 May '16 13 Jun '16 10 days 35 days11 6 11 Task6 02 Feb '16 15 Feb '16 10 days 0 days12 12 12 Task61 16 Feb '16 18 Feb '16 3 days 7 days14 8 14 Task8 01 Mar '16 14 Mar '16 10 days 0 days14 8388618 14 Task20 15 Mar '16 28 Mar '16 10 days 0 days15 8388619 15 Task21 29 Mar '16 11 Apr '16 10 days 0 days16 8388620 16 Task22 12 Apr '16 25 Apr '16 10 days 0 days17 8388621 17 Task23 26 Apr '16 09 May '16 10 days 0 days18 8388622 18 Task24 10 May '16 23 May '16 10 days 0 days19 8388623 19 Task25 24 May '16 06 Jun '16 10 days 0 days20 8388624 20 Task26 07 Jun '16 20 Jun '16 10 days 0 days21 8388625 21 Task27 21 Jun '16 04 Jul '16 10 days 0 days22 8388626 22 Task28 05 Jul '16 18 Jul '16 10 days 0 days23 8388627 23 Task29 19 Jul '16 01 Aug '16 10 days 0 days16 9 16 Task9 15 Mar '16 15 Mar '16 1 day 89 days36 8388638 36 Task40 16 Mar '16 29 Mar '16 10 days 89 days13 7 13 Task7 16 Feb '16 29 Feb '16 10 days 0 days

0%0%

0%

0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%0%0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%0%

M B E M B E M B E M B E M B E M B EJanuary May September January May September January May

Page 33: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 30

Analysis Parameters Displayed Results

Re-S

ort t

o Sh

ow L

ogic

al

Bran

ches

Relationships to Check

Chec

k Dr

ivin

g/Dr

iven

O

nly

Pred

s Onl

y

Succ

s Onl

y

Both

View Applied Group-By Applied Sort Criteria (within groups if

applicable)

þ þ No Change No Change No Change þ þ No Change No Change No Change þ þ No Change Name: BPC Relative Float - All Links

Group By: Relationship Type No Change

þ þ þ BPC_MultipleFloatPaths Name: BPC Relative Float Group By: Relative Float Then By: Driving Path Drag (descending, if applicable)

Task check order - descending

þ þ þ BPC_MultipleFloatPaths Name: BPC Relative Float Group By: Relative Float Then By: Driving Path Drag (descending, if applicable)

Task check order - ascending

þ þ þ BPC_MultipleFloatPaths Name: BPC Relative Float - All Links Group By: Relationship Type Then By: Relative Float Then By: Driving Path Drag (descending, if applicable)

Task check order - ascending

Table 1. Impact of Re-Sort Option

If it does not already exist in the project, the new view “BPC_MultipleFloatPaths” will be created in the project by copying and modifying the view that is in place at the time the filter is run. Once the view is created by BPC Logic Filter, the user is free to adjust table and bar chart specifications as needed (or to delete the view and re-create it later). As discussed, re-sorting of the filtered schedule is necessary to maximize the information flow from BPC Logic Filter. Unfortunately, the results can be almost completely unusable if the schedule:

a. Has duplicate, non-unique task names; and/or b. Relies on parent (i.e. summary) tasks to define the full scope of the child (i.e. sub-) task.

Under these conditions, the schedule can become unreadable except when grouped and sorted in its original state, including all summary tasks. This provides more reinforcement for the standard professional guidance against such practices, which are unfortunately all too common in MSP schedules.

Page 34: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 31

The new feature for Gantt Bar Highlighting (4.4.1.8) has been added to overcome these limitations.

4.4.1.7 Rounding-Off Clock-Time Errors

By default, BPC Logic Filter rounds all task date differences to the nearest day. This is beneficial for day-based schedules because it negates the minor clock-time errors that tend to creep into such schedules during routine updating. For an hourly turnaround schedule, however, such rounding is clearly undesirable. For example, Figure 25 illustrates a small schedule network with task durations ranging from 1 hour to 1 day. The schedule includes two concurrent groups of tasks leading to a single completion milestone.

Figure 25. Simple Hourly Project Schedule

The total duration of the Group2 tasks is 3 hours longer than the Group1 tasks, so Group2 clearly drives the completion milestone. Project correctly computes the outcome. Unfortunately, when the Task Logic Tracer is run for the completion milestone – using default parameters including “Round Lags/Slips/Float to nearest day” – all the tasks are shown as equally driving the milestone (Figure 26).

ID UniqueID

Task Name Early Start Early Finish Duration Predecessors

1 10 1 Group1 18 May '15 18 May '15 0.75 days2 1 1.1 Hourly1 18 May '15 18 May '15 1 hr3 2 1.2 Hourly2 18 May '15 18 May '15 1 hr 24 3 1.3 Hourly3 18 May '15 18 May '15 4 hrs 35 7 1.4 Hourly7 18 May '15 19 May '15 1 day 46 112 Group2 18 May '15 19 May '15 1.13 days7 4 2.1 Hourly4 18 May '15 18 May '15 4 hrs8 5 2.2 Hourly5 18 May '15 18 May '15 3 hrs 79 6 2.3 Hourly6 18 May '15 19 May '15 2 hrs 8

10 8 2.4 Hourly8 19 May '15 20 May '15 1 day 911 9 3 HourlyFinish 20 May '15 20 May '15 0 days 5,10

0%0%0%

0%0%

0%0%

0%0%

0%20-05

4 8 12 16 20 0 4 8 12 16 20 0 4 8 12 16 20 0 4 8 12 16 20 0Mon 18 May Tue 19 May Wed 20 May Thu 21 May Fri 22 May

Page 35: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 32

Figure 26. Impact of Daily Rounding on Simple Hourly Project Schedule

To correctly analyze such a schedule where lags and floats of less than 1 day are significant, then the “Round Lags…” checkbox must be unchecked. Unchecking the checkbox and re-running the Task Logic Tracer for the completion milestone yields the results of Figure 27, which are correct.

ID Unique ID

Task Name Start Finish Duration Total Slack

BPC Relative Float (d): 0 18 May '15 20 May '15 2.13d2 1 Hourly1 18 May '15 18 May '15 1 hr 3 hrs

3 2 Hourly2 18 May '15 18 May '15 1 hr 3 hrs4 3 Hourly3 18 May '15 18 May '15 4 hrs 3 hrs5 7 Hourly7 18 May '15 19 May '15 1 day 0.38 days

7 4 Hourly4 18 May '15 18 May '15 4 hrs 0 hrs8 5 Hourly5 18 May '15 18 May '15 3 hrs 0 hrs

9 6 Hourly6 18 May '15 19 May '15 2 hrs 0 hrs10 8 Hourly8 19 May '15 20 May '15 1 day 0 days11 9 HourlyFinish 20 May '15 20 May '15 0 days 0 days

0%0%

0%0%

0% 0%0% 0%

0% 0%0% 0%

18 0 6 12 18 0 6 12 18 0 6 12 18 0Mon 18 May Tue 19 May Wed 20 May Thu 21 May

Page 36: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 33

Figure 27. Un-Checking Daily Rounding for Correct Results on Simple Hourly Project Schedule

4.4.1.8 Gantt Bar Highlighting

As evidenced by Project’s large supply of default Gantt bar styles, it is often valuable to graphically present the results of the logical analysis within the context of a larger group of tasks or the overall project. The Highlighting Options are provided for this purpose. Figure 28 demonstrates a simple, in-line view of the logical ties to a single task in a simple schedule (the same schedule introduced at the beginning of this document.) The legend defines the bar colors for the selected task(s) as well as driving/driven, near-driving/driven, related (but with higher relative float) and unrelated tasks. Bars for related tasks are further identified by task name and relative float value, while unrelated tasks are de-emphasized. The chart alone clearly shows that Task 4 is driven by a chain of four predecessors and has another predecessor that could be delayed by 7 days without affecting Task 4. In addition, Task 4 itself could slip by 5 days without affecting Task 9 (the project completion). Finally, Task 4 is logically independent from the chain of (green) tasks that are in fact the critical path for the project. Figure 29 shows the selected highlighting options. “In-Line Only” applies the colored bars to a copy of whatever view (and filter) were in place before starting the logic analysis. In the absence of “In-Line Only,” the “Re-Color Bars” option will apply the bar colors (and associated filter) to a temporary copy of the existing view.

ID Unique ID

Task Name Start Finish Duration Total Slack

BPC Relative Float (d): 0 18 May '15 20 May '15 2.13 days7 4 Hourly4 18 May '15 18 May '15 4 hrs 0 hrs8 5 Hourly5 18 May '15 18 May '15 3 hrs 0 hrs9 6 Hourly6 18 May '15 19 May '15 2 hrs 0 hrs10 8 Hourly8 19 May '15 20 May '15 1 day 0 days11 9 HourlyFinish 20 May '15 20 May '15 0 days 0 days

BPC Relative Float (d): 0.38 18 May '15 19 May '15 1.75 days2 1 Hourly1 18 May '15 18 May '15 1 hr 3 hrs3 2 Hourly2 18 May '15 18 May '15 1 hr 3 hrs4 3 Hourly3 18 May '15 18 May '15 4 hrs 3 hrs5 7 Hourly7 18 May '15 19 May '15 1 day 0.38 days

0% 0%0% 0%

0% 0%0% 0%

0%0%

0%0%

0 6 12 18 0 6 12 18 0 6 12 18 0 6Mon 18 May Tue 19 May Wed 20 May Thu 21 May

Page 37: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 34

The relative float limits that define the two bands of near-driving relatedness can be manually selected by the user in the settings dialog. As shown in Figure 30, however, checking the AutoSet box in the settings allows the program to automatically assign the two lowest non-driving float values from each analysis.

Figure 28. In-Line Gantt Bar Coloring (Highlighting Predecessors and Successors of Task 4)

Figure 29. Highlighting Options for Previous Figure

Page 38: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 35

Figure 30. Settings for Highlighting Options Near-Driving Path Float Limits

4.4.1.9 Resource Leveling Drivers

Figure 31 depicts a simple schedule with only partially-complete sequencing logic and complete resource loading. Resource R1 is over-allocated, and resource-leveling may be used to determine a realistic schedule. Figure 32 depicts the same schedule after leveling (using day-by-day basis and priority-standard order.) One artifact of the leveling process is the task leveling delay field, shown in elapsed-days as the last column in each figure. This field summarizes the task’s total delay – due to leveling – compared to its logic-only schedule. After leveling, MS Project shows only one task as critical, while the other tasks have substantial slack values. This is misleading, yet it is common for resource-leveled schedules.

Figure 31. Simple Resource Loaded Schedule without Leveling

Page 39: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 36

Figure 32. Simple Resource Loaded Schedule after Leveling

Figure 33 demonstrates the result of using the “Check Resource Leveling Drivers” option in BPC Logic Filter (with other options as shown in Figure 34). Here the program identifies the “resource drivers” for leveled tasks and includes inferred Finish-to-Start relationships in the logic analysis. As a result, the resource constrained driving path for the selected task is shown, and resource drivers – including those that are not on the driving path – are distinctly identified in the Gantt chart.

Figure 33. Multiple Float Path Analysis of Simple Resource Leveled Schedule (Without Parallel Resource Paths)

Figure 34. Task Logic Tracer - Resource Options

The “Check Resource Leveling Drivers” option normally examines resource drivers only for tasks with non-zero leveling delay. Thus, while it clearly defines the resource-constrained critical path, resource constraints that are

Page 40: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 37

parallel/concurrent with logical constraints are ignored. Adding the “Check Resource Parallel Paths” option examines parallel resource drivers of all resource loaded tasks, including those without leveling delay. Figure 35 illustrates the consequence of this option on the simple project. Task 3 is added to the filter as a parallel, resource-constrained predecessor to Task 7, which has no leveling delay and is otherwise driven by logic. The “Check Resource Leveling Drivers” option is enabled only for schedules with resource leveling present.

Figure 35. Multiple Float Path Analysis of Simple Resource Leveled Schedule (With Parallel Resource Paths)

4.4.2 Longest Path Filter

The Longest Path Filter is invoked by opening and/or selecting a project schedule, then clicking the ribbon button. This method automatically selects the last logically-connected task(s) in the project schedule and then identifies and displays the driving path for the selected task(s). Since the starting tasks are automatically selected, the Longest Path Filter does not require an initial task selection. As a special-purpose analysis, the Longest Path Filter incorporates pre-configured parameters that cannot be changed by the user. These are greyed-out in the corresponding input form (Figure 36).

Page 41: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 38

Figure 36. Longest Path Filter Options Dialog

As shown, some parameters are set by default but may be alternately selected by the user. Figure 37 illustrates the results of the Longest Path Filter as applied to our “standard” project schedule (Project2c with subprojects) with default analysis and display parameters. These default parameters keep the pre-existing WBS/Outline organization of the schedule, which appears quite legible and useful for the simple schedule shown. For large hierarchical schedules, however, the resulting “Critical Path” chart can stretch over multiple pages with most of the space taken up by summary tasks. Figure 38 presents the same analysis, but this time including Drag and re-sorted to show logical branches. This approach is obviously more concise; it is also necessary for distinguishing multiple critical paths if they exist.

Page 42: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 39

Figure 37. Project 2c.mpp with Sub-Projects – Longest Path Filter

ID Unique ID Task Name Start Finish Duration Predecessors Total Slack

9 5 9 Task5 12 Jan '16 25 Jan '16 10 days 1,F:\Thomas\MyDocuments\BPC\References\ProjectManagement\TMB

Workbooks\Project4a.mpp\8

0 days

11 6 11 Task6 02 Feb '16 15 Feb '16 10 days 9FS+50% 0 days13 7 13 Task7 16 Feb '16 29 Feb '16 10 days 11 0 days14 8 14 Task8 01 Mar '16 14 Mar '16 10 days 13,12 0 days

18 24 18 Project3a 28 May '15 01 Aug '16 308 days 0 days14 8388618 14 Task20 15 Mar '16 28 Mar '16 10 days F:\Thomas\My

Documents\BPC\References\ProjectManagement\TMBWorkbooks\Project2c.mpp\14,2SS

0 days

15 8388619 15 Task21 29 Mar '16 11 Apr '16 10 days 14 0 days16 8388620 16 Task22 12 Apr '16 25 Apr '16 10 days 15 0 days17 8388621 17 Task23 26 Apr '16 09 May '16 10 days 16 0 days18 8388622 18 Task24 10 May '16 23 May '16 10 days 17 0 days19 8388623 19 Task25 24 May '16 06 Jun '16 10 days 18 0 days20 8388624 20 Task26 07 Jun '16 20 Jun '16 10 days 19 0 days21 8388625 21 Task27 21 Jun '16 04 Jul '16 10 days 20 0 days22 8388626 22 Task28 05 Jul '16 18 Jul '16 10 days 21 0 days23 8388627 23 Task29 19 Jul '16 01 Aug '16 10 days 22 0 days19 26 19 Project4a 24 Mar '15 11 Jan '16210 days 0 days3 12582913 3 Task41 20 Oct '15 02 Nov '15 10 days F:\Thomas\My

Documents\BPC\References\ProjectManagement\TMBWorkbooks\Project3a.mpp\11,F:\Thomas\My

Documents\BPC\References\ProjectManagement\TMBWorkbooks\Project4aSub.mpp\9

0 days

4 12582914 4 Task42 03 Nov '15 16 Nov '15 10 days 3 0 days5 12582915 5 Task43 17 Nov '15 30 Nov '15 10 days 4 0 days6 12582916 6 Task44 01 Dec '15 14 Dec '15 10 days 5 0 days7 12582917 7 Task45 15 Dec '15 28 Dec '15 10 days 6 0 days8 12582918 8 Task46 29 Dec '15 11 Jan '16 10 days 7 0 days10 12582927 10 Project4aSub 24 Mar '15 19 Oct '15 150 days 0 days1 16777217 1 Task471 24 Mar '15 20 Apr '15 20 days 0 days8 16777222 8 Task476 25 Aug '15 21 Sep '15 20 days 6,F:\Thomas\My

Documents\BPC\References\ProjectManagement\TMBWorkbooks\Project4aSubSub.mpp\7

0 days

9 16777223 9 Task477 22 Sep '15 19 Oct '15 20 days 8 0 days11 16777224 11 Project4aSubSub 21 Apr '15 24 Aug '15 90 days 0 days2 20971521 2 Task4711 21 Apr '15 11 May '15 15 days F:\Thomas\My

Documents\BPC\References\ProjectManagement\TMBWorkbooks\Project4aSub.mpp\1

0 days

3 20971522 3 Task4712 12 May '15 01 Jun '15 15 days 2 0 days4 20971523 4 Task4713 02 Jun '15 22 Jun '15 15 days 3 0 days5 20971524 5 Task4714 23 Jun '15 13 Jul '15 15 days 4 0 days6 20971525 6 Task4715 14 Jul '15 03 Aug '15 15 days 5 0 days7 20971526 7 Task4716 04 Aug '15 24 Aug '15 15 days 6 0 days

0%

0%0%

0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%

0%0%

0%0%

0%

28-12 15-03 31-05 16-08 01-11 17-01 03-04 19-06 04-0911 February 21 July 01 January 11 June 21 November

Page 43: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 40

Figure 38. Project 2c.mpp with Sub-Projects – Longest Path Filter, Re-Sorted with Drag

Automatic selection of the tasks on which to base the Longest Path Filter can be problematic. The ninth line of the Run Log for the previous analysis indicates, “Found task(s) with predecessors at project end.” This is a good thing. Real-life Project schedules sometimes have manually-scheduled or constrained tasks and milestones at or near the end of the project, which must be excluded to establish the logically-driven Longest Path. Figure 39 shows the Longest Path Filter resulting from one such schedule. The last 32 tasks of the project – spanning nearly a year, had no predecessors and were excluded. As executed, the filter shows only a single driving relationship, and this demonstrates that the overall 6000-task schedule was not well connected logically when submitted.

ID Unique ID Task Name Early Start Early Finish Duration Total Slack

BPC Relative Float (d): 0 24 Mar '15 01 Aug '16 355 days BPC Driving Path Drag (d): 20 24 Mar '15 21 Sep '15 130 days

1 16777217 1 Task471 24 Mar '15 20 Apr '15 20 days 0 days8 16777222 8 Task476 25 Aug '15 21 Sep '15 20 days 0 days

BPC Driving Path Drag (d): 15 21 Apr '15 03 Aug '15 75 days2 20971521 2 Task4711 21 Apr '15 11 May '15 15 days 0 days3 20971522 3 Task4712 12 May '15 01 Jun '15 15 days 0 days4 20971523 4 Task4713 02 Jun '15 22 Jun '15 15 days 0 days5 20971524 5 Task4714 23 Jun '15 13 Jul '15 15 days 0 days6 20971525 6 Task4715 14 Jul '15 03 Aug '15 15 days 0 days

BPC Driving Path Drag (d): 13 22 Sep '15 19 Oct '15 20 days9 16777223 9 Task477 22 Sep '15 19 Oct '15 20 days 0 days

BPC Driving Path Drag (d): 10 04 Aug '15 01 Aug '16 260 days7 20971526 7 Task4716 04 Aug '15 24 Aug '15 15 days 0 days3 12582913 3 Task41 20 Oct '15 02 Nov '15 10 days 0 days4 12582914 4 Task42 03 Nov '15 16 Nov '15 10 days 0 days5 12582915 5 Task43 17 Nov '15 30 Nov '15 10 days 0 days6 12582916 6 Task44 01 Dec '15 14 Dec '15 10 days 0 days7 12582917 7 Task45 15 Dec '15 28 Dec '15 10 days 0 days8 12582918 8 Task46 29 Dec '15 11 Jan '16 10 days 0 days9 5 9 Task5 12 Jan '16 25 Jan '16 10 days 0 days11 6 11 Task6 02 Feb '16 15 Feb '16 10 days 0 days14 8 14 Task8 01 Mar '16 14 Mar '16 10 days 0 days14 8388618 14 Task20 15 Mar '16 28 Mar '16 10 days 0 days15 8388619 15 Task21 29 Mar '16 11 Apr '16 10 days 0 days16 8388620 16 Task22 12 Apr '16 25 Apr '16 10 days 0 days17 8388621 17 Task23 26 Apr '16 09 May '16 10 days 0 days18 8388622 18 Task24 10 May '16 23 May '16 10 days 0 days19 8388623 19 Task25 24 May '16 06 Jun '16 10 days 0 days20 8388624 20 Task26 07 Jun '16 20 Jun '16 10 days 0 days21 8388625 21 Task27 21 Jun '16 04 Jul '16 10 days 0 days22 8388626 22 Task28 05 Jul '16 18 Jul '16 10 days 0 days23 8388627 23 Task29 19 Jul '16 01 Aug '16 10 days 0 days

BPC Driving Path Drag (d): 7 16 Feb '16 29 Feb '16 10 days13 7 13 Task7 16 Feb '16 29 Feb '16 10 days 0 days

0%0%

0%0%

0%0%

0%

0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%0%

0%

M B E M B E M B E M B E M BJanuary May September January May September January

Page 44: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 41

Figure 39. Longest Path Filter of Large Project Schedule with Poor Logic

BPC Logic Filter’s default Longest Path Filter examines logically-connected tasks only. If the schedule has been resource leveled, then “Check Resource Leveling Drivers” should be checked to ensure that the last task is correctly identified (in case it is driven by leveling delay rather than logic).

Local Network Filter

The Local Network Filter is invoked by first selecting a task (or tasks) to start from, then clicking the ribbon button. This method automatically performs bi-directional logical tracing from the selected task(s) and limits the tracing to

Org Task Name Start Finish Duration Total Slack

Project: Qatalum FTP & MDS Rev 2 16 May '09 12 Dec '09 30 wksProcurement & Fabrication 16 May '09 12 Dec '09 30 wks

Procurement 16 May '09 12 Dec '09 30 wksFume Treatment Plant Section 1 16 May '09 16 May '09 0 wks

No Value 16 May '09 16 May '09 0 wksNo Value 16 May '09 16 May '09 0 wks

1st Delivery on site 16 May '09 16 May '09 0 wks 64.57 wksFume Treatment Plant Section 2 15 Aug '09 15 Aug '09 0 wks

No Value 15 Aug '09 15 Aug '09 0 wksNo Value 15 Aug '09 15 Aug '09 0 wks

2sd Delivery on site 15 Aug '09 15 Aug '09 0 wks 59.57 wksFume Treatment Plant Section 3 13 Sep '09 13 Sep '09 0 wks

No Value 13 Sep '09 13 Sep '09 0 wksNo Value 13 Sep '09 13 Sep '09 0 wks

3th Delivery on site 13 Sep '09 13 Sep '09 0 wks 59.43 wksFume Treatment Plant Section 4 10 Oct '09 12 Dec '09 9 wks

No Value 10 Oct '09 12 Dec '09 9 wksNo Value 10 Oct '09 12 Dec '09 9 wks

Logistic 4 10 Oct '09 12 Dec '09 9 wks 50.57 wks4th Delivery on site 12 Dec '09 12 Dec '09 0 wks 50.57 wks

16-05-2009

15-08-2009

13-09-2009

0%12-12-2009

04 11 18 25 01 08 15 22 29 06 13 20 27 03 10 17 24 31 07 14 21 28 05 12 19 26 02 09 16 23 30 07 14 21 28 04 11 18 25 01 08May '09 Jun '09 Jul '09 Aug '09 Sep '09 Oct '09 Nov '09 Dec '09 Jan '10 Feb '10

Page 45: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 42

within a few logical steps of the origin. (The limit can be adjusted in the settings.) It has the effect of showing the task only within its immediate logical “neighborhood.” The Local Network Filter is most useful as a substitute for Project’s Task Inspector – to identify the logical drivers of a given task’s schedule dates. It is also useful for “jumping” from task to task during a manual review of the logic. As a special-purpose analysis, the Local Network Filter incorporates pre-configured parameters that cannot be changed by the user. These are greyed-out in the corresponding input form (Figure 40). For this filter, the “Check Driving/Driven Tasks Only” option is not user selectable, but the program will auto-enable it if “Evaluate/Show Path Relative Float” is checked.

Figure 40. Local Network Filter Options Dialog

Figure 41 illustrates the results of successively stepping through four tasks in the Project2c schedule using the Local Network Filter in an unstructured investigation.

Page 46: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 43

Figure 41. Project 2c.mpp with Sub-Projects – Unstructured Exploration using Local Network Filter

ID Unique ID Task Name Start Finish Duration Total Slack

1-Predecessors of Selected Task 17 Sep '15 16 Nov '15 43 days BPC Relative Float (d): 0 22 Sep '15 16 Nov '15 40 days

4 12582914 4 Task42 03 Nov '15 16 Nov '15 10 days 0 days3 12582913 3 Task41 20 Oct '15 02 Nov '15 10 days 0 days9 16777223 9 Task477 22 Sep '15 19 Oct '15 20 days 0 days

BPC Relative Float (d): 13 17 Sep '15 30 Sep '15 10 days11 8388617 11 Task19 17 Sep '15 30 Sep '15 10 days 13 days

2-Selected Tasks 17 Nov '15 30 Nov '15 10 days BPC Relative Float (d): 0 17 Nov '15 30 Nov '15 10 days

5 12582915 5 Task43 17 Nov '15 30 Nov '15 10 days 0 days

3-Successors of Selected Task 01 Dec '15 11 Jan '16 30 days BPC Relative Float (d): 0 01 Dec '15 11 Jan '16 30 days

6 12582916 6 Task44 01 Dec '15 14 Dec '15 10 days 0 days7 12582917 7 Task45 15 Dec '15 28 Dec '15 10 days 0 days8 12582918 8 Task46 29 Dec '15 11 Jan '16 10 days 0 days

0%0%

0%

0%

0%

0%0%

0%

S T M F T S W S T M F T S W S T M02 Aug '15 30 Aug '15 27 Sep '15 25 Oct '15 22 Nov '15 20 Dec '15 17 Jan '16

ID Unique ID Task Name Start Finish Duration Total Slack

1-Predecessors of Selected Task 17 Nov '15 28 Dec '15 30 days BPC Relative Float (d): 0 17 Nov '15 28 Dec '15 30 days

7 12582917 7 Task45 15 Dec '15 28 Dec '15 10 days 0 days6 12582916 6 Task44 01 Dec '15 14 Dec '15 10 days 0 days5 12582915 5 Task43 17 Nov '15 30 Nov '15 10 days 0 days

2-Selected Tasks 29 Dec '15 11 Jan '16 10 days BPC Relative Float (d): 0 29 Dec '15 11 Jan '16 10 days

8 12582918 8 Task46 29 Dec '15 11 Jan '16 10 days 0 days

3-Successors of Selected Task 12 Jan '16 29 Feb '16 35 days BPC Relative Float (d): 0 12 Jan '16 29 Feb '16 35 days

9 5 9 Task5 12 Jan '16 25 Jan '16 10 days 0 days

25 8388628 25 Task30 26 Jan '16 08 Feb '16 10 days 35 days26 8388629 26 Task31 09 Feb '16 22 Feb '16 10 days 35 days11 6 11 Task6 02 Feb '16 15 Feb '16 10 days 0 days12 12 12 Task61 16 Feb '16 18 Feb '16 3 days 7 days13 7 13 Task7 16 Feb '16 29 Feb '16 10 days 0 days

0%0%

0%

0%

0%

0%0%

0%0%

0%

T S W S T M F T S W S T M F T S W27 Sep '15 25 Oct '15 22 Nov '15 20 Dec '15 17 Jan '16 14 Feb '16 13 Mar '16

ID Unique ID Task Name Start Finish Duration Total Slack

1-Predecessors of Selected Task 29 Dec '15 15 Feb '16 35 days BPC Relative Float (d): 0 29 Dec '15 15 Feb '16 35 days

11 6 11 Task6 02 Feb '16 15 Feb '16 10 days 0 days9 5 9 Task5 12 Jan '16 25 Jan '16 10 days 0 days

8 12582918 8 Task46 29 Dec '15 11 Jan '16 10 days 0 days

2-Selected Tasks 16 Feb '16 18 Feb '16 3 days BPC Relative Float (d): 0 16 Feb '16 18 Feb '16 3 days

12 12 12 Task61 16 Feb '16 18 Feb '16 3 days 7 days

3-Successors of Selected Task 01 Mar '16 11 Apr '16 30 days BPC Relative Float (d): 7 01 Mar '16 11 Apr '16 30 days

14 8 14 Task8 01 Mar '16 14 Mar '16 10 days 0 days14 8388618 14 Task20 15 Mar '16 28 Mar '16 10 days 0 days

15 8388619 15 Task21 29 Mar '16 11 Apr '1610 days 0 days16 9 16 Task9 15 Mar '16 15 Mar '16 1 day 89 days36 8388638 36 Task40 16 Mar '16 29 Mar '16 10 days 89 days

0%0%

0%

0%

0%0%

0%0%

0%

T M F T S W S T M F T S W S T M F22 Nov '15 20 Dec '15 17 Jan '16 14 Feb '16 13 Mar '16 10 Apr '16 08 May '16

ID Unique ID Task Name Start Finish Duration Total Slack

1-Predecessors of Selected Task 16 Feb '16 28 Mar '16 30 days BPC Relative Float (d): 0 16 Feb '16 28 Mar '16 30 days

14 8388618 14 Task20 15 Mar '16 28 Mar '16 10 days 0 days

14 8 14 Task8 01 Mar '16 14 Mar '16 10 days 0 days13 7 13 Task7 16 Feb '16 29 Feb '16 10 days 0 days

BPC Relative Float (d): 7 16 Feb '16 18 Feb '16 3 days12 12 12 Task61 16 Feb '16 18 Feb '16 3 days 7 days

2-Selected Tasks 29 Mar '16 11 Apr '16 10 days BPC Relative Float (d): 0 29 Mar '16 11 Apr '16 10 days

15 8388619 15 Task21 29 Mar '16 11 Apr '1610 days 0 days

3-Successors of Selected Task 12 Apr '16 23 May '16 30 days BPC Relative Float (d): 0 12 Apr '16 23 May '16 30 days

16 8388620 16 Task22 12 Apr '16 25 Apr '16 10 days 0 days17 8388621 17 Task23 26 Apr '16 09 May '16 10 days 0 days18 8388622 18 Task24 10 May '16 23 May '16 10 days 0 days

0%

0%0%

0%

0%

0%0%

0%

S W S T M F T S W S T M F T S W S20 Dec '15 17 Jan '16 14 Feb '16 13 Mar '16 10 Apr '16 08 May '16 05 Jun '16

Page 47: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 44

4.5 User Settings

User Settings are accessed by clicking on the Settings button.

Figure 42. Settings Selection from BPC Logic Filter Ribbon

4.5.1 General Settings

The first tab available is the General Settings Tab (Figure 43). 1. Clicking within the box for Default Folder Path will bring up a folder selection window. The selected

folder will be the location of run logs and diagnostic logs for the schedule network analysis. 2. [Not enabled in Trial Version] Clicking on “Mark the Filtered Task” (followed by “OK”) will invoke

medium-level data persistence as a user preference in all subsequent analyses. This means that tasks that are included in the filters will automatically have their task.marked property set to TRUE. Unfortunately, marking this property across subproject boundaries is presently buggy, so this feature is not consistent with cross-project links. Future improvements are planned.

Figure 43. General Settings Dialog

Page 48: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 45

3. [Not enabled in Trial Version] Finally, Clicking “Permanently save the data….” (followed by “OK”) will

invoke high-level data persistence as a user preference in all subsequent analyses. When implemented as part of an analysis, the eight task fields identified will be permanently inserted into the current project and populated.

4.5.2 Analysis Preferences

The analysis preferences tab provides a way for the user to specify preferred analysis parameters when the Task Logic Tracer is started with a new project (

Figure 44). Enter the desired preferences and click “OK” to save.

Page 49: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 46

Figure 44. Settings – Analysis Preferences

4.5.3 About/Upgrade

The About/Upgrade tab summarizes the current license information and provides a mechanism for upgrading the license if needed (Figure 45). The latter functionality is disabled for beta testing.

Page 50: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 47

Figure 45. Settings – About/Upgrade

4.6 Data Output and Retention

BPC Logic Filter automatically creates and applies a new, logic-driven task filter within the context of an existing MS Project View specification. Output of the data is then accomplished through normal MS Project methods, including printing (to printer), printing to portable document format (pdf) file (with a suitable converter), or image exporting through the Windows clipboard (i.e. Task Menu à Copy à Copy Picture). As always, it is recommended that each printed view should automatically include notations of the following fields in the header, footer, or legend:

• Project Title • Project Filename • Status Date/Time • Print Date/Time • View Name applied • Group-By Name applied • Filter Name applied.

Unfortunately, the Group-By Name and Filter Name fields are not large enough to allow full descriptions of the analysis parameters and other conditions. If selected, BPC Logic Filter can present an Output Form – this form fully documents the selected analysis parameters and includes the Run Log describing the key conditions encountered. The user can save the image of the output form to the Windows clipboard (Alt-Print-Scrn) and then paste it to the bar-chart before printing. This seems most useful for a Longest Path Filter or other cases where formal documentation of the analysis behind the filter specification is required.

Page 51: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 48

BPC Logic Filter also saves all analysis Run Logs automatically and consolidates them into daily logs with date-specific filenames, e.g. BPC_Logic_Filter-DayLog20150521.txt. These log files are saved to the log folder specified in the Settings. As long as each printed view includes the appropriate time stamps, then the corresponding Run Log can be retrieved and combined with the printed view without using the Output Form. To make use of Project’s powerful filtering, sorting, and grouping features, BPC Logic Filter needs to temporarily insert data into several empty task fields – a total of eight empty fields must be available for any of the applications to run. These temporary data are lost as soon as the view is applied, and any subsequent refreshing of the view will result in an empty task list. In particular, saving the file with an active BPC Logic Filter may lead to an empty task list when the file is re-opened. At that point, the filter must be manually cleared. Other than as allowed through the data-persistence settings, BPC Logic Filter makes no permanent changes to the task records in the Project file. The filters, groups, and views created by BPC Logic Filter do remain in the project file (and in the user’s global.mpt file) until manually removed.

4.7 Notes on Schedule Calculations

4.7.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.7.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

6 As an exception: BPC Logic Filter computes relative float using the calendar of the task that is closest to the selected task, while Project always computes slack using the calendar of the predecessor task.

Page 52: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 49

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.7.3 Inactive Tasks

BPC Logic Filter ignores “Inactive” Tasks consistent with MSP 2010 (not 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. BPC Logic Filter treats the inactive tasks consistent with MSP 2010. With the introduction of MSP 2013, Microsoft changed this behavior such that – at calculation time only – Project inserts a finish-to-start link between all predecessors and all successors of each inactive task.7 The ability to show these links will be included in a future version.

4.7.4 Manually-Scheduled Tasks

BPC Logic Filter ignores the “Task Mode” (2010 and 2013+) 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 46), 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 46. Impact of Manually Scheduled Tasks

4.7.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.

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.

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 days5 8388612 Task14 30 Jun '15 13 Jul '15 10 days -46 days6 8388613 Task15 14 Jul '15 27 Jul '15 10 days -46 days8 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 Quarter

Page 53: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 50

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 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 SOFTWARE EDITIONS AND LICENSING

[Presently, BPC Logic Filter is not distributed for public use, and licensing is restricted to Clients and associates of Boyle Project Consulting. References in this document to Trial Version and to “Freeware” and “Standard” Editions are for legacy applications only, as all newer features require a Professional Edition license. Upon written request, limited Professional Edition licenses are granted for evaluation purposes to qualified prospective users.] BPC Logic Filter is targeted for per-user licensing in Standard and Professional Editions. In addition, users who evaluate a Trial Version but elect not to upgrade the software will retain limited (i.e. Freeware Edition) functionality. See Table 2. 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 the ability to show only driving/driven tasks, to allow for hourly schedules, to automatically mark the filtered tasks, and to execute the Longest Path and Local Network special applications. The Standard Edition is aimed at the typical Project Manager or administrator who’s duties may include generating standard reports requiring these functions. The Professional Edition adds the more advanced functions described in this document, including Relative Float

Page 54: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 51

Analysis, Cross-Project Links, Bounded Network Analysis (i.e. Target Tasks), Driving Path Drag, Resource Leveling Drivers, Gantt Bar Highlighting, and full data persistence. 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.

Page 55: BPC LOGIC FILTER FOR MICROSOFT PROJECTboyleprojectconsulting.com/Web Files/BPCLogicFilter-Intro R2.pdf · Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16 Boyle

Introduction to – BPC Logic Filter for Microsoft Project 27-Sep-16

Boyle Project Consulting, PLLC – Charlotte, NC USA 1

Feature Freeware Edition

Standard Edition

Professional Edition

Remarks

Fully-functioning trial version. (Exception: Data Preservation is not available in the 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 ü ü ü

Trace Successors Only ü ü ü

Trace Both Predecessors and Successors ü ü ü

General Filter Display Options Show/Hide Summary Task Rows ü ü ü

Show/Hide Completed Tasks ü ü ü

Re-sort tasks to highlight dependencies ü ü ü

Display an Output Form to document the analysis ü ü ü

Logic Tracing Options Ignore Inactive Tasks ü ü ü Consistent with MSP 2010. NOT CONSISTENT WITH MSP 2013.

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 X ü ü

- Override if successor is delayed by constraint X ü ü

- Allow partial-day lags/slips/float X ü ü

Show the Project Longest Path X ü ü Dedicated Ribbon command for Registered versions.

Professional Options Evaluate/Show Path Relative Float X X ü i.e. Multiple Float Path Analysis

Include Cross-Project Task Links (SubProjects Only) X X ü

Include a Target Task X X ü i.e. Bounded Network Analysis Compute Driving Path Drag X X ü Check Resource Leveling Drivers X X ü Resource Constrained Critical Path, Resource-Constrained

Driving Path Custom Bar Highlighting, including In-Line Views X X ü Improves on “Task Path” Command in MSP 2013+ Preserve Analysis Results for Custom Views/Reports X Partial ü Preserves all flags, labels, and analysis results in task custom

fields. (Not available in Trial Version).

Table 2. BPC Logic Filter – Feature List