Program Schedule Critical Path RRS feed

  • Question

  • Hi, 
    Hoping for some answers/guidelines/perceptions. We have just over 50 projects in our program. All managed via MSP schedules and covered by several project managers with varying scheduling skills and methods. Ie tasks are not all linked to be able to produce by the book CPs.

    However I have been asked to provide a program critical path, can I ask this esteemed forum how you would go about this with the schedules that I have?

    Sunday, October 28, 2018 11:59 PM

All replies

  • If you want to find out what the critical tasks are and the where the critical path is, then you will have to do "by the book" Critical Path Method. The first thing you want is all tasks to be auto scheduled. The next thing you want is a "closed network", where every task has at least one finish-start predecessor and at least one finish-start successor.

    Of course, this excludes the first and last tasks, which should be zero duration milestones.

    There are only two inputs to the CPM, and they are the durations and the predecessors/successors.

    Summaries must not have predecessors or successors.

    That's pretty much it.

    Does this help?

    Monday, October 29, 2018 5:43 AM
  • Thanks Trevor

    Yes and No :-) 

    I knew this was the ultimate and correct answer however, I was hoping that there was a medium which was do-able to appease the "at times" impossible request.  

    How I did it previously, was to highlight the deemed critical activities in all 50 schedules and just pull them out and create an overall master with baseline variances using filters and VBA.  Not a CP at all, but quicker than trying to train 8 PMs how to schedule properly (the program would have been over lol).

    Appreciate your response.


    Monday, October 29, 2018 7:32 AM
  • Hi Sean,

    I think you've hit the nail on the head, you somehow have to find the "deemed" critical activities, depending on the project size it might be really easy just by looking at the gantt charts.   I would use a common flag across all projects (eg Flag1) and manually mark the ones you deem are critical.  Then add them all to a single master project, filter on Flag1 and then you've got your very own CP.

    Ben Howard [MVP] | web | blog | book | downloads | P2O

    Monday, October 29, 2018 9:07 AM
  • Apologies for stating the obvious "by the book" approach in previous answer.

    Another way might be to assign a (dummy) resource to the tasks deemed to be critical, and let the levelling line them up end to end, based on priority. Flag them first and filter on the flag. Then copy all of their start dates and paste them straight back in so that they all pick up a SNET date constraint, then drop the dummy resource, then drop the flag filter.

    Monday, October 29, 2018 9:43 AM
  • Sean --

    In addition to the excellent answers provided by my esteemed colleagues, I would recommend you try the following to see a Critical Path for the entire program:

    1. Open every project and confirm that they are NO unlinked detailed tasks or milestones.  This means that each project contains its own valid Critical Path.
    2. With all 50 projects open, click the View tab to display the View ribbon.
    3. In the Window section of the View ribbon, click the New Window button.
    4. In the New Window dialog, select all 50 projects and also select the Tracking Gantt view in the View pick list (this is so that you can immediately see the Critical Path across the entire program of projects).
    5. Click the OK button.

    At this point, Microsoft Project will create a temporary master project that will show you the Critical Path across the entire program.  The master project will only be temporary, so you can close it without saving it when you are finished.  Just a thought.  Hope this helps.

    Dale A. Howard [MVP]

    Monday, October 29, 2018 9:16 PM
  • Sean,

    First, your question implies that your “program” is a collection of related projects all supporting a common completion objective that can be clearly defined in time.  Otherwise, a “program critical path” would be essentially meaningless.

    Under practically any accepted definition, a “program critical path” is comprised of a sequence of tasks and logical relationships forming the longest logic path from “time-now” to the selected program completion milestone; and which – in the absence of external constraints – controls the earliest possible completion of the program.

    • It is NOT the collection of tasks that Project has marked “Critical” in the 50 associated project schedules of dubious logical construction.
    • It is NOT the collection of tasks that you independently and without actual logic analysis have deemed to be “critical.”
    • It has absolutely nothing to do with baselines, earned value, or variance analysis. (Of course you know this already.  I guess you included it earlier just to snow things up for the management.)

    You’ve stated that you have no real confidence in the logical basis of the 50 underlying project schedules and that this is unlikely to improve.  At the same time, it is presumed that the 8 project managers are sufficiently competent to manage, control, and (most importantly) forecast the progress of their own scopes of work.  Otherwise you’d have a different set of problems. 

    In that light, I’d suggest the optimal approach is to prepare a summarized “coordinating master schedule” (CMS) that synchronizes with the 50 project schedules mainly through a table of interface milestones – updates to the table come from the updated project schedules.  Each “task” in the CMS is essentially a manually-created summary of driving logic that connects the interface milestones, ultimately leading to a program completion milestone.  This is a software-agnostic approach that is typically used in very large capital projects, especially where the schedule technology and schedule quality are not consistent from contractor to contractor.  Using Project, Excel, and vba, one could get a pretty efficient workflow.

    Good luck, tom

    Tuesday, October 30, 2018 6:44 PM
  • Dale,

    Thanks for sharing the single most efficient process for combining projects into a linked master.  I was not aware it this approach before.


    Tuesday, October 30, 2018 6:46 PM
  • Thanks Dale

    I wasnt aware you could run a temp Master like this.



    Tuesday, October 30, 2018 9:49 PM
  • Tom

    That explains it perfectly.  

    Your reply states inherent problems with a lot of the roles I have been in over here in Australia, and as I said to Trevor, scheduling is paid homage to a degree by most PMs but in my day, your schedule was your life and not a tick and flick to please the PMO when it came to statusing day/week.  

    However these days I feel that the "art" is lost, yet the expectation isnt.  A disconnect between the upper echelon of management and the people on the ground and I am trying to find something which will allow them to meet in the middle without too much duress.

    Because of this, I have always had to approach this by using a list of deemed critical (wrong term, interface is better) tasks in a culminating master schedule which is reproducable quickly and effectively (hence why I use VBA as my clients normally only have standalone project so I mimic the aggregation abilities of server).

    Lastly, because of the sectors I have worked in, earned value and CPs have not been the main aim of the project controls team, usually because when I come in, its after things have initially gone wrong and they just need to be shored up to get them over the line hence I am tied to quick wins and not always best practice.

    Dale, Trevor, Tom really appreciate your help.



    Tuesday, October 30, 2018 9:58 PM
  • I have done what you want a number of times with 5-8 schedules totalling 10-12000 tasks, but not 50.

    The process I use is:

    1. Use a VBA macro to create a new unlinked master file each week.
    2. To resolve inter-project links I have the name of a task in any of the projects (must be unique) that is its predecessor. The consolidation macro also resolves this link so I end up with links between projects resolved.
    3. Set all Deadline dates to NA by copying NA to al tasks in the Deadlines column.
    4. Set the milestone of my last critical task (EG go live) to have a deadline equal to its finish date.

    I know end up with a critical path through all projects (does assume all key tasks have successors and predecessors and I make sure all key deliverables have tasks to complete them).

    This has worked very well for programs from a large refinery upgrade to SAP implementations.

    All the above can be done manually, but with 50 projects you need a macro or two!

    If you are going to be at the Project Controls conference in Melbourne on November 22nd, maybe we can meet?

    Good luck

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

    Thursday, November 1, 2018 4:43 AM
  • Thanks Rod

    I bought your last two books, you have taught me a lot.

    Very interesting approach and something I have never done before so I will give it a go and see how it is received.



    Thursday, November 1, 2018 5:06 AM