Activity and phase priority rules

Member for

21 years 8 months

In reference to my statement:

"I do not agree with the idea on using ambiguous and arbitrary NLT constraints to tame open ends, open ends shall always be critical, simple and unambiguous."

I would like to add Spider Hammocks shall not be considered open ended activities as the finish of these are calculated using predecessor logic.

The problem would be what to do with open ended activities on old project files that are based on current Spider calculations. For this reason I do not believe my suggestion will ever be implemented in Spider, no big deal for me.

The implementation of Zero Total Float Constraint that assigns a total float value of zero, causing the Early Dates to equal the Late Dates of the activity could be an option.

Best Regards,

Rafael

Member for

24 years 8 months

Proritization is useful and in many cases necessary but there is an hierarchy of goals. In Spider Project priorities are considered as soft, like nice to follow. But if there is a solution that at some moments does not follow required order but leads to shorter project duration (and cost) then it is selected.Priorities are used forwhat if 

Priorities are must for portfolio management.

When project is leveled the software looks first to activity priorities and then to other activity data. When priorities are applied and the schedule shall strictly follow required priorities then optimization does not add much and standard algorithms are good enough.

In Spider Project standard means that the user selects the way activities will be prioritised. It can be total float, duration, Start ALAP, ID, etc. - any field selected manually. This is an approach that is used by some other packages like P6, Open Plan, etc. So the user can try several options and select the best for the current project. In MS Project there are no options. This is why I don't agree with Evgeny that Spider standard option is the same as MS Project leveling capabilities. You still have more choices. 

Member for

21 years 8 months

My jobs are all stand alone.

The priority of all my jobs is project delivery, forget about any prioritization taking precedence, to me it makes no sense to target sub-optimal because of how tight our projects are.  I target for an early finish job in the hope [after my own delays] I will still be able to make it.  I believe prioritization shall be considered if it does not affect shortest schedule duration and believed it is how it works.  I use prioritization for activities as well as for resource selection with the understanding optimization can override them. 

Prioritization algorithms and any improvement on them shall always be an option, in case your project is not tight even in the absence of life and death issues can be a better option.  Not always minimum duration will define optimal.  

Once the schedule is running I avoid too many changes in the sequence using the calculation option for "previous version support", after optimization done once in a while, when projected finish have no longer any buffer.

We need multiple options and Spider provides them. 

 photo DOGMA_zpsr9axxxmw.jpeg

Member for

17 years 9 months

Rafael,

I understand what you say and agree with it, but the only thing which I can say is: in my view resource leveling without prioritization has a little use, because projects (or subproject) rarely operate standalone and they never have the same priority.

And the method of "unachievable NLT" constraint is the only way I found make sure that Spider will really make sure that low priority schedule will almost have no influence of the high priority schedule whilst still enjoying the advanced resource leveling algorithm.

But I really wonder how you address this prioritization thing? Do you use it in your projects? 

Member for

21 years 8 months

Evgeny,

I do not agree with the idea on using ambiguous and arbitrary NLT constraints to tame open ends, open ends shall always be critical, simple and unambiguous.  When working with portfolios you should keep all chains constrained by a single start and a single finish activity.  In this way if you want to see float on a portfolio you will see real float.  If you want to optimize the portfolio it will be optimized to its best the software can find.  If you want to keep certain project prioritization then use other algorithm and be explicit about your project priorities in a transparent way.  Using dates when adding a new job it is possible everything gets twisted, if you want to change priorities the intuitive way is to use priorities rather than dealing with a bunch of dates, or hundred of dates if your portfolio is big.  If you do not want or need for portfolio to share resources and be self sufficient as is required in our contracts just do not plan them with shared resources and use an independent pool for each job.

I do not like this approach and did not noticed before as most of my schedules are for construction contractors whose projects are mandated to be scheduled as stand alone, only for curiosity I use portfolios.  Maybe I got scared away by the complexity of rules and decided not to pay attention to it.  Too complicated for everyday use.

Even for stand alone projects I never liked the idea of open ends not critical, if you want to open available float for any chain be explicit with the use of milestones each with its own FNL or add a single duration activity in parallel with the chain, link the new activity and the chain to a new open ended milestone, choose the method that best fits. 
 
