This article uses BPC Logic Filter to present the progression of a single logic tracing example from a simple approach to a more focused analysis. [June 2020: revised for updated versions of MS Project and BPC Logic Filter.]
[If you came here looking for a simple logic tracing macro and are comfortable using Visual Basic for Applications (VBA), have a look at these two other entries: Macro for tracing filtering and sorting task paths in Microsoft Project and Simple Macro for Listing Driving Predecessor(s) in MS Project. They may give you what you want as long as your project has simple logic.]
BPC Logic Filter is an excellent tool for defining and visualizing the Critical Path and Near-Critical Paths of a project when Total Slack proves inadequate – namely in the presence of constraints, variable calendars, and resource leveling. As I’ve written elsewhere, however, the first version of BPC Logic Filter was prompted by a very different, though straightforward stakeholder request: “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?” In other words, couldn’t I group, filter, and sort tasks simply according to logical relationships – in addition to Work Breakdown Structure, responsible department, and other codes. At its core, the resulting solution was a simple logic tracing routine for exploring, marking, and displaying logical relationships in an existing project schedule.
This article presents the progression of a single logic tracing example from a simple approach to a more focused analysis.
Consider the example of the small installation project presented below. There is a deadline on the “Substantial Completion” milestone, and the project is 10-days behind schedule. For unrelated reasons, the project manager has identified a need to examine the predecessor and successor logic paths around one task – “A3 Install Line D” – which is selected in the figure.
Task Inspector
We can first examine the task’s dependencies using MSP’s Task Detail Form and the Task Inspector pane. The form shows that the task has two finish-to-start predecessors and two finish-to-start successors, but it provides no other schedule information for these dependencies. Task Inspector identifies the second predecessor — ID 22 – A3 Install Line C — as the driving predecessor. That is the predecessor whose logic is controlling the start date for our task.
This driving predecessor is hyperlinked, so clicking on it automatically selects the corresponding task in the task table and updates the details. In addition, a new “Go back to” task link is added to the Inspector pane. Starting from a specific ending task, the user can use these tools to “click-trace” backwards and forwards along the driving predecessor logic path to the selected task.
Click-tracing of driven successor paths is not possible using the Inspector pane, and predecessors that are hidden by filtering or outlining can’t be traced. Moreover, neither external links nor resource-driving links can be traced. Finally, the driving predecessors can be incorrect when relationships other than finish-to-start are used.
BPC Logic Filter – Task Logic Inspector
The Logic Inspector in BPC Logic Filter presents consolidated views of a task’s driving and non-driving predecessors and successors, including other relevant information like dates, resources, or user-selected fields. Driving relationships are highlighted and listed at the top, while links to inactive predecessors are de-emphasized and listed at the bottom. For logical significance, the ERF column indicates how far (in days) the predecessor is from controlling/driving the successor’s early dates, and the LRF column indicates how far the successor is from controlling/driving the predecessor’s late dates. The latter is most useful when click-tracing to explore successor logic paths. (The yellow-on-red color scheme in the figure highlights relationships that are driving in both directions.)
With the Jump buttons in the Logic Inspector windows, users can click-trace logic paths forward and backward through the project schedule. Unlike the built-in tools, the Logic Inspector windows allow inspection and click-tracing of both driving and non-driving logic along successor paths, external (i.e. master/sub-project) paths, resource-constrained logic paths, and hierarchical logic paths.
Task Paths and Task Path Filters
Recent versions of MS Project (2013+) include Task Path bar styles for graphically highlighting predecessor and successor paths on the Gantt chart. In addition, it is possible to use a simple “QuickTrace” macro (like the one linked above or one of the freeware settings in BPC Logic Filter), to identify the same set of related tasks. In the next figure, the Path Predecessors bar style has been applied to color the bars of all tasks that are path predecessors of the selected one. The QuickTrace macro (included in BPC Logic Filter) has also been used to highlight the same related tasks.
Alternately, QuickTrace can display the related tasks using a filter rather than a highlighter, as shown below. In either case, the actual driving logic for the selected task is not apparent. (And no, Total Slack does not define driving logic for this task.)
The next figure displays both the Path Predecessors (orange) and the Path Driving Predecessors (red-orange) bar styles for the selected task, and QuickTrace has been used to highlight the driving predecessors in the table. A corresponding filter could also be applied.
Although generally less useful for analysis, corresponding bar styles and filters can be applied for the path successors and path driven successors of the selected task.
BPC Logic Filter – Advanced Tracing
With advanced logic analysis features, the relative float of all the predecessor task paths can be defined and displayed. The following chart shows the entire project, with the predecessor paths of the selected task highlighted according to their path relative float in days. (Path relative float indicates how much a particular task or path may be delayed before affecting the selected task; i.e. “days away from driving”.) Path relative float is indicated numerically at the right side of each related bar. Unrelated bars are de-emphasized and colored green. The bar chart shown is similar to that obtained using the Task Path bar styles, with the key exception that non-driving predecessor paths can be ranked.
BPC Logic Filter allows one variation – bounded network analysis – to only show connections to a particular target task. The figure below highlights the connections between the selected task, A3 Install Line D, and the target task, A2 Civil.
The previous two figures displayed the related task paths in-line and within the context of the overall project view. A more focused view of the driving and near-driving paths is provided by applying a filter to hide all unrelated tasks, as shown here.
It is often useful to group and sort tasks to clearly display the chain of driving logic and associated near-driving paths. The first group in the figure below – “BPC Relative Float (d): 0” – indicates the driving logical path for the selected activity. The next two groups depict branching logical paths (one task each) that are 10- and 20-days away from driving the selected task.
Finally, when attempting to accelerate a task by shortening its driving logical path, Drag quantifies the maximum acceleration that may be gained by shortening a particular task along that path. Drag is limited by the existence of parallel paths, as clearly evidenced by Tasks 6 and 11 in the figure below. For focused acceleration of complex projects, the Drag metric can assist in prioritizing actions.
The examples shown here represent successively more powerful analyses of driving logic for an arbitrary task in a project schedule. If that task were the final task or a key completion milestone for the project, then the resulting special case of the driving path would be the “Critical Path” for the project.
See a related video entry:
Video – Logic Tracing Example in Microsoft Project