Finding Secondary and Tertiary Driving Paths for Any Selected Task RRS feed

  • Question

  • Using VBA, I've been able to figure out how to find the driving (primary or "critical") path to any selected task. What is the best way to do the same in VBA to find the secondary and tertiary driving paths... maybe out to the fifth driving path? I want to be able to do it such that I can see how the these paths feed into the critical path wherever they would cut in and potentially become the critical path.

    Thank you in advance!


    Friday, March 23, 2018 9:59 PM

All replies

  • JJ Rodrigo,

    I don't know how your macro selects the critical path to any selected path but if it uses the total slack, then finding the next levels on the path would normally be the next levels of total slack.

    Hope this helps.


    Saturday, March 24, 2018 12:03 AM
  • How would you go about defining secondary and tertiary paths? Would you look at paths that start from some non-driving predecessor? Would you look at non-driving predecessors of your task's driving predecessors? Non-driving predecessors of your task's driving predecessors' driving predecessors? What makes one path more critical than another? Walking back through paths is easy. Defining what's important is harder.
    Sunday, March 25, 2018 2:21 AM
  • JJ,

    Indeed as John says, if you are 1) only concerned with the critical and near-critical paths, and 2) avoiding practices that invalidate Total Slack as an indicator of the critical path (i.e. calendars, deadlines, late constraints, resource leveling); then grouping by Total Slack and sorting by date may be your best bet.  (There are also established techniques to force a non-critical task onto the critical path and then use Total Slack to analyse its predecessors.  Think of using a super-long trailing dummy or a super-aggressive deadline on the task to force it "critical".) 

    Away from the "Critical Path," there's really no correlation between total slack and driving logic.  Then your options depend on what you have used to define the driving logic path.  Presumably, you're stuck asking this question because you have used the "Start Driver" object or a variation of the Task Path (MSP 2013+) properties (or worse, free slack).  (I published vba code for the first approach in a blog entry here.)  Non-of those approaches allow the definition or assessment of near-driving paths.

    Our add-in traces driving and near-driving logic paths by computing and aggregating relative float values (aka relationship free float).  Resulting paths are defined by their "days away from driving."  In simplest terms, relative float is the amount of time the predecessor could slip before it becomes driving for the successor.  I.e. for an FS relationship, the time interval between the predecessor early finish and successor early start.  In hindsight, this isn't hard to compute, but we spent a lot of time figuring it out for the various cases.

    Good luck, tom


    Sunday, March 25, 2018 9:57 PM
  • JJ,

    I've got similar requirements that require identifying and reporting/trending the primary thru tertiary critical and driving paths.  In your post you noted that you've been able to identify the primary paths using VBA.

    Assuming that you've still got access to it, is your VBA code something you can share?



    Wednesday, January 15, 2020 3:21 PM
  • Simplest solution is to:

    1. File, Options
    2. Advanced tab
    3. Scroll to bottom and set the Tasks are critical if slack is less thanor equal to  days.
    4. Set the value to whatever suites the timescale for your project and tasks that are critical now compared to when this option is off are your nearly critical tasks

    I would make sure you have no negative slack first to get better results.

    Rod Gill
    Author of the one and only Project VBA Book and VBA developer.

    Saturday, January 18, 2020 8:49 AM
  • Thanks Rod. we need to be able to trend, analyze, and report (monthly) changes to the primary, secondary, and tertiary critical path as well as driving paths, so the near critical path option by itself doesn't meet the need. I'm working on some code that would identify the critical paths based on the days of slack, saving the primary, secondary, tertiary identification to a custom field. 


    Wednesday, January 22, 2020 4:44 PM
  • So what do you call secondary and tertiary critical paths? Given that most managers struggle to understand the full implications of a single critical path.....

    I tend to just copy finish dates for key deliverables each week into a spreadsheet for a trend and they love that.

    Given the inevitable changes in any complex project, one critical path and communicating its implications is enough for me and I've worked as a project planner on some very large and complex projects.

    Rod Gill
    Author of the one and only Project VBA Book and VBA developer.

    Monday, January 27, 2020 4:54 AM