Linking open ends to a common finish milestone is not always what you need, sometimes the earliest finishing chain can be delayed further without delaying project delivery.
 
Spider is complicated software but keeps complication within itself to make life less complicated for the end user.  
 
Best Regards

Rafael

Member for

17 years 9 months

Rafael,

One of the consequences of using of prioritization via unachievable NLT constraint is that you get several critical paths. But one can consider, that this is actually an advantage, as effectively we have several subprojects in a schedule then (each of them with different priority), so it is logical to know the critical path of each of them. So, I think this is comparable to MS Project option “Calculate multiple critical paths”.

Any way,  Vladimir has actually described the workaround  to avoid both confusion with stack and multiple critical paths. See his post from Mon, 2013-12-02 16:16.

http://www.planningplanet.com/forums/spider-project/553007/activity-and-phase-priority-rules

This goes about portfolio, but equally applicablte to for project as well

<< 

I don't consider this feature as unofficial. It is natural and exists for more than 20 years.

But I have a proposal: now save this portfolio, define it as a previous version, delete these artificial Finish NLT dates and calculate portfolio schedule with Previous Version Support option.

Best Regards,

Vladimir

>> 

Member for

21 years 8 months

 I did find one example, where it does not quite works like this, but this is still much better, than using priorities. 

I guess this makes it unreliable.

After erasing from my mind your first example in which activity description did not follwed prioritization using FNL I could understand you and found no difficulty on its implementation.  I tried myself finding the single example where it does not woks like this and could not find it on the spot, complex resource modeling takes time.  

It would be interesting to see your example. Maybe the procedure can be adapted to make it reliable for optimization to enforce strict priorities without need to use NLT constraints for this purpose, scheduling is also about transparency. 

I do not believe Optimization shall attempt to satisfy any requirement above what the name implies, shortest duration or it shoulb called Sub-optimizations.  All NLT constraints that make the chain critical shall be considered equally critical, with 0 total float. Use of unreal constraints that might artificially make other meeting chains critical is a capital sin.  When you have to keep a strict priority rule it shall be transparent and under another algorithm, otherwise would be misleading.  

Now it comes out that if real constraints when critical can control optimization you have to figure it out how to tweak them in order to keep a desired order of precedence without making everything critical. Maybe you shall never use NLT constraints for real and use them only for prioritization, anyway they can be anything you want, in such case better call them prioritization constraints. 

Member for

21 years 8 months

OOPS an unsuspected predecessor to Acticvity 10 became critical and priority sequence is broken.

Also everything is critical due to the indiscriminate use of NLT constraints.  Well this is good no matter what any delay by owner justifies an EOT. 

OOPS photo OOPS_zpsettrkfqe.jpg

Member for

21 years 8 months

Your example is confusing as you are assigning a FNL constraint of 05-11-2014 to the chain for Medium priority project via the Medium Finish Milestone while you are assigning a FNL constraint for the Low priority project of 06-11-2014 via the Low Finish Milestone, I cannot follow the logic of what you say. 

Why is that confusing? The lower priority, the later the date, the higher the priority, the earlier the date. And it works!! 

OOps you are correct, jumping back and forth from one example to another is confusing, it would be easier if using prioritization number rather than dates and because FNL can be anything, no matter if the tweaking make all the chains artificially critical, then why use them? 

Member for

17 years 9 months

<<

Your example is confusing as you are assigning a FNL constraint of 05-11-2014 to the chain for Medium priority project via the Medium Finish Milestone while you are assigning a FNL constraint for the Low priority project of 06-11-2014 via the Low Finish Milestone, I cannot follow the logic of what you say. 

>>

Why is that confusing? The lower priority, the later the date, the higher the priority, the earlier the date. And it works!! 

Member for

17 years 9 months

Rafael,

Advantages: followed even in Optimization Plus method

I do not see this happening on your example,  some activities on a chain with earlier NLT constraint are scheduled after those on a chain with a latter one.

Can you point me exactly what you mean? I think everything is happening as I would expect.

 

Disadvantage: not straightforward to use. Screws float calculation (there is a workaround for this by using “previous version support”).

Also unreliable with regard to keeping priorities, optimization will look for shortest schedule duration and this will take precedence.

