Earliest Predecessor

  • Thread starter Steve Barlow (UK)
  • Start date
S

Steve Barlow (UK)

I have three tasks A1, A2 and B. A1 and A2 have different start and finish
dates and ideally different durations. A1 and A2 are NOT dependent on each
other but B is dependent on them both.
I want B to start whichever of A1 and A2 finish first. However, the default
linkage for FS uses the latest of the two finishes. I’ve also tried
variations on SS and adding a lag the same as the A1 & A2 durations but
similar (too late) result.
Can’t help but think the answer is staring me in the face and that I’m not
applying the correct logic. Can any one offer any thoughts please?

Regards
Steve B
 
D

davegb

I have three tasks A1, A2 and B. A1 and A2 have different start and finish
dates and ideally different durations. A1 and A2 are NOT dependent on each
other but B is dependent on them both.
I want B to start whichever of A1 and A2 finish first. However, the default
linkage for FS uses the latest of the two finishes. I've also tried
variations on SS and adding a lag the same as the A1 & A2 durations but
similar (too late) result.
Can't help but think the answer is staring me in the face and that I'm not
applying the correct logic. Can any one offer any thoughts please?

Regards
Steve B

Interesting question. The only thing that I can think of would be to
use a formula in a custom field to determine which date is earlier,
and then put that in the Start Date field, but I'm not sure how to do
that. Never tried it and don't have Project here at work. Maybe
someone else can give you more details, or better yet, has a better
solution.

Hope this helps in your world.
 
J

Jim Aksel

FS logic is not going to help you here. The "physics" of it say that both
tasks must be complete before task B can start. That is all the program can
understand.

Essentially what you have is "First predecessor wins" That is, the first
runner to reach the finish line gets to go on, the other drops off.

You may want to post to the developer forum. Using a formula in one of the
custom fields is not going to work here because a formula will only
understand information on the task line.

Here's a general approach, I am sure there are other solutions.
Write a Macro that will examine the two predecessors A1 and A2 and learn
which task has the earlier finish date. Have the macro plug the task ID of
the earlier A1/A2 into the Predecessor field of task B and delete the other
predecessor. You then have some cleanup on task B if you had set a
constraint such as start no earlier than.

Problem: You need to remember both A1 and A2 are predecessors to B in case
the future changes which task finishes earlier. So, your macro may need to
be hard coded for the predecessors (not good), or, you may want the macro to
be more general so it examines the selected task and then asks the user to
key in the predecessor links and reacts to that.

Question: If A1 has the earlier finish date, what do you link A2 to now
that you want to break the A2-B link? Does it just float off to nowhere? If
so, does that imply the predecessor chain leading to A2 then becomes
worthless?
--
If this post was helpful, please consider rating it.

Jim

Visit http://project.mvps.org/ for FAQs and more information
about Microsoft Project
 
J

Jack Dahlgren

There is no built-in method for this, but a bit of VBA code will handle it.
I have a macro which does this that you can get here:

http://masamiki.com/project/macros.htm

Look down the page for "Follow Earliest Predecessor"

It is certainly a work-around, but Microsoft Project is not alone in not
providing the sort of conditional logic you are describing.

-Jack Dahlgren
 
S

Steve House

A contrarian view is the A1 and A2 are not really predecessors of B at all
if the situation you describe is accurate. While predecessor successor is
sometime interpreted to be a relationship based on time sequencing, that's
really not the case at all. The predecessor successor sequence is based on
project logic - the predecessor does something that has to happen in order
for the successor to happen. Can't install the roof until we have erected
the walls because Mother Nature doesn't let us park the roof unsupported in
midair and stuff the walls under it later. It might be that it has to
start, it might be that it has to finish, but what a dependency link says
says is that there is a physical reason that something must happen with the
predecessor in order for something to happen with the successor. If there
is any way at all, any conceivable circumstance, that B could happen without
A1 happening, there is no link between A1 and B. Likewise, if there is any
physical way B could happen without A2 happening, there is no link between
A2 and B. The circumstance you've described says that B can happen
independent of A1 or A2 which means it can happen independently of A1 AND
A2, therefore no dependency link exists - full stop. Sequencing is
determined strictly by resource availability but resource management is not
the purpose of links between tasks.

