Guild of Project Controls: Compendium | Roles | Assessment | Certifications | Membership

Tips on using this forum..

(1) Explain your problem, don't simply post "This isn't working". What were you doing when you faced the problem? What have you tried to resolve - did you look for a solution using "Search" ? Has it happened just once or several times?

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

Resource leveling and activity priorities

19 replies [Last post]
Evgeny Z.
User offline. Last seen 41 weeks 3 days ago. Offline
Joined: 13 Jan 2008
Posts: 442
Groups: None

Dear all,

I noticed, that Spider ignores the activity priority for all leveling algorithms, except Standard. I understand, this is a deliberate decision.

See example below:

Photobucket

Question: how do I address the following task then:

In project I have sometimes 2 or more streams, one of them is more important and others less important. So I do not want any resource constraint to delay the main stream, even though the end date of the project may get delayed because of this. At the same time, both for 1st as well as for 2nd priority stream I would want spider to use the best scheduling algorithm, available to it (optimization plus)

So in a way one can consider this as 2 separate projects. Any resource is allowed to work on the 2nd priority project only if it is doing nothing on the 1st priority project. However one cannot treat these as totally 2 independent projects, as there can be links from the high priority to low priority project. E.g.: certain activities within low priority project shall have predecessors within low priority project.

Real example: As a part of project we also have to update none-time critical documentation, but this can be done after delivery and has no or little payment attached to it. So I don’t want any resource to work on updating none-time critical documentation if it may delay system delivery, still if resource has some free time, I want him to use it for documentation update.

 

Regards.

Evgeny

Replies

Rafael Davila
User offline. Last seen 1 day 19 hours ago. Offline
Joined: 1 Mar 2004
Posts: 5229

Evgeny,

I believe FNL than constraint shall be used only when required by contract, when you have no other option than to resource level considering these constraints. The more constraints the more you are restricting your scheduling, the less options you will have, it is not good practice to abuse constraints. The extreme of all constraint scheduling is drawing a Bar chart using fixed dates without any logic driving the schedule.

You will find some purists will like you to never use constraints, but life is not that simple and we cannot pretend these constraints do not exist. It is about the proper use.

Drinking water is good but too much will drown you. Eating is a necessity, too much will get you overweight. Medicines are good but overdose might kill you. With FNT constraints is easy to overdose, anything over the contractual minimum is overdose.

Best regards,

Rafael

Evgeny,

priorities in Spider are followed in the standard calculations and maybe ignored in optimization methods when there is a way to improve the schedule. They are still considered but if there is a way to shorten project durations by ignoring priorities Spider does it. It is expected result.

Regards,

Vladimir

Evgeny Z.
User offline. Last seen 41 weeks 3 days ago. Offline
Joined: 13 Jan 2008
Posts: 442
Groups: None

 

Vladimir, Rafael,

Whilst, as I already mentioned, the  ““unachievable Finish NLT constraint path prioritization method”” works just fine for how I would use it, I find the phase and tasks priority setting conventional way a bit confusing in Spider. Sometimes it is taken into account, sometime not, sometimes little bit.

So, maybe I am missing something, but I would personally not use it, since I am not sure what results it will case.

Regards.

Evgeny

Rafael Davila
User offline. Last seen 1 day 19 hours ago. Offline
Joined: 1 Mar 2004
Posts: 5229

Evgeny,

Thanks for posting your file. For the moment I have nothing to say as after Vladimir clarification it all works as expected on your model.

Best regards,

Rafael

Evgeny,

I suggested the way to calculate floats for any selected targets, not only for the case when everything is critical.

Best Regards,

Vladimir

Evgeny Z.
User offline. Last seen 41 weeks 3 days ago. Offline
Joined: 13 Jan 2008
Posts: 442
Groups: None

Vladimir,

RE “But applying these constraints you make Spider to calculate activity total floats taking into account these target dates and all activities of your schedule became critical.”

I would say, that the float does also get calculated the way I would want it to be calculated in this case.

If I use “unachievable Finish NLT constraint path prioritization method”, then as far as float calculation concerned, this works equivalent to switching on option “Calculate multiple critical paths” in Microsoft Project.

 

Photobucket

Regards.

Evgeny

Evgeny Z.
User offline. Last seen 41 weeks 3 days ago. Offline
Joined: 13 Jan 2008
Posts: 442
Groups: None

Rafael,

I have loaded the file here:

https://docs.google.com/folder/d/0B1FBt_G3gCVqS1pmZTJqcWI0Qjg/edit

The file is called

DifPrior1.001.sprj

Regards.

Evgeny.

Rafael Davila
User offline. Last seen 1 day 19 hours ago. Offline
Joined: 1 Mar 2004
Posts: 5229

Evgeny,

Can you please make your schedule available for download? I would like to make some what-if with it.

For a start I would add an independent activity that will increase the job duration. Say a successor to your last activity with a start no earlier than constraint that will force this activity to finish 2 or 3 months after your actual finish.

It might be that adding some milestone to show a date that will be latter than your project finish might trick the leveling algorithm into delaying your main activities. I wonder if you can select a WBS that is not full [leaving out some activities] can be set as your selection for leveling and want to try it with your sample job.