Well..this is my understanding (and testing), that NLT constraint has a higher priority, then the desire of Spider to make the shortest possible schedule. I did find one example, where it does not quite works like this, but this is still much better, than using priorities. 

Member for

21 years 8 months

Your example is confusing as you are assigning a FNL constraint of 05-11-2014 to the chain for Medium priority project via the Medium Finish Milestone while you are assigning a FNL constraint for the Low priority project of 06-11-2014 via the Low Finish Milestone, I cannot follow the logic of what you say. 

Member for

17 years 9 months

Rafael,

standard resource prioritization downgrades spider to MS Project in terms of resource leveling algorithm, thus losing significant advantage of the tool.

I used example of doctors just to illustrate, that often one needs prioritization, which will concentrate resources on one subproject and only then on another one and not on all of them in parallel.

 

Your example with doctors has a very simple schedule, so one can not see the advantages of the advanced resource leveling there.

RE: “This is why we need several algorithms, because no single algorithm is the cure for all illness.”

I think we already have effectively 2 algorithms

Using priorities of activities or phases

Advantages: straightforward and logical

Disadvantage: gets strictly followed only in the Standard resource leveling. In Optimization and   Optimization Plus may be ignored. Not clear what rules Spider follows, when he takes decision to follow or not follow prioritization.

 

Using unachievable NLT constraint

Advantages: followed even in Optimization Plus method

Disadvantage: not straightforward to use. Screws float calculation (there is a workaround for this by using “previous version support”)

Member for

21 years 8 months

Use the option  "Standard" that will respect the task prioritization.  Let the patient live, of course he will stay longer at the hospital if he survives.

This is why we need several algorithms, because no single algorithm is the cure for all illness.

In your original example the operation activity was not split but the operation started after treating a patient for a headache and he died. 

In case of life/death assignment sequence is so strict then resource dependencies become hard links and shall be scheduled as such.  As you start treating patients the schedule shall be updated in the hope there is time to take care of those with a headache.

ER01 photo ER01_zpsk3u5csvz.jpg

Member for

17 years 9 months

Rafael,

Imagine:

Resource A – emergency department doctor A

Resource B – emergency department doctor B

 

High Priority – help a very ill patient with live threatening illness, who require immediate attention. Any delay in treatment significantly increases chance of death.

Medium Priority – help seriously ill patient, not live threatening, but requires attention ASAP

Low Priority – treat patient with minor illness.

 

Your schedule suggests, that it OK to delay treatment of a High Priority patient, if due to this delay  treatment for  Medium and Low priority patients will also finish earlier.  But I want an algorithm where a High Priority patient gets attention 1st (just because he may die otherwise), even it delays overall schedule.

Do you see what I am trying to say?

Member for

21 years 8 months

I do not get it if not using priorities, no constraints you can get better results by simply clicking on optimization. In this example the finish of the phases will still be in same order.

NPNC photo NPNC_zpst2bcelyr.jpg

Member for

21 years 8 months

 

ee02 photo ee02_zpsi4ueidow.jpg

ee01 photo ee01_zpsaguibtvm.jpg

Evgeny,

I used Optimization as Standard or Advanced were not so good, in this case Optimization Plus yields same result. I erased all FNL constraints.  Do they look like what you are looking?

Best Regards,

Rafael

Member for

17 years 9 months

Rafael,

RE “In your sample job I did not find any defined phase or activity priority! The priority comumn is empty, if you are not expicit the software will not know”

I achieve priority by NTL constraint, the earlier it is – the higher priority

RE “I never liked the idea on using constraints as a way to tweak resource levelling, I keep constraints at a bare minimum.  Spider”

I understand, that may be I am using the feature not the way it was supposed to be used, but it still has been "blessed"  by Vladimir. But can you achieve the same result different way? Can you take the schedule from the bottom example and try to make Spider schedule it the way I scheduled it without using NLT constraints? Note: you need to make sure, that Spider would respect priorities of phases:

  • No Prior Activities
  • Medium priority project
  • Low priority project
  • Absence (highest priority)

Member for

21 years 8 months

In your sample job I did not find any defined phase or activity priority! The priority comumn is empty, if you are not expicit the software will not know.