You do not insert links to create time sequences - you insert links because
they're mandated by process sequence requirements. Time sequences are
always a consequence of links, never the cause to create them.
 
J

Jack Dahlgren

Steve House said:
A contrarian view is the A1 and A2 are not really predecessors of B at all
if the situation you describe is accurate.

Not so contrarian. I think most would agree that the classical Finish to
Start precedence is not strictly correct here.
While predecessor successor is sometime interpreted to be a relationship
based on time sequencing, that's really not the case at all. The
predecessor successor sequence is based on project logic - the predecessor
does something that has to happen in order for the successor to happen. ....
what a dependency link says says is that there is a physical reason that
something must happen with the predecessor in order for something to
happen with the successor. If there is any way at all, any conceivable
circumstance, that B could happen without A1 happening, there is no link
between A1 and B. Likewise, if there is any physical way B could happen
without A2 happening, there is no link between A2 and B. The circumstance
you've described says that B can happen independent of A1 or A2 which
means it can happen independently of A1 AND A2, therefore no dependency
link exists - full stop. Sequencing is determined strictly by resource
availability but resource management is not the purpose of links between
tasks.

You do not insert links to create time sequences - you insert links
because they're mandated by process sequence requirements. Time sequences
are always a consequence of links, never the cause to create them.

Great job of pointing out the inadequacies of Microsoft Project as a
schedule modeling tool. :)
There are many times that the logic of the project can not be accurately
modeled by the limited logic present in the tool.
Having conditional logic and other sorts of constructs would make it easier
and make these sorts of work-arounds unnecessary.

-Jack
 
S

Steve House

I'm not so sure how serious a deficiency that is. What I observe in my
classes is a burning desire on the part of the manager to impose their ideas
of what the schedule ought to look like (okay, needs to look like) onto the
project plan. They want to create the schedule and control it through a
personal act of will (or skill, if you prefer). I prefer a more Zen
approach, where the project schedule isn't something that is created but
instead is something that is discovered - the schedule already exists
implicit within the project process and a specific deployment of the
resources who will carry it out and it's the project manager's job to ferret
it out and use it to make a predictive model of the project's behaviour, the
ultimate goal being to answer the question "if the workflow is organized
like this and the resources deployed like that, what will the consequences
be on my timeline and my costs?" If that fits the business needs of the
project, well and good. If it doesn't, then we have to change the workflow
and the resources until it does. But our desires or needs are never, in and
of themselves, sufficient to make it actually happen. Projects often fail
due to the fallacy of magical thinking that belief and power are the
determiners of reality.
 
J

Jack Dahlgren

Magical thinking is a different problem.
I have yet to run into real life situations which could be completely
modeled using only the strict dependencies in project.
Modeling and wishing are entirely different things.

-Jack

Steve House said:
I'm not so sure how serious a deficiency that is. What I observe in my
classes is a burning desire on the part of the manager to impose their
ideas of what the schedule ought to look like (okay, needs to look like)
onto the project plan. They want to create the schedule and control it
through a personal act of will (or skill, if you prefer). I prefer a more
Zen approach, where the project schedule isn't something that is created
but instead is something that is discovered - the schedule already exists
implicit within the project process and a specific deployment of the
resources who will carry it out and it's the project manager's job to
ferret it out and use it to make a predictive model of the project's
behaviour, the ultimate goal being to answer the question "if the workflow
is organized like this and the resources deployed like that, what will the
consequences be on my timeline and my costs?" If that fits the business
needs of the project, well and good. If it doesn't, then we have to
change the workflow and the resources until it does. But our desires or
needs are never, in and of themselves, sufficient to make it actually
happen. Projects often fail due to the fallacy of magical thinking that
belief and power are the determiners of reality.
--
Steve House [Project MVP]
MS Project Trainer & Consultant
Visit http://project.mvps.org/faqs.htm for the FAQs