I also wonder if in the same way you can toggle on/off some prioritization rules like you can do with activity and phase priorities. Wonder if the Codes [Priorities] rule can also be toggled on/off so that your selected algorithm ignore this rule, if this makes sense and/or a difference. I want to see what is your setting for Codes [Priorities] rule. The name Priorities to the activity codes rule is somewhat confusing to me.

I believe some other software, although not as efficient as Spider Optimization or even as Spider Advanced, define what they call Levels [1,2,3,4] then within each level you select your rule [codes1, code2 ...], perhaps it makes the application order easier or might I say less difficult to understand [it is not easy] thogh it does not make any better the algorithms. The user select his own level preference so it might be possible to select activity priority above phase priority but maybe this puts a limitation on the algorithms efficiencies.

Best regards,

Rafael

Evgeny,

Finish No Later Than constraints are more powerful than just priorities because they are not ignored by all leveling algorithms.

But applying these constraints you make Spider to calculate activity total floats taking into account these target dates and all activities of your schedule became critical.

 I suggest you to save the best schedule, then delete all constraints and priorities. Now in resource constrained scheduling options select Previous version support and select saved schedule as the previous version. Now you may calculate your schedule and get real floats like in the screen below.

Photobucket

You may notice that there is total float of two days for the whole schedule if to forget about set priorities.

One of our users wrote at Russian Spider Project forum that he uses the program for five years and still discovers new features and applications. So try different options and different problems, and don't forget about variable resource assignments.

Regards,

Vladimir

Evgeny Z.
User offline. Last seen 41 weeks 3 days ago. Offline
Joined: 13 Jan 2008
Posts: 442
Groups: None

Vladimir,

I found a way how to achieve, what I want (multiple project priorities), it  works just great so far! Exactly what I was looking for!

But my solution is slightly different, from what you suggested.

My method:

  • Do not use any priorities
  • Instead assign unachievable Finish Not Later Then constraints to the Finish milestones of the specific paths. The great feature of Spider, which I discovered, is that the earlier the Finish Not Later Then constraint date is, the higher priority of all the preceding activities.

Problem with using of priorities (whether activity of path priority) is that they seem to be strictly respected only in Standard leveling mode, which means one can’t enjoy the power of better leveling methods.  Variable resource assignments are not really solving this problem. Also not all of the activities in the low priority projects would be possible to have as variable resource assignments

My method works just great so far. The only strange thing is that it produces unexpected results, when used in combination with phase priorities. However taking into account everything mentioned above at the moment I do not understand, why would one want to use any priorities as all.

Illustration of what I said above:

 

 

Example 1

Example 2

Example 3

Example 4

SETUP

 

 

 

 

Leveling method

Standard

Optimization Plus

Optimization Plus

Optimization plus

Use priorities

Yes

Yes

No

Yes

Use Finish Not Later Then constraints to set priority

No

No

Yes

Yes

RESUTL:

 

 

 

 

Are priorities respected?

Yes

No

Yes

No

Is resource leveling optimal?

(see Activity 3 -6)

 

No

 

Yes

Yes

Yes

Overall result

 

 

Best result

 

 

Conclusions:

  1. The “Finish Not Later Then priority setting” so far works just great
  2. I am not sure, whether this works as supposed to work or this is just a byproduct of the leveling algorithm. In any case, this feature is definitely worth preserving and documenting (if not documented yet)
  3. With availability of this feature I am not sure, what is the reason to use priorities at all.
  4. When “Finish Not Later Then priority setting” features is used together with priorities, then it produces strange results. 

Example1

Photobucket

Example 2

Photobucket

Example 3

Photobucket

Example 4

Photobucket

 

Regards.

Evgeny

Evgeny, in one of my previous posts I suggested to use variable resource assignments on activities of the project where activities shall be done only in periods where resources are free.

Set the same priorities to most critical projects and apply Finish No Later Than dates that will define respective priorities of activities of these critical projects.

Do not assign, or assign lower priority to the background project. Activities of this project shall be of productivity type. For example, if an activity requires 5 days work set its volume to 40 and resource productivity to 1. An activity may last 20 days if assigned resource will available only 2 days on first week, another 2 days on second week, 0 days on the third week and 1 day on fourth week.

Try this option and look at results.

Best Regards,

Vladimir

Evgeny Z.
User offline. Last seen 41 weeks 3 days ago. Offline
Joined: 13 Jan 2008
Posts: 442
Groups: None

Vladimir, Rafael,

Thanks. With the Finish No Later Than constraint it works!!

 At least it worked for my test schedule.

I am not sure, if this is the was it is supposed to work or I just tricked the software to do what I want, but the results was what I wanted: I have set the Finish No Later Than constraint to be equal to the start of the project. This is not achievable, but Spider then assigned highest priority to the tasks, which affect Finish 2 (critical). On the none-critical path leveling was also optimal, as I used Optimization Plus.

Photobucket

 

But I wonder if this approach would work with 3 different paths / projects. I will explain, what I mean:

In my case 2nd priority path was working on the remaining resource availability of the 1st priority path. But what if I would want to have also the 3rd project, which would work with the resource availability, remaining after the 1st priority and the 2nd priority project?

Is it achievable somehow by running several projects independently but by making sure the low priority projects run on the remaining resource availability of the higher priority projects?

Regards.

Evgeny

Evgeny,

in your example there are only two options - to start with activity 5 because it has highest priority, or delay activity 5 and do activities 1 and 3 first because this order minimizes project duration.

What is the problem?

If you want weighted approach enter Finish No Later Than constraints for last activities (finish milestones) of your phases and do not apply any priorities. Spider will consider target dates when leveling.

Best Regards,

Vladimir

Rafael Davila
User offline. Last seen 1 day 19 hours ago. Offline
Joined: 1 Mar 2004
Posts: 5229

Optimization of the individual parts do not necessarily yields optimization of the total. This is a well known mathematical precept.

There is a link between the two phases, not a logic link but a resource dependency as illustrated on the following figure with a dotted line.

If you optimize the second phase resource constraint will not be enforced. Because there is only one Resource A available Activity 3 and Activity 5 cannot be scheduled to occur at the same time.

Optimization of the whole will prevail over optimization of the parts.

You can add a finish no latter than constraint on activity 5, this will make it critical, will comply with the constraint but will delay the overall finish. This means you must make adjustment in your schedule to comply with all requirements. Guess it is not uncommon for jobs to fall behind, it is not uncommon for absolute optimal resource leveling be not enough to get it back on track. In such case you must increase resource availability, work overtime or create a second shift among many other options.

Photobucket

Evgeny Z.
User offline. Last seen 41 weeks 3 days ago. Offline
Joined: 13 Jan 2008
Posts: 442
Groups: None

Vladimir, Rafael,

Sorry, sorry, sorry….. I didn’t tick the box “Apply the phase priority”. So phase priorities do work.

Nevertheless also phase priority gets used only in Standard leveling.

So, I could not find the way how to solve my very practical problem. 

See example below, this is short simulation of my real projects

I want effectively to have 2 project finishes. Finish 2 is critical, Finish 1 is less critical, but it is still important that it’s activity are leveled using the best algorithm available, but not delaying activities, which affect Finish 2.

In Standard mode, the high priority of the phase “Implement system (time critical)” get respected, but one can see, that the resource leveling of the phase “Update none-time critical documentation” is not optimal.

Photobucket

Starting from Advanced mode the resource leveling of  “Update none-time critical documentation” gets optimal, but the priority of the phase “Implement system (time critical)” does not get respected as a result  Finish 2 is later, than it was in Standard mode.

Photobucket

 

You can download the file from here (DifPrior.001.sprj)

https://docs.google.com/folder/d/0B1FBt_G3gCVqS1pmZTJqcWI0Qjg/edit

Regards.

Evgeny

Evgeny,

did you select Apply phase priorities in the Leveling Options? I suspect that you did not do this and this is why Spider ignored your priorities.

Besides, you may select what WBS to use for applying phase priorities.

If activities are not time critical and resources are used there only when they have no other work I suggest to use variable resource assignments setting upper and lower levels of their workload on these tasks.

Set higher priorities on time critical tasks (or phases) and remember that if you set priority to some activity all preceding activities will automatically have no less priority.

Phase priority is considered first and only then activity priorities.

Yes, optimization may ignore priorities if shorter schedule can be achieved.

Best Regards,

Vladimir

Rafael Davila
User offline. Last seen 1 day 19 hours ago. Offline
Joined: 1 Mar 2004
Posts: 5229

Evgeny,

Please download the following file. It seems prioritization works on all algorithms as long as it does means breaking the rule will reduce duration of resource leveled output.

http://www.mediafire.com/?11m2b8a83oc08xc

Maybe some settings are wrong.

I tried with the enclosed schedule and it works as expected.

Photobucket

 

Photobucket

 

Photobucket

Best Regards,

Rafael

Evgeny Z.
User offline. Last seen 41 weeks 3 days ago. Offline
Joined: 13 Jan 2008
Posts: 442
Groups: None

Rafael,

setting Phase Priorities does not work, it looks like Spider totally ignores them.

And this is logical, taking into account that you can have many WBS structures, hence a single activity would fall under different phase priority.

Regards.

Evgeny

Rafael Davila
User offline. Last seen 1 day 19 hours ago. Offline
Joined: 1 Mar 2004
Posts: 5229

Evgeny,

I understand Spider does not ignore prioritization under Standard and Advanced algorithms, under Standard prioritization might be strictly enforced while in Advanced it is considered but might be waived only if it delays project completion.

This is why we need several algorithms, what is best under some circumstances is not best under other. Yes Optimization is not always the best choice, when needed, when in problems, when best choice, it is good to have it.

About streams I suggest using Phase Priorities, define your two streams under different phases and give higher priority to the one of your choosing. Compare results using Standard versus Advanced, using phase priorities and without using phase priorities in combination with/without activity priority. This is another example of why WBS structures are not only for reporting.

Good luck,

Rafael