The discussion is old and long, can you give me the priority you want for your phases and within each phase the activity priorities.  Maybe you just want activity priorities, in such case keep the option to Apply Phase Priority unchecked or even priority values for phases empty. 

It is possible Advanced algorithm will keep activity priorities but with a sorter schedule than Standard.  Resource leveling is known as an NP problem, at times what you consider a lower level algorithm can get better result for some schedules, therefore I am not sure it is a good idea to force algorithms to fit a specific schedule. 

I never liked the idea on using constraints as a way to tweak resource leveling, I keep constraints at a bare minimum.  Spider can calculate a negative float value but do not use it for optimal resource leveling, it would be nuts, still you can try using it as a priority.

Member for

17 years 9 months

Rafael,

I actually posted the shedule, here it is once again:

https://drive.google.com/file/d/0B1FBt_G3gCVqSTlhMnRPeWVPRlU/view?usp=sharing

What I want to achieve is to find a reliable and effective prioritisation mechanism in Spider. My definition of a higher priority is that a lower priority sub-schedule shall have no influence on the higher priority one. In another words Higher priority schedule shall not notice the low priority one, the low priority shall run on the “remaining resource availability”

The straightforward way in Spider to achieve this goal would be to use task and/or phase priorities. But this is not good for me, as Spider only respects these priorities in a standard Method, which turns it into MS Project in terms of resource levelling in this case.

So, I did find how to achieve my goal – by using an unachievable NLT constraints (which I mentioned many times here). In this case I have ability to use optimisation Plus and to have a proper prioritisation.

Still in this case you can see, that in the top example, if I simply delete Activity 2, the medium and Low priority schedules will finish earlier, which means it had an impact there, which is not what I wanted.

In the bottom example (when activity 12 is not splitable), this is not the case. In the bottom example if you delete “No Prior Activities”, the “Medium Finish milestone” as well as “LowFinish milestone” will not change their dates. Equally if you delete “Low priority project”, the  “Medium Finish milestone” will not change. Which is what I wanted. So here it works excellent!

But the top and bottom examples are just different schedules, they only differ in relation to whether activity 12 is splitable, but they are still different. And in one of them Spider works as I would expect and in another one – not quite. Which is still not so bad, as it is better than any other software out there (to the best of my knowledge). Nevertheless may be Vladimir may consider and tune the algorithm, so that it would work as expected even in this case as well.

Member for

21 years 8 months

Evgeny,

I do not have the file of your schedule and this is needed to understand the schedule, forget the talking after a few activities things complicate.

I can see Spider working as I would expect, scenario one is less restrictive as it allows splitting to make it more efficient, it finishes two days earlier. 

Depending upon your resource leveling settings algorithm it will have different outcomes but if selecting optimization you have the higher priority on the "mother of all activities", the project itself, so project duration will be priority number one and everyone else priority 100, or whatever.

Spider allows you to make management decisions by giving you options.  Unless in much hurry in this particular case I would select the second option, without activity splitting, the two days saving might be lost by the inefficiencies the split might cause. In case of splitting I would expect duration of some activities will increase and would need to be adjusted requiring another resource leveling run.  Spider make it easier to find alternate solutions but management decisions on which is best still rest on you. 

Best regards,

Rafael

Member for

17 years 9 months

Vladimir,

I am still thinking about my example, posted 2014-11-03 21:00 and I sort of still believe, that in this particular example Spider does not come up with 100% correct answer in relation to prioritization. Meaning that it still allows low priority activities to delay higher priority activities.

I still would want spider to delay Activity 2 until it stops interfering with Medium and Low priority activities.

 photo PriorViNLT_v1_zpstpgrebba.png

I did notice however, that if I set the flag on Activity 12 to be not splitable, then spider prioritizes everything as I would expect.

 photo PriorViNLT_v2_zpsrulopbp2.png

https://drive.google.com/file/d/0B1FBt_G3gCVqSTlhMnRPeWVPRlU/view?usp=sharing

I do realize, that resource constrained scheduling, when taking into account different priorities is more complex task, then in the situation, when there is only one project. So, may be this is something to look at going forward, so that Spider will be able to resolve even such tasks.

 

Regards.

Evgeny

Member for

17 years 9 months

Vladimir,

thanks.

So if I just describe this in general words, would this be a correct practical interperetation of your statement:

<<

In case of prioritisation by using method of Unachievable NLT Constraint priority in general is given to the projects/path with earlier NLT constraint in case of the resource conflicts. Due to the features of the resource levelling algorithm it is however possible, that the schedule of the high priority project would be longer in the presence of the low priority project, than the schedule of the high priority project alone.

To assess the impact of the low priority project on the high priority project planner should perform the schedule run with and without low priority project and compare the results.

>>

 

Member for

24 years 8 months

High priority in any case means that activities of high priority project/phase have an advantage when compete with activities of lower priorities for the same resources. When resource assignment decision is made Spider looks at the set of competing activities and selects those that have highest priorities.

In your case there were none activities that competed for resources at the moment of activity 2 start. More than that, if to delay activity 2 then overall duration will increase. So this delay was considered as poor decision.

Optimization considers many options and may find the solution that minimizes project duration if to ignore some priorities. This solution is proposed.

Member for

17 years 9 months

Vladimir,

thanks.

Question: what is your/Spider definition of the fact that one project/phase has a higher priority than the other?

I would define it that a higher priority project should not notice the presence of a low priority project  (at least at the time of planning).

Apparently this is not the definition, implemented in Spider (still this seems to be better, than anything else which exists)

So, so what is Spider definition of this? How would you explain it on the way, that high management would understand it, not the schedulers?

Regards.

Evgeny

Member for

24 years 8 months

Evgeny,

Spider algorithms try to optimize resource usage and minimize overall duration of projects and portfolio execution. Activity 2 requires resources that are not busy at its start time, so Spider assigns available resources to low priority activity that may use them. Delaying activity 2 delays portfolio finish. So Spider decides that this solution is not the best. If this low priority activity is splittable resources are moved to activities with higher priorities but if not it permits to finish the work before starting high priority activities.

Best Regards,

Vladimir

Member for

17 years 9 months

Vladimir,

indeed, if I make Activity 2 splitable, it works as I would expect.

But in this specific scenario (where I have chosen to make it not splitable), if I totally delete Activity 2 and re-run schedule, then both Medium and Low priority projects will finish earlier. This means the presence of Activity 2 delays them. However the idea of projects prioritization (the way I see it at least) is that higher priority project shall not notice lower priority project (provided there is no link dependency between them, only resource dependency). It principle in this example this rule is followed for everything, except Activity 2 (Activity 2 and Activity 1 are meant to have lowest priority). That is why I am wondering why is that.

Regards.

Evgeny 

Member for

24 years 8 months

Evgeny,

at the moment of activity 2 start there are no competitors for resource assignment and this activity is resource critical. Delaying this activity means delay of the project finish.

If to make it splittable everything will be fine.

Regards,

Vladimir

Member for

17 years 9 months

Vladimir,