Jack Dahlgren said:
Not so contrarian. I think most would agree that the classical Finish to
Start precedence is not strictly correct here.


Great job of pointing out the inadequacies of Microsoft Project as a
schedule modeling tool. :)
There are many times that the logic of the project can not be accurately
modeled by the limited logic present in the tool.
Having conditional logic and other sorts of constructs would make it
easier and make these sorts of work-arounds unnecessary.

-Jack
 
S

Steve House

I'm using the term 'magical thinking' to mean they are building a project
plan that illustrates what they think is how the project ought to behave
rather than one that predicts how it actually will behave. The 'magic'
comes from the belief that somehow enshrining the schedule in writing and
publishing it to the project team will enable it to come to pass in the way
it was hoped. As my student said the other day "We will do whatever it
takes to make it happen." Nice theory, but when I asked her what would
happen if the maximum physical effort the resources were able to muster
still wasn't good enough to complete the deliverable on time she couldn't
answer. There's no way you can get 48 hours worth of work done in a 24 hour
day, no matter how dedicated the team is or how many pots of coffee you
order in. <grin>
--
Steve House [Project MVP]
MS Project Trainer & Consultant
Visit http://project.mvps.org/faqs.htm for the FAQs



Jack Dahlgren said:
Magical thinking is a different problem.
I have yet to run into real life situations which could be completely
modeled using only the strict dependencies in project.
Modeling and wishing are entirely different things.

-Jack

Steve House said:
I'm not so sure how serious a deficiency that is. What I observe in my
classes is a burning desire on the part of the manager to impose their
ideas of what the schedule ought to look like (okay, needs to look like)
onto the project plan. They want to create the schedule and control it
through a personal act of will (or skill, if you prefer). I prefer a
more Zen approach, where the project schedule isn't something that is
created but instead is something that is discovered - the schedule
already exists implicit within the project process and a specific
deployment of the resources who will carry it out and it's the project
manager's job to ferret it out and use it to make a predictive model of
the project's behaviour, the ultimate goal being to answer the question
"if the workflow is organized like this and the resources deployed like
that, what will the consequences be on my timeline and my costs?" If
that fits the business needs of the project, well and good. If it
doesn't, then we have to change the workflow and the resources until it
does. But our desires or needs are never, in and of themselves,
sufficient to make it actually happen. Projects often fail due to the
fallacy of magical thinking that belief and power are the determiners of
reality.
--
Steve House [Project MVP]
MS Project Trainer & Consultant
Visit http://project.mvps.org/faqs.htm for the FAQs


Jack Dahlgren said:
"Steve House" <sjhouse at hotmail dot com> wrote in message
A contrarian view is the A1 and A2 are not really predecessors of B at
all if the situation you describe is accurate.

Not so contrarian. I think most would agree that the classical Finish to
Start precedence is not strictly correct here.

While predecessor successor is sometime interpreted to be a
relationship based on time sequencing, that's really not the case at
all. The predecessor successor sequence is based on project logic -
the predecessor does something that has to happen in order for the
successor to happen.
...
what a dependency link says says is that there is a physical reason
that something must happen with the predecessor in order for something
to happen with the successor. If there is any way at all, any
conceivable circumstance, that B could happen without A1 happening,
there is no link between A1 and B. Likewise, if there is any physical
way B could happen without A2 happening, there is no link between A2
and B. The circumstance you've described says that B can happen
independent of A1 or A2 which means it can happen independently of A1
AND A2, therefore no dependency link exists - full stop. Sequencing is
determined strictly by resource availability but resource management is
not the purpose of links between tasks.

You do not insert links to create time sequences - you insert links
because they're mandated by process sequence requirements. Time
sequences are always a consequence of links, never the cause to create
them.

Great job of pointing out the inadequacies of Microsoft Project as a
schedule modeling tool. :)
There are many times that the logic of the project can not be accurately
modeled by the limited logic present in the tool.
Having conditional logic and other sorts of constructs would make it
easier and make these sorts of work-arounds unnecessary.

-Jack
 

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