Filtering for Critical Path of Specific Task

J

Jeff

I am working on a medium sized project with several key
deliverables. The deliverables are constrained with "Must
Finish On." I need to be able to isolate critical paths
leading up to specific deliverables. I have figured out
two ways to do this, although it seems like there should
be a much simpler way.

1) I could flag every task that leads up to specific
deliverables. This method is timeconsuming and could be
prone to my mistakes.

2) If I save the project under a new name, I can remove
all other "must finish on" constraints, which leaves me
with the critical path for only the task I need. The
disadvantage, is that everytime I make changes to the
primary schedule, I have to repeat changes in temp
schedule to see how changes affect critical path. This
method works easily although is not as useful for meetings.

In my mind it seems that MS Project should have a filter
option that allows you to enter in a specific task #, and
filter for just tasks leading up to the deliverable (all
predesessors, and predesessors of predesessors, etc.).
Any suggestions would be appreciated, as it seems it would
be beneficial for any project with multiple deliverables
to be able to isolate the critical path. Thanks!
 
M

Mark Durrenberger

Unfortunately, what you request is not easily done.

Isolating critical paths to a specific deliverable can be done with VBA
code.

It sounds like you are already aware of the "Critical" flag and that you can
filter critical tasks for the project (but not to a specific deliverable).

Are you showing multiple critical paths? This may help
(Tools/Options/Calculation/ Calculate multiple critical paths)

Another trick, change the "slack" threshold (show task as critical if slack
less than ___) (tools/options/calculation)

Hope these help.
Mark


--
_________________________________________________________
Mark Durrenberger, PMP
Principal, Oak Associates, Inc, www.oakinc.com
"Advancing the Theory and Practice of Project Management"
________________________________________________________

The nicest thing about NOT planning is that failure
comes as a complete surprise and is not preceded by
a period of worry and depression.

- Sir John Harvey-Jones
 
S

Steve House

You have several problems. A major one, IMHO, is your use of Must Finish
On constraints for your key deliverables. A constraint in the scheduling
engine is not the same thing as a constraint in the world of your project.
You are using Must Finish On to mean "this is when we have to have this done
by or we are in deep trouble" but that's NOT what a constraint means in
Project. To Project, a "constraint" means that this task will ALWAYS be
shown happening per the constraint, even if it is physically impossible for
it do do so according to the durations and links of the preceeding tasks.
Consider task A and B, each 5 days duration, starting next Monday. That
task sequence will finish 10 days later. They lead to a finish milestone.
Simple FS links A->b->Finish. If I put a MFO constraint on the milestone of
1 September, indicating that's when the contract says we have to finish,
guess what Project shows? It shows task A running from 16 Aug to 20 Aug,
task B from 23 Aug to 27 Aug and then a gap until the milestone occurs,
scheduled on 01 Sep. But when did the milestone REALLY occur? 27 Aug!
Using the constraint caused the milestone to be shown occuring at a date
that is patently in error. So we take another tack. Let's put a Must
Finish No Later Than constraint of 01 Sep on it instead. Now Project shows
the milestone occuring 27 Aug, the correct date. But we still have a
problem. We blew it and task B was grossly under-estimated and actually
takes 10 days instead of 5. Now task B finishes on 03 Sep. But wait,
looking at our milestone it shows finishing the project 01 Sep, right on
schedule!!!!! Again, obviously an error - we CAN'T be finishing on time
because the predecessor that MUST be finished for us to really be done with
all the work actually isn't finished until 2 days later!

