Tips on using this forum..

(1) Explain your problem as best as you can. Don't simply post "XYZ Isn't working". What is it you expected or wanted? What were you doing when you faced the problem? What have you tried to resolve - did you look for a solution using "Search" ? Has it happened just once or several times?

(2) It's also good to get feedback when a solution is found, return to the original post to explain how it was resolved so that more people can also use the results.

ALAP constraint behavior question

11 replies [Last post]
John Borton
User offline. Last seen 5 weeks 5 days ago. Offline
Joined: 12 Sep 2018
Posts: 5
Groups: None

Hi there. Moderate Projects user over the years with a scheduling need I've never encountered and I'm hoping I'm just ignorant of an easy solution. I'm currently using a very old 2002 version.

Attached is an image with three figures (all different screen shots from a simple 'project' created just to illustrate my issue). This sample project has 3 floating activities and a 'project completion' milestone which has an artificial hard completion date. The behavior of Activity #2 is what I'm attempting to control (I want the float gone).

All relationships are simple 'FS' with zero lag. Activities 1 and 3 are constrained 'ASAP' in all three figures. 

In figure 1, Activity 2 is constrained 'ASAP' with the expected float reflecting the difference in duration between activities 1 and 2.

In figure 2, Activity 2 is constrained 'ALAP' which has taken the float out of Activity 2, but pushed Activity 3 down to the project end and the float is now reflected in the start of Activity 3.

