"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
Member for24 years9 months
Submitted by Vladimir Liberzon on Wed, 2015-03-04 14:48
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
Member for21 years8 months
Submitted by Rafael Davila on Wed, 2015-03-04 14:13
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.
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
Member for21 years8 months
Submitted by Rafael Davila on Wed, 2015-03-04 12:41
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.
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.
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
Member for21 years8 months
Submitted by Rafael Davila on Tue, 2015-03-03 22:11
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
Member for21 years8 months
Submitted by Rafael Davila on Tue, 2015-03-03 22:07
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?
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!!
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
Member for21 years8 months
Submitted by Rafael Davila on Tue, 2015-03-03 18:19
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.
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
Member for21 years8 months
Submitted by Rafael Davila on Tue, 2015-03-03 13:06
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.
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
Member for21 years8 months
Submitted by Rafael Davila on Mon, 2015-03-02 22:22
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.
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?
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
Member for21 years8 months
Submitted by Rafael Davila on Mon, 2015-03-02 13:42
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.
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
Member for21 years8 months
Submitted by Rafael Davila on Mon, 2015-03-02 11:02
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.
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.
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.
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.
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
Member for24 years9 months
Submitted by Vladimir Liberzon on Thu, 2014-11-06 12:43
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.
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.
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
Member for24 years9 months
Submitted by Vladimir Liberzon on Tue, 2014-11-04 18:53
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.
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?
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
Member for13 years2 months
Submitted by bogdanleonte on Wed, 2013-12-11 06:43
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
Member for21 years8 months
Submitted by Rafael Davila on Wed, 2013-12-11 03:24
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.
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
Member for13 years2 months
Submitted by bogdanleonte on Tue, 2013-12-10 20:44
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
Member for21 years8 months
Submitted by Rafael Davila on Tue, 2013-12-10 12:50
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
Member for13 years2 months
Submitted by bogdanleonte on Tue, 2013-12-10 10:49
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
Member for21 years8 months
Submitted by Rafael Davila on Sat, 2013-12-07 19:29
I tried your suggestion but I am still having the same issue, column for B values only displays Yes values.
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
Member for13 years2 months
Submitted by bogdanleonte on Sat, 2013-12-07 15:10
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
Member for13 years2 months
Submitted by bogdanleonte on Fri, 2013-12-06 19:49
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
Member for21 years8 months
Submitted by Rafael Davila on Fri, 2013-12-06 18:24
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
Member for13 years2 months
Submitted by bogdanleonte on Fri, 2013-12-06 17:59
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.
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.
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.
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
Member for21 years8 months
Submitted by Rafael Davila on Wed, 2013-12-04 19:44
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.
Best Regards,
Rafael
Member for
13 years 2 months
Member for13 years2 months
Submitted by bogdanleonte on Wed, 2013-12-04 14:12
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
Member for24 years9 months
Submitted by Vladimir Liberzon on Wed, 2013-12-04 12:39
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.
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.
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"
Member for
21 years 8 monthsIn reference to my
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 monthsProritization is useful and
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 monthsMy jobs are all stand
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.
Member for
17 years 9 monthsRafael,I understand what you
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 monthsEvgeny,I do not agree with
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.
Rafael
Member for
17 years 9 monthsRafael,One of the
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 monthsI did find one example,
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 monthsOOPS an unsuspected
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.
Member for
21 years 8 monthsYour example is confusing as
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
<<
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 monthsRafael,Advantages: followed
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 monthsYour example is confusing as
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 monthsRafael,standard resource
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 monthsUse the option
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.
Member for
17 years 9 monthsRafael,Imagine:Resource A –
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 monthsI do not get it if not using
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.
Member for
17 years 9 monthsRafael,OK, in this particular
Rafael,
OK, in this particular example results seem to be the same both using prioritisation using NLT and using phase priorities.
But I think in the below (new) example you can't achieve this.
https://drive.google.com/file/d/0B1FBt_G3gCVqaHkwU3BOMDNyTGs/view?usp=sharing
Member for
21 years 8 monthsEvgeny,I used Optimization
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 monthsRafael,RE “In your sample job
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:
Member for
21 years 8 monthsIn your sample job I did not
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 monthsRafael,I actually posted the
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 monthsEvgeny,I do not have the file
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 monthsVladimir,I am still thinking
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.
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.
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 monthsVladimir,thanks.So if I just
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 monthsHigh priority in any case
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 monthsVladimir,thanks.Question:
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 monthsEvgeny,Spider algorithms try
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 monthsVladimir,indeed, if I make
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 monthsEvgeny,at the moment of
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 monthsVladimir,I am still
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:
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?
Link to Spider Project file is below
https://drive.google.com/open?id=0B1FBt_G3gCVqbm5LX1RZWmlkZjQ&authuser=0
Member for
21 years 8 monthsBodgan,Sorry for the mistake
Bodgan,
Sorry for the mistake it should have been,
. 
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 monthsRafael,You said - I think it
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 monthsBodgan,You said - I think it
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.
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 monthsI tested my formulas on a
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 monthsThanks, I downloaded new
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 monthsRafael,I've just been
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 monthsBodgan,I believe it happened
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.
Best Regards,
Rafael
Member for
21 years 8 monthsBodgan,I tried your
Bodgan,
I tried your suggestion but I am still having the same issue, column for B values only displays Yes values.
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 monthsRafael,I have no ideea why it
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 monthsGlad I could help,regarding
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 monthsBodgan,I usually start
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 monthsRafael, I took a look at your
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 monthsBodgan,I got the formulas
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.
The idea is to mimic what other software do automatically following what I suppose is correct algorithm:
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 monthsVladimir,Open ends shall be
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.
Best Regards,
Rafael
Member for
13 years 2 monthsGreetings,Rafael, I agree
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 monthsRafael,one of the
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 monthshttp://www.tensixconsulting.c
Member for
17 years 9 monthsRafael,can you send me a
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 monthsEvgeny,I know about the
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 monthsRafael,RE "...you was looking
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.
Pagination