A second problem is the use of the term "critical path." It seems like you
are using the term to mean "the important task sequence for producing a
deliverable." But that's not it. As Project (and CPM in general) uses the
term, the critical path is the sequence of events that determines the
overall duration of the entire project. There is no such thing as a
"critical path to a deliverable" unless that particular deliverable just
happens to lie on the critical path of events to the end of the project.
There may be lots of deliverables in a project whose delay to some extent
would not result in a delay of the overall completion of the project and by
definition they are not critical. For instance, I have an application
development project that requires 1 month design, 4 months programming and
testing, and 1 month rollout. I can write the user's manual any time after
design is done because at that point the functionality is locked down and
the programmers write to the design specs. Training is a part of rollout
and I won't actually use the user's manual until we begin training. Writing
the manual is not a critical task or deliverable, even though it's really
really really important, unless it's delayed into the 6th month and the
delay causes training and thus completion of rollout to be delayed,. It is
not a critical deliverable, does not lie on the critical path, and there is
no critical path leading up to it UNLESS it gets delayed more than 4 months
from when it could have been started. At that point, its schedule becomes
the determining factor in the date of the conclusion of all the project work
and so it becomes critical and the critical path shifts to include the
sequence leading to and from it.
 
G

Ginger

There is an awesome software put out by aclynx.com that is
called PathLynx and it will give you 10 critical paths
leading to any single milestone or task in your schedule.
It is an add on for Microsoft Project and is only around
$200. (the only bad news is that you also need Milestones
Professional (kidasa.com) to run PathLynx, but they are
both extremely useful products) I really have not found
any better tool for tracking critical path.
 
D

davegb

Steve House said:
You have several problems. A major one, IMHO, is your use of Must Finish
On constraints for your key deliverables.

Steve,
What's humble about it? :p An old friend of mine used to give me grief
for using that expression, just had to pass it on...

Dave B.
 
D

davegb

I guess I'm a little confused by the use of the term "Critical Path"
in this thread. While it's certainly possible to have multiple
critical paths in a single project, it would be considered, at least
by those who taught me critical path scheduling, poor scheduling, at
best. In most projects, there is one critical path, occasionally 2 (in
which case it probably should be corrected so there is ony one).
Possibly you mean driving tasks, which is another thing entirely. Many
of the tasks on a project have no predecessors that are critical at
all, so no program could find the critical predecessors to that task.

Critical, of course, refers to a task with 0 Total Slack (the
difference between Early Finish and Early Start, which are calculated
in the Forward Pass of a Critical Path analysis).

Not trying to be "critical" here (ok, bad pun intended), I just feel
that if we don't use precise terms in any field, all the terms get
blurred making this kind of discourse difficult at best.

David G. Bellamy
Bellamy Consulting
 
M

Mark Durrenberger

David
I guess I'm a little confused by the use of the term "Critical Path"
in this thread. While it's certainly possible to have multiple
critical paths in a single project, it would be considered, at least
by those who taught me critical path scheduling, poor scheduling, at
best. In most projects, there is one critical path, occasionally 2 (in
which case it probably should be corrected so there is ony one).

I think you will find quite a bit of disagrement on this point. I could
argue, that critical path has nothing to do with scheduling. Critical path
is the result of defining dependencies and estimating durations.
Dependencies come about due to the nature of the work (you you have to get
the cup before you can pour the coffee and it takes 5 minutes to brew the
coffee etc.) Multiple critical paths just mean that you have lots of
parallel paths with equal durations. This is neither "good" or "bad", it
just is. From a management perspective, it means that you have to keep a
close eye on more tasks (assuming that hitting the date is important to your
project).

In fact, when I teach critical path, I insist on putting as much in parallel
as is possible based on the work and not let resource dependencies change
task dependencies. This allows us to find the "natural" end date of the
project (or the non-resource-constrained end date). This date can be
compared to the resource-constrained end date (determined after assigning
available resources to tasks and scheduling around availabilities - leveling
is one way to do this). The difference is "opportunity to shorten the
schedule.
Possibly you mean driving tasks, which is another thing entirely. Many
of the tasks on a project have no predecessors that are critical at
all, so no program could find the critical predecessors to that task.

I think "driving" tasks is a good term for these predecessors.
Critical, of course, refers to a task with 0 Total Slack (the
difference between Early Finish and Early Start, which are calculated
in the Forward Pass of a Critical Path analysis).

Absolutly right on.
Not trying to be "critical" here (ok, bad pun intended), I just feel
that if we don't use precise terms in any field, all the terms get
blurred making this kind of discourse difficult at best.

Certainly:

See the PMBOK Guide. Be the PMBOK Guide