Figure 3 is what I'm trying to achieve (without a hard constraint). I want the float gone between activities 2 and 3, but I can't have 3 pushed down to the end of the project. In other words, I want Activity 2 to be ALAP while Activity 3 is ASAP. This may sound like a directly conflicting requirement (and it may be as related to Projects' capabilities), but it's not conflicting if one thinks of activity 3 being ALAP relative to Activity 3 while Activity 3 is ASAP relative to the project as a whole.

Can this be done in Projects 2002? Any version of Projects? Any version of a CPM software?

Remember, it's the described principle I'm interested in -- it would be easy in this little snippet to just 'hard constrain' and get away with it, but I'm involved in a relatively large scheduling project and in such any hard constraints will really create issues as things are updated.

Thanks.
JB

6085
untitled.jpg

Replies

Alexandre Faulx-B...
User offline. Last seen 4 days 5 hours ago. Offline
Joined: 20 Jan 2003
Posts: 1231

Tom,

you are perfectly right, SF link is only a workaround; it does not answer the fundamental question of the difference between Total Float or Free Float being used in the so called ALAP constraint

I will have a try to your VBA macro

Alexandre

Tom Boyle
User offline. Last seen 7 hours 56 min ago. Offline
Joined: 28 Nov 2006
Posts: 221
Groups: None

Alexandre,

If your only objective is to manipulate the dates to get what you want, then the reverse logic and SF link may be OK; it seems common enough among MSP users of all experience levels.  It is nonetheless a misguided approach in logic driven planning, in my opinion. 

Equipment must be delivered before it is installed - full stop.  To discard this requirement and insert the SF link as you suggest is to damage the proper logic flow through the schedule.  As a result, the late dates and Slack of activity 2 (delivery) and its predecessors (e.g. specification, PO, design, production, etc.) are incorrect.  Moreover, the correct scheduling (early dates) of activity 3 (installation) and its successors is not assured in case of a delay of the equipment.

Alexandre Faulx-B...
User offline. Last seen 4 days 5 hours ago. Offline
Joined: 20 Jan 2003
Posts: 1231

Hello Planners,

I would use a Start to Finish link between the activities 3 (Predecessor) and 2 (Successor)

By doing so, the activity 2 would finish at the begining of activity 3, and would not push activity 3 ahead against the milesone

This is the best workaround in MSP, whatever the version you are using .

Alexandre

John Borton
User offline. Last seen 5 weeks 5 days ago. Offline
Joined: 12 Sep 2018
Posts: 5
Groups: None

Abel:  // "Wouldn't it be possible, to simply run Activity 2 with a relation type FF to Activity 1? " //

Not and get the desired result - I dont' want Activity 2 to be scheduled to finish with Activity 1, I want its finish to be tied directly to the start of Activity 2 with no float ever.   

Logic: (part of the confusion may be a typo in my OP -- fixed here)
 

1: The finish of Activity 2 as late as possible relative to the start of Activity 3

2:  The start of Activity 3 as early as possible relative to the finish of Activity 1

As Tom has accurately described it, it's a 'just in time' scheduling issue.  

Tom's Macro has worked marvelously btw. 

JB

 

 

 

 

Abel Santos Silva
User offline. Last seen 7 weeks 5 days ago. Offline
Joined: 17 Oct 2010
Posts: 2
Groups: None

Hi John,

Wouldn't it be possible, to simply run Activity 2 with a relation type FF to Activity 1? 

Tom Boyle
User offline. Last seen 7 hours 56 min ago. Offline
Joined: 28 Nov 2006
Posts: 221
Groups: None

Marco,

Thanks for the comment, though I would disagree with your characterization of MSP as a "poor and amateur application."  I would say it's a reasonable scheduling application with some pluses and minuses - primarily aimed at a "poor and amateur", but extremely large, user base.

Rgds, tom  

Marcus Possi
User offline. Last seen 7 weeks 5 days ago. Offline
Joined: 27 Feb 2010
Posts: 37

Hello Tom and John,

These tips are really important, not only to be a workaround for MS limitations, but also to make visible that many schedules are condemned by MS, because since 1998 they ignore ALAP avtivities.why insisting in such a poor and amateur appliction, instead of P6, spider project , or even ASTA power project? Tks.
Tom Boyle
User offline. Last seen 7 hours 56 min ago. Offline
Joined: 28 Nov 2006
Posts: 221
Groups: None

I'm glad you got it worked out.

Sorry I didn't think to mention that macro, which I don't use much.  Maybe I would use it more if it were improved by combining it with a longest-path-type backward logic tracer.  As it is, I've become less reliant on ZFF constraints over the years - in both MSP and OPV - so it's not worth the time to improve the macro.

John Borton
User offline. Last seen 5 weeks 5 days ago. Offline
Joined: 12 Sep 2018
Posts: 5
Groups: None

Much appreciated Tom.  Your idea was a great workaround and in many instances worked great in my schedule.  I had a few places where there were predecessors to the Activity 2 you helped me with and those predecessors had the same issue but without the same solution available.

I finally found this blog entry where a user wrote a MP VBA macro that whips through, finds all the instances where you want the ZFF (zero free float) behavior and replicates it programatically (using the ugly 'C' word).  I modified it slightly to meet my needs and it really works great, so until I can afford Primavera, this will have to do

http://www.boyleprojectconsulting.com/TomsBlog/2016/08/31/simple-macro-f...

Thanks again.

(LOL -- just realized that it was YOUR blog I just posted.  So DOUBLE thanks and best wishes during the upcoming hurricane headed your way - stay safe.)

JB

 

John Borton
User offline. Last seen 5 weeks 5 days ago. Offline
Joined: 12 Sep 2018
Posts: 5
Groups: None

Thanks SO MUCH Tom.    I'll give that a try in my full schedule and report back.

JB

Tom Boyle
User offline. Last seen 7 hours 56 min ago. Offline
Joined: 28 Nov 2006
Posts: 221
Groups: None

Hi John,

The behavior you seek is that of a Zero-Free-Float constraint, which is not available in MSP.  When used in a forward-scheduled project, the ALAP constraint in MSP is in fact a Zero-Total-Float constraint, which serves no useful purpose as you have found.  Though my memory is a bit fuzzy on the earlier versions (and I skipped from Project '98 to Project 2003), I'm pretty sure MSP has never had a ZFF constraint.  The workaround, at least where Task 2 represents a just-in-time delivery, is to insert a readiness milestone between 1 and 3.  Then make that milestone an FF predecessor of 2.  This keeps the logic flow intact without using the C-word.

Zero-Free-Float constraints are certainly available in other scheduling software - P3 actually called it by that name.  P6 calls it ALAP, which of course causes much confusion for P6 user who stumbles into MSP.  I think Asta Power Project allows entire strings of activities to be similarly delayed within available free float - pretty flexible.      

I'm not sure if PP has fixed its image retention problem (uploads like yours were only retained for a couple hours).  If not, I'll move the image below (including the workaround) to an external host. Good luck, tom

(18Sep'18 - changed image link to external source.)