Regular users of BPC Logic Filter will have noticed some modest changes with the recent release of version 1.2. The ribbon has been slightly revised, and two new buttons have been added: “Project Logic Checker” and “Logic Quick Check”. The second is essentially an abbreviated version of the first.
The Project Logic Checker examines every task in the project and flags the following logic issues for closer review or action:
Task Definition Issues
- Manually-scheduled tasks (By definition, these are incompatible with logic-driven scheduling.)
- Inactive tasks (In MSP 2010, these are essentially ignored. In MSP 2013+ they are essentially included in the schedule calculations as zero-duration tasks.)
- External tasks and external links (Scheduling of tasks with external links can change depending on whether the source schedules of the external tasks are available and open.)
- (Hammock) tasks made with OLE links (OLE links typically impose persistent logic constraints.)
- Summary tasks with Logic (Hierarchical logic can override precedence logic in the schedule calculations and cause confusion.)
- Tasks with Logic on Parent Summaries (These tasks may be controlled by non-precedence logic.)
- Constraints and Deadlines (“Must Start/Finish On” constraints are “Hard” constraints since they can override logic. In addition, “Start/Finish No Later Than” constraints are included as “Hard” constraints ONLY when “Tasks will always honor their constraint dates” is checked (i.e. the default value). These are always “Hard” constraints according to 2009 DCMA 14-Point Assessment guidance.)
- Duplicate Task Names (Duplicate task names force reliance on a task’s outline hierarchy for recognition of task scope. Development and analysis of the project logic then becomes inefficient or impossible.)
TASK Relationship ISSUES
- Missing logic; that is “Open Ends,” including Dangling Starts and Finishes. (Schedules with these conditions are unreliable.)
- Relationship Lags and Leads (i.e. negative lags) that that are excessive with respect to the associated task durations (Ideally, logic driven schedules use explicit tasks for all time-consuming activities. Substantial leads and lags are incompatible with schedule risk assessment and are generally considered poor practice.)
- Relationships that are not Finish-to-Start (Some scheduling philosophies mandate only Finish-to-Start relationships.)
- Relationships that are Start-to-Finish (These relationships are extremely rare in actual project schedules, but they are often used incorrectly.)
- Merge Points in the schedule (i.e. tasks with a high number of immediate predecessors)
- Reverse Logic Flow through the task’s duration; i.e. shortening the task delays the successor, and lengthening the task may accelerate the successor. (See this entry).
- Neutral Logic Flow through the task’s duration; i.e. shortening or lengthening the task has no impact on the successor.
- Links to inactive tasks (Depending on the MSP version being used, such links can alter the schedule unexpectedly.)
Task Update ISSUES
- Invalid Dates, including incomplete work in the past and completed work in the future (with respect to the Status Date)
- Splits
- Out-of-sequence progress
- Tasks that have missed their target/baseline finish date (as of the status date.)
Other TASK ISSUES
- Overlong task durations
- False Milestones (i.e. “Milestones” with non-zero durations)
- Excessive or negative values for Total Slack
Users can include or exclude any desired checks from the analysis – or adjust associated thresholds – using the Checker Preferences.
The tool automatically restricts the view to show only tasks with logic issues, then it presents an output form that a) summarizes the analysis, and b) allows the user to dynamically modify the filter for pinpoint focus.
For example, here is a highly summarized, ~3300-task, proposed recovery schedule for a troubled international construction project. The Settings window confirms that the logic checker will examine most non-resource-related issues but will ignore the long-duration and high-slack checks for now.
Running the Project Logic Checker identifies and presents over 1500 tasks with logic issues (perhaps a hint to the source of the project’s “troubles.”) The user can then use the output form to reduce or expand the view.
Here’s a close-up of the output/filter form, slightly improved from the one shown in the other figures:
For example, by un-checking all but the Dangling Start box and then clicking filter, I can choose to see only the tasks with Dangling Starts, i.e. tasks with predecessors but without start-predecessors.
Then, I can check only the False Milestones box to see – and correct – the 17 tasks that are coded as milestones but possess a non-zero duration.
Of course, if I’m only interested in one issue – Logic on Summary Tasks for example, than I can begin by excluding all the other issues from the analysis. The result is a (slightly) less cluttered picture. This one highlights the four summary tasks with logic and the forty-four subtasks that are (or may be) affected.
The dynamic re-filtering requires full data persistence (in the general settings), and the bar labeling only works if “Re-color Bars” is selected (in the bar settings).
For schedulers and schedule reviewers, the new Project Logic Checker provides an action-focused basic schedule health check functionality that can be leveraged off the various logic tracers included in the tool. There is no fancy dashboard and no pass/fail metrics based on odd ratios. For now I think I prefer it that way.