(vague "B" movie reference: Caddy Shack with Bill Murray and Chevy Chase)

Mark
_________________________________________________________
Mark Durrenberger, PMP
Principal, Oak Associates, Inc, www.oakinc.com
"Advancing the Theory and Practice of Project Management"
________________________________________________________
 
D

davegb

Mark Durrenberger said:
I think you will find quite a bit of disagrement on this point. I could
argue, that critical path has nothing to do with scheduling.

Yes, Mark, we would definitely disagree here. To me, Critical Path is
the reason I do scheduling, and has everything to do with it. In fact,
I think it is the reason why so many fail in attempts to succeed in
scheduling large projects, or large groups of projects. They spend
weeks or months in scheduling in software, but never realize the
benefits of it because they don't know how to properly do it in the
first place, or how to analyze the results they get. To be successful
in either, you have to understand CP.
In fact, when I teach critical path, I insist on putting as much in parallel
as is possible based on the work and not let resource dependencies change
task dependencies. This allows us to find the "natural" end date of the
project (or the non-resource-constrained end date). This date can be
compared to the resource-constrained end date (determined after assigning
available resources to tasks and scheduling around availabilities - leveling
is one way to do this). The difference is "opportunity to shorten the
schedule.

Agreed. To a point, the critical path you get is the critical path you
get. Nonetheless, if a project has 10 critical paths, your schedule
risk is extreme. And I was taught that this is a good time to look for
inconsistencies, incorrect linking, or just modify the schedule to
reduce the risk. It's one of those many instances where a PM's
judgement overrides the simplistic view that the tool knows best and
makes gut decisions about how to manage to get the project done in the
least time for the least cost with the minimum risk.
Certainly:

See the PMBOK Guide. Be the PMBOK Guide

(vague "B" movie reference: Caddy Shack with Bill Murray and Chevy Chase)

Here I become worried about you, Mark. Anyone who quotes Bill Murry,
Chevy Chase, or Caddyshack is not well and needs serious help. I know
I did. And that is hasn't helped much....

David G. Bellamy
Bellamy Consulting
 
J

Jeff

Steve,

First, thanks for pointing out I have several problems.
Second, thanks for the length lecture on terminology. I
hope writing long discourses is helpful for your
consulting career, as it is not very helpful in answering
the initial post.

Most of what you pointed out was pretty obvious stuff,
which is taught in any intro to scheduling course. I
apologize though, I should have been more detailed in my
post.

The deliverables are constrained (must finish on) to the
specific date that the customer needs the deliverables by
(called contract date). The predesessor to the contract
date is forecast date (as soon as possible). What this
setup does is allows us to track how we are in keeping up
with the various contractual delivery dates. You see, if
something is behind schedule, there will be negative slack.

It is important for our project to not only keep an eye on
and trouble-shoot the final delivery date for the box, but
also several other contract dates for various boards. The
problem that lead me to post was that, while the detailed
schedule needs to contain everything, I needed to be able
to isolate the critical path leading to one specific
deliverable. While the deliverable is not currently on
the critical path, we still believe that it is important
to keep an eye on what is driving all deliverables that
have specific need dates from our customer.

I had expected there would be a button in Project that
when pushed would allow you to select a particular task
and then look at every task that is a predesessor of that
task, and every predesessor of that task, etc. I then
figured I would be able to filter further to show the
critical path (using the most negative slack) leading to
that particular deliverable.

It turns out this is possible. There was a great macro
(masamiki.com/project/macros.htm) which was posted in
response to my inital post, although I didn't see it just
now. The macro was called a "Trace Macro", which enabled
you to select one task, and then chose to see either all
predesessors, all successors or both. Anyway the macro
works very well and does exactly what I need. Despite the
fact that Steve proved there are no critical paths leading
to deliverables, this amazing little macro identifies "the
sequence of events that determines the overall duration"
for a specific deliverable even though it is not currently
on the critical path of the entire project. AMAZING!

Despite my sarcasm, thanks to anyone who took the time to
try to answer my post.
 
S

Steve House