I am still experimenting with setting priorities for subprojects in Spider via unachievable NLT constraint, previously discussed in this thread. I am also trying to program vacations and holidays as activities (as discussed here: http://www.planningplanet.com/forums/planning-scheduling-programming-di…).

I think I found the way to do it:

  • One shall create “unachievable milestones with NTL constraints” (e.g. high, low and medium priority).
  • The high priority milestone shall have NLT date earlier, than medium priority, and medium priority earlier that low.
  • Then all high priority tasks and /or subprojects shall have High Priority milestone as a succeeding activity, medium priority subproject, shall have a medium priority milestone, low priority subproject shall have a low priority milestone.

So effectively the subproject priority is set by linking subproject or activity to a certain milestone with unachievable NLT constraint.

Please see below example on how I plan to do it. In general it all works fine with the exception of the fact, that in this specific example I see, that unsplitable Activity 2 is placed by resource levelling in such a way, that it delays Medium and Low priority projects, which is not what I want, because activities from this phase shall have priority lower, than low (since they do not have any NLT constraint at all)

 

Question:

With this Acivity 2, did I just come to the limit of the Optimisation Plus resource levelling algorithm, so that even Spider cannot resolve this task correctly, or is there any other reason?

 

 photo PriorViaNLT_zpseee80056.png

 

Link to Spider Project file is below

https://drive.google.com/open?id=0B1FBt_G3gCVqbm5LX1RZWmlkZjQ&authuser=0

Member for

21 years 8 months

Bodgan,

Sorry for the mistake it should have been,  photo 12-11-20138-45-34AM_zps58661f7a.jpg

Your help with formulas was excellent, to me your opinion is important, no matter if different to mine or if different to the general consensus in your country. The opinion of all matters, general consensus carry a heavy weight but I do not always agree, guess we can agree to disagree. I am always open to change my opinion if reasoning tells me I should. 

My idea on having control of open ends is because they do happen no matter if you like it or not. At times some flexible control is desired, otherwise all software vendors that are calling for strict adherence to their own good practice rules would easily prevent it from happening by stopping schedule calculation whenever there are multiple start/finish open ends on individual schedules or whole portfolios. I challenge these valiant software developers to dare to implement such strict measures if they really meant it.  

Thanks once again,

Rafael

Member for

13 years 2 months

Rafael,

You said - I think it would also make sense to consider SNE at the beginning of the project rather than at the beginning of the portfolio. - I don't know the acronim SNE.

You also said - By the way thanks for not insisting on the lecture about good practice and providing me such valuable help.

I can't really say I have an opinion on the matter since in my country Planning is very little used, only for large/very large projects wich attract International Constractors. 

Best Regards,

Bogdan

Member for

21 years 8 months

Bodgan,

You said - I think it would make more sense to consider the FNL at the end of the project rather than the end of the portfolio. 

I agree and would add - I think it would also make sense to consider SNE at the beginning of the project rather than at the beginning of the portfolio.

It means a few other formulas might be needed to constraint float of project to occur within project range. 

 photo 12-10-20137-30-07PM_zpsc75cafe5.jpg

By the way thanks for not insisting on the lecture about good practice and providing me such valuable help. Just think about the possibility when managing a portfolio of hundreds of jobs as it happens in the utilities, and a few job supervisors are like me that do not always follow the rules. 

Best Regards,

Rafael

Member for

13 years 2 months

I tested my formulas on a very small portfolio, in which there were no open end activities and it works well.

By appling FNL at the portfolio level I can obtain the criticality index for projects finish dates and for the activities beloging to each project of the portfolio when using MC.

I think it would make more sense to consider the FNL at the end of the project rather than the end of the portfolio. In this case the formula will need considerable adjustments. The easiest way, I think, would be to identify all finish milestones in the portfolio and set the FNL of the activty to the respective finish milestone of the project, a bit more dificult. I will look into it and tell you if I have any good simple solutions for a formula.

Best Regads,

Bogdan

Member for

21 years 8 months

Thanks, I downloaded new version yesterday and everything works as expected. 

As I said before the idea was to eventually simplify/consolidate the formulas and will be able to continue with this approach.

Your formulas work so well I will use them, no need for further refinement and those are the ones I will use. Your formulas are applied directly to regular existing fields, do not depend on user defined fields one of my targets when simplifying formulas, they save a step when transferring formulas to other files. So simple no script is needed another step saved when transferring formulas and scripts. 

Eventually I will be looking for portfolios, maybe an additional open ends option in portfolios will be needed, though not sure. I will target for the options to make open ends critical, to make open ends FNL equal to their job finish or to make open ends equal to global portfolio finish. An option you might apply to individual jobs within a portfolio instead of globally, global application would be an additional option. 

Member for

13 years 2 months

Rafael,

I've just been informed that the problem with formula B has been fixed in version 11.01.90. You should now get the 'No' you were looking for when FinDir field is empty.

I tested it and it work just fine.

Best Regards,

Bogdan

Member for

21 years 8 months

Bodgan,

I believe it happened as an unexpected result when formula functionality was recently improved, to me a major and welcome improvement. 

The following screen shows a workaround I do not like as if you try to consolidate in a single formula will not do it.

 photo 12-7-20132-22-39PM_zpsa8b190f6.jpg

Best Regards,

Rafael

Member for

21 years 8 months

Bodgan,

I tried your suggestion but I am still having the same issue, column for B values only displays Yes values.

 photo 12-7-20139-23-09AM_zps5dd37da6.jpg

I do not recall how P6 implements open ends functionality on a Portfolio as there can be additional options as what shall be the FNL constraint. Prehaps in some jobs open ends critical, in others open up to individual project end, in others up to protfolio end. Each opition will affect criticality in different ways and therefore resource leveling.

Best Regards,

Rafael

Member for

13 years 2 months

Rafael,

I have no ideea why it didn't work, I even tried it in another file than the one you uploaded and I got the same result as you. Perhaps Vladimir could shed some light on this matter. 

In my opinion it is a very straight forward "if" statement.

Best Regards,

Bogdan

Member for

13 years 2 months

Glad I could help,

regarding the formula I think the problem is the way you created the condition for the "if", FNL cannot be negative or zero since it is a date, so FinDir>0 doesn't make sence, the only one that makes sense is the existence or nonexistence of the FNL.

In other words I belive that if you change the FinDir>0 to FinDir != '' the formula will return the right results every time.

Member for

21 years 8 months

Bodgan,

I usually start developing formulas in steps using very simple formulas as to follow whay happens to individual values and then I usually consolidate into fewer formulas, but one of the simple formulas does not work 100% as expected.

Your formulas work perfectly well for what I intend to you got right what I wanted to do.

I am still looking for the answer about why if interested on getting very simple formula 002B rigt, to disclose either a Yes or a No and no empty space I am getting empty space in some cells. I want to know how to get it right and why it is not working as expected. In  the future I might need formula 002B to get it 100% right or maybe other simple formula that can have such behavior. 

Some of the formula functionality have changed and I will take a look at Spider Help to get updated.

Meanwhile a 1,000 thanks as your formulas shall work perfectly.

Best Regards,

Rafael

Member for

13 years 2 months

Rafael, 

I took a look at your file and I have a couple of questions:

1. When would you consider that formula 002B is not applicable?

2. I think you created a complicated solution, using 5 formulas. Why not consider that all chains that have a finish date less then that of the project are possible critical paths why not consider the end date of the project as the main criterium for creating FNL constraints. This way you can create and remove FNL for only the last activity of those chains whilst keeping other FNL constraints in the Project/Portfolio unchanged.

If I did not make any mistakes in my judgement I belive these formulas will get you better results.

Set FNL: FinDir = if ( f_SuccOpers = '' and Fin < Fin[BSC,0], Fin, FinDir)

Remove FNL: FinDir = if ( f_SuccOpers = '' and FinDir != '', '', FinDir)

I tried these formulas on your example and did not get FNL for activity 2 which is already critical.

Here are both files, mine and your's with the above mentione formulas.

http://www.speedyshare.com/3GR3u/Desktop.rar

Best Regards,

Bogdan

Member for

21 years 8 months

Bodgan,

I got the formulas that can get me to where I want, to perform bad, but at times the script is unstable. I am having issues to make some formulas get out of limbo, just look at formula for B, it got to be either Yes or No but not limbo.

 photo 12-6-201311-12-35AM_zps56fca335.jpg

The idea is to mimic what other software do automatically following what I suppose is correct algorithm:

  • Identify activities with no successors.
  • Identify activities with no FNL constraint.
  • Mark as open ended activities those with no successor or with no FNL constraint.

I am getting some unstable results and the source might be the fact that some formulas remain in limbo.  Maybe you can help me with some ideas as to get formula 002B to get No value when Yes is not applicable.

http://www.mediafire.com/download/u5lgs084db7md7z/RD001.001.sprj

Your help to break the inflexible "good practice" rules will be appreciated as I do not believe on literal interpretation of what shall be a guide but not inflexible rules. Even Microsoft and Primavera P6, P3 and SureTrack among many others, none my favorite, tolerate open ends and provide functionality for it.  At times I want to leave open ends and make them critical when modeling multiple separate jobs under a single file whose finish date is not constrained because at the moment there is no such urgency and a FNL constraint does not exists while the jobs share resources and modeling them in a portfolio is an overkill. To follow criticality then an artificial FNL constraint that moves dynamically is needed. 

Best Regards,

Rafael

Member for

21 years 8 months

Vladimir,

Open ends shall be unlawful as a general rule but in occasions it might not be the case as when you are modeling within a schedule multiple independent jobs or networks that share resources but finish of each is independent of the other and you want to disclose float of each network independent of each other while sharing resources.

Maybe this can be done using Portfolios but at times it is easier to use a single file.

By the way the new version issue with my formulas  was solved within 24 hours as usual, new full version install took me about 20 seconds, I love my solid state hard disk is faster than the old one, on my typical 600 activities jobs Spider Monte Carlo is fast, very fast.  

I do not use script language, too much for my mind, but use editor to modify whatever script I create using record method. From my prior posting you will see I am trying to create a script to automate making open ends critical but wonder about the script recording the calculation settings instead of using last used settings that might be changed after script creation, here maybe a specific script command might be needed unless whatever I am reading on the editor does not means the recorder is fixing the settings.

Latter I will post my file so you can comment on my script if you have the opportunity. The following figure displays the formulas I am using, the idea is for the script to apply formulas 001 to 003, execute schedule run and clear temporary FNL constraints via formula 004. Note I erase FNL cell on open ends by using a formula with FinDir - FinDir, any suggestion or comment will also be welcomed.

 photo 12-4-20132-03-45PM_zps7c5134f2.jpg

Best Regards,

Rafael

Member for

13 years 2 months

Greetings,

Rafael, I agree 100% with Vladimir regarding open ended activities, but for problem/solution I think these formulas might work pretty good:

1. Set FNL: FinDir = if(f_SuccOpers = 0 and Code != 11, Fin, FinDir); where 11 is the code of the final milestone

2. Remove FNL: FinDir = if(FinDir != "" and f_SuccOpers = 0 and Code != 11, "", FinDir); where 11 is the code of the final milestone.

There might be a better solution if you search in the "Links" table for succesor. I haven't managed so far to really get the hang of formulas from different tables, I need more practice.

Regards,

Bogdan

Member for

24 years 8 months

Rafael,

one of the requirements to schedule models that we always apply: absence of open ends.

This is one of the main reasons why we don't want making Open Ends lawful by suggesting any option to open ends except search.

Member for

21 years 8 months

  • Spider uses float for many purposes, among them uses float values on the resource leveling process, but resource negative float has no meaning under resource leveling algorithm so if a FNL constraint is unattainable it assigns computed early finish to late finish before backward computation, this makes the activity critical so it is a lie negative lag is necessary to disclose criticality.
  • Negative float computations results when late dates are earlier than early dates as adjusted by some software. Spider can mimic it but I doubt it uses the value on any of its algorithms.
  • Negative lag confuses forensic annalist so they start their analysis by eliminating the constraint that causes negative float to be displayed.
  • Negative lag is a manipulation so perverse that it has created legal issues and therefore it is usually required to specify that negative lag will not be used for delay claims or it might impose additional responsibility on a delaying party. 
  • I do not like the idea, in any case a different computation that shall be disclosed separate from how normal float shall be calculated, it took me some effort to convince Vladimir to disclose such calculation algorithm under separate functionality in Spider just because this is how some insist float shall be calculated.  Now we can disclose both methods. 
  • I believe Spider will calculate and display negative float if desired but will not disclose resource negative float. I also believe Spider approach to disclose both calculations is an excellent and pragmatic solution to the issue as it would be almost impossible to erase all traces of negative float usage in the US.

Member for

17 years 9 months

Rafael,

can you send me a couple of links regarding negative float? I am not familiar with the concept

Regards.

Member for

21 years 8 months

Evgeny,

I know about the unachievable FNL constraint but is confusing if it can alter resource leveling on undesired ways when it is artificial while making it equal to activity finish date would eliminate the issue.

Also now we have the option to expose negative float and using date other than calculated finish date will result on weird negative float values.

I do not find real practical use for negative float as it has no meaning under resource leveling but clients users of other software insist on we disclose such manipulation of float values.

Regards,

Rafael

Member for

17 years 9 months

Rafael,

RE "...you was looking for a way to make open ends critical through FNL constraints, a functionality available in most other software except Spider..."

I know what you mean. In Ms Project this is an option "Calculate maultiple critical paths", and in Spider it seems not to be available, but you can achieve this by putting "Unachievable NLT constraint" to the end.

In my projects I try not to have much of lose ends. I try to terminate all them to a few milestones. This is also natural. There is always some milestone once everything is done. So for implemantation project I would have "System is implemented", "non-time critical design documentation delivered" "All residual items are solved"

Regards.