Network Practice Exercise 2: Computing Critical Path Drag with SS and SS+lag Relationships
Stephen Devaux
President, Analytic Project Management; Author, Instructor, & Consultant
Lately there have been a number of very interesting and metrics-focused LinkedIn discussions (many started by Alex Lyaschenko who will be exploring such topics at the Construction CPM Conference Jan 15-18, 2023 in Disney World, FL) including about critical path drag: what is it, how does it help, how to compute it, etc.
Previously, I published a few articles on the topic on LinkedIn:
A big issue with drag calculation is that most software packages don’t compute it. Spider Project and Asta Powerproject do, if in slightly different ways from those that I use, but that's fine—the key is to point the scheduler to those activities and constraints that are adding time to the project duration! However, the two packages with the biggest global market share, MS Project and Primavera, seem blithely unaware that their products omit THE most critical(!) metric in critical path analysis. (Maybe their marketing materials should say they do “only non-critical path analysis”—computing float OFF the CP! But they say "zero" about the critical path! And, if I may say so, the critical path is... critical!)
Of late, a number of people from across the globe have asked me for help in computing drag. I start by suggesting that they speak to their software vendor about it. But since that seems unlikely to have much impact in the near future (because why would a company go to the trouble of writing new code when both PMI and AACE insist on ignoring the whole concept?), I’ve sent them explanations and exercises.
So here is an exercise in computing drag in a network with complex dependencies. The answers, along with an explanation, are below.
I’d also suggest referring to the Wikipedia page for “critical path drag” which has a diagram explaining how to compute it for SS and SS+lag relationships.
I hope this helps.
Notice that in the diagram above, things like float calculations are a bit different from what you might be used to in the software that you use. For example, the start of F has 6d of total float whereas its finish has 4d. Most CPM algorithms use what is called the "continuous activity assumption", where an activity CANNOT be interrupted. This means that if F can't finish till Day 32, it also can't start till Day 21, EVEN THOUGH it actually could start on Day 19! This means that the start and finish are calculated as having the same amount of float, even though they don't! Surely we could think of a way to either increase its duration by 2d OR interrupt it! (The continuous activity assumption makes programming the software easier--but it also can make projects longer by causing the "reverse critical path anomaly" where projects take longer (sometimes resulting in human deaths!) because of a software algorithm!
The continuous activity assumption can also sometimes distort drag calculation, so I've ignored it in this exercise. But if a software package that computes drag wants to include the assumption, that's still MUCH better than simply not computing drag! (And by the way, if you want to eliminate this problem, just add a "finish milestone" to the end of any activity that has an FF or SF predecessor!)
So now for the calculations (and the way I do them "mentally"!):
领英推荐
The best way to look at the drag totals, in my experience, is in descending order:
J = 12D
A = 7d
E = 4d
H = 3d
E = 2d
B-E lag = 2d.
In my experience as a consultant, computing critical path drag to compress a project's duration can reduce it by 15% to 40% (depending on the level and skill of previous efforts) with MINIMAL increase in cost. But that process also requires repeated recalculation of drags as the critical path changes. That gets to be a pain! But computers don't feel pain...
Founder Project XER | Project Controls Engineer at Parsons Corporation
2 年Hi, Stephen Devaux. It is a Great Pleasure to connect you on LinkedIn. Previous week with you was a very constructive discussion regarding CPD, I am very thankful to clear my doubts and give me insights for the parallel activities. Here is my Basic proposal for CPD using Primavera P6 Data and Excel. The Excel sheet first runs all the CPD calculations & then checks for parallel activities with floats values. https://www.youtube.com/watch?v=LGsbZJTZlRg This excel sheet is not fully developed to run real life projects schedules as they have activity constraints and calendars with different working hours etc... Oracle #primaverap6
Portfolio Planning & Delivery | PMP | P3O Practitioner | AgilePM Practitioner | Six Sigma | Project Data Modelling | PredAptivePM
2 年Stephen Devaux Vladimir Liberzon I have changed SS+3 and SS+7 lags from time lags to volume lags and as you advised activity, A has 7 days DRAG. When the example was described in the post it wasn't possible to understand the type of activities and type of lags. Has it been any discussions in the past about the standardisation of symbols in a network diagram to avoid this problem? When a process (working fragment) is described by a network diagram, it then could be programmed in any scheduling tool and the result should be the same. However, such cases allow misinterpretation.
Portfolio Planning & Delivery | PMP | P3O Practitioner | AgilePM Practitioner | Six Sigma | Project Data Modelling | PredAptivePM
2 年Stephen Devaux Vladimir Liberzon In some cases, a lag could drive the critical path! When it happens, the lag has TF=0 and DRAG>0 In the schedule discussed in the post, there are two examples: SS7 dependency has TF=0 and DRAG =2d FS9 dependency has TF=0 and DRAG = 2d Can any tool calculate: - Lag TF? - Lag Drag?
Portfolio Planning & Delivery | PMP | P3O Practitioner | AgilePM Practitioner | Six Sigma | Project Data Modelling | PredAptivePM
2 年Stephen Devaux Great post!!! Could you clarify of moments: a) Activity A Drag = 0, not 7d. If the duration of A reduced by 12 days, the overall duration still will be 66 days. b) In the post you said: "The last 5d of A is parallel with B, K?and L". However, activity L start date is after A finish date: A=12d L start = 3d SS lag +10d (K) = 13 days
Developing IOT solutions for harsh environments | Founder and Director of MDDSystems Ltd
2 年Thanks Stephen as it's a very insightful post. Critical Path drag is a very useful concept as it shows how much a task on the critical path can be reduced before no further effect will occur on the overall project duration. One small point and I may be incorrect. I don't think that Task A has any drag as it is not on the critical path. The way I read it is the critical path is the fixed lag before task B, task B itself, the lag between B and E, tasks E, H and J. Reducing the duration of Task A will have no impact on the start of Task B and therefore the rest of the critical path. I assume that the lags before and after task B are fixed (7 days and 9 days). However, maybe there's is a "trigger" within Task A that Task B is dependent on and so task B cannot start before then? My reading was that Tasks A and B are independent but maybe they aren't. That's one reason why I don't use lags in my schedules as they can be misleading. Anyway the concept is excellent and you have explained it well.