Jeff, sometimes a response may be longer than absolutely required by your
question because you are not the only one who is reading it. When I respond
to a question, I try to address it to everyone who might be reading the
newsgroup and not just the instant poster, hence the inclusion of
information that you personally may already be aware of.

The problem is that the term "Critical Path" according to CPM (whose
principles MS Project is written to comply with as much as possible, as far
as I can tell ) has very precise technical definition that is far more
constrained than your use of the term. To the best of my knowledge it deals
*only* with the total duration of the project and has nothing to do with the
importance of deliverables. It is rightly applied only to tasks and
deliverables that lie on the single path out of all the parallel paths
through the project that has the longest duration. If the time on the
pathway to produce a particular deliverable is not a determinant of the
total project duration, that is, when the last step in completing a certain
deliverable has a float > 0, the deliverable does not lie on the critical
path and there is not such thing as a "critical path" leading to it. The
sole determinant of the critical path is that tasks on it have a float
greater than zero when referenced to the terminal milestone of the project.
I never said there are no critical paths leading to deliverables. Some of
the deliverables will lie on the longest path through the entire project and
others will not. Only the ones that lie on the project's critical path will
have a critical path leading to them. I suppose it would be theoretically
possible that a project could have several parallel paths between the start
and finish milestone that are *exactly* the same duration but it isn't very
likely in the real world.

Imagine completely independent deliverables A, B, and C each at the end of
paths that diverge from each other when the project begins (Start milestone
S) and never reconnect. 3 paths, S->A, S->B, S->C. Production of
deliverable A takes 5 days, B takes 10 days, and C takes 15 days. The
appearance of multiple critical paths, one leading to A, another to B, and a
third to C is an illusion because this model leaves out the mandatory 5th
task, the finish milestone F, which should be included with links going A->F
and B->F as well as C->F. So in fact, the 3 paths through the project are
S->A->F, S->B->F, and S->C->F and there is only 1 critical deliverable and 1
critical path in this project, S->C->F.

You say the deliverables are constrained to finish by the date the customer
needs it. Of course they are and nothing I said contradicts that or
suggests that you should ignore it or even publish a schedule that shows
finish dates anywhere except those mandatory dates - note the operative word
"publish". A key point I find is often missed is that a "constraint" in MS
Project DOES NOT refer to or model those contractual constraints on your
project. A constraint in MSP is something totally different and unrelated
to those contractual obligations. It's a limitation on what the calculating
engine is allowed to do - period. A "MFO" constraint means that Project
will lie to you and tell you everything is peachy and the milestone will
occur on the desired date *even when* it is absolutely and positively NOT
possible to make your deadline with the tasks planned out they way they are
in the present schedule. The MFO constraint is telling Project "I don't
care if I'm not really going to make it on time, put it on the Gantt chart
on that date anyway!" It means that Project will ALWAYS show that task on
its constraint date regardless of anything else in the project plan that
might try to drive it off of that date. Is that really what you want, or do
you want the software to tell you when there's a problem on the horizon with
enough lead time so you don't come up the day before the deadline date with
the milestone sitting right on it showing finishing right on time and
discover - surprise surprise - that there are really 6 more weeks of work to
do? I suggest it's far more useful if it gives you that information, by
telling you where the task milestone will actually land with the current
predecessor scheduling and show you how that relates to the deadline
established in your contracts, so you can revise the schedule in time to
actually make a difference and have a hope of meeting the deadlines. The
purpose of Project is not just to illustrate what your deadlines are, it's
to give you a predictive model that will respond to inputs of variables like
resource allocation, etc, so as to allow you to develop the optimum strategy
that will actually hit those deadlines. Simply declaring that you will
finish on a certain date does not make it so. To do that, Project has to be
able to freely calcualte so as to predict for you what the results will be
on the milestones IF you go with the schedule as currently modeled and what
will happen to them when you change something like how many widget polishers
are assigned to the polishing task. It won't do that for you if you tell it
not to by using MFO constraints.


--
Steve House [MVP]
MS Project Trainer/Consultant
Visit http://www.mvps.org/project/faqs.htm for the FAQs
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top