none
MS Project - Resource Leveling for Tasks with Priority *INSIDE* Sub-Projects

    Question

  • Hello helpful people,

    I have a query on MSP's resource leveling feature:

    If you have a master project with 2 sub-projects and a common resource pool, and you give each of the sub-projects an overall priority then MSP levels the resources based on that priority. Priority 900 sub-project will be scheduled before priority 500 sub-project. No problem...

    What if I want to set both sub-projects at the *SAME* priority (eg. 500), and get MSP to level based on the prioritities of all sub-tasks? For example, say I had a series of urgent tasks within each sub-project that I want MSP to give priority to and hence set all of these tasks to be 900 priority? -- I find that the tool will disregard this entirely once it has selected one of the two sub-projects to give priority to (which I have both set to 500 for this exercise as neither project is "more" urgent, merely some of the work within each is more urgent than the rest of the work)

    Hope this makes sense - Has anybody come across this limitation in the tool? Any ideas on work-arounds?

    Thanks in advance,
    Matt
    Friday, October 22, 2010 5:56 AM

Answers

  • Hi,

    Seems like you have SP2 installled but no Cumulative Updates. You should check add/remove programs to see if and which CU's are installed.

    You can easily think of Resource Leveling as the following:

    • For each task in the schedule, a score value is calculated based on all factors the have an impact on the leveling process
    • Tasks are scheduled in the order of the calculated value. Tasks with a lower score are pushed out further in time
    • Resource Leveling only splits and delays(!) tasks. So tasks will never be scheduled to start earlier than initially planned, even if possible (e.g. leveling twice without clearing leveling will result in introducing more delay)

    The leveling 'score' for each task is calculated based on:

    • Task ID (this is the order in the plan): tasks with a lower ID get a better score (very little impact on the score though)
    • Duration: tasks with a shorter duration get a higher score (short tasks can more easily be rescheduled)
    • Constraints and Dependencies: they have a negative impact on the score, as project will honor constraints and dependencies (if set in options)
    • Resource availability
    • Priorities: have a big impact on the score -> higher prority is higher score. Priorities are only a 'hint' for Microsoft Project, and are NOT always honored (see below)
    • ...

    As a result, priorities are NOT always honored! If a high priority task has a lower leveling 'score', it will be scheduled before a low priority task!

    For example: a high priority task is assigned to a massively over-allocated resource. A low priority task is assigned to a non-overallocated resource. The low priority task can be executed as scheduled while the high priority task has to be delayed. Also, constraints and dependencies can force Project not to honor priorities.

    I hope this helps you to understand the leveling process.

    Hans


    My EPM blog: Projectopolis
    Monday, October 25, 2010 7:12 AM
    Moderator
  • Hi Mike and Hans,

    You have both helped to shed light on MSP's leveling process for me. I've run a few scenarious and, together with your helpful advice, I am now realising that there are some things which aren't physically possible as a result of MSP's leveling process (eg. the software cannot possibly do ALL urgent tasks first, then the next urgent tasks, then the next urgent etc etc). Logic links and dependencies, as well as existing resource allocations, mean that sometimes tasks which are urgent will not be possible to do and will be pushed when lower priority tasks may be fine to proceed as planned...

    This hasn't necessarily "fixed" the original problem, but now that I understand what is happening I realised that the data needs to be changed a little to get the results that I am looking for :-D

    Thanks for both of your help, it's much appreciated,

     

    Cheers,
    Matt

    Monday, October 25, 2010 10:54 PM

All replies

  • Hi Mr Meth,

    This should work as you described. If all subprojects have the same priority, priority on task level should be used.

    • What version of project are you using?
    • Do you use shared resource pool (local or connected to project server)? This is needed for resource leveling to work correctly over multiple projects.
    • Are you using the 'Priority/Standard' setting?

    I hope this helps,
    Hans


    My EPM blog: Projectopolis
    Friday, October 22, 2010 8:34 AM
    Moderator
  • Hi Hans,

    Thanks for your reply.

    The process does work to an extent. If I set both sub-projects to be the same priority, the sub-project with the higher priority task within it (somewhere within in) will be scheduled to be done first. The thing is, MSP will then schedule that entire project to be completed even if, say, only one task is set to high priorty and all others within that sub-project have priority 1... What I am trying to make the software do is schedule the highest priorty task first (obviously with all of its relevant predecessors) then schedule the next highest priority task (even if that task is contained in another sub-project)... It appears that once a particular sub-project has been started, MSP will schedule that project to complete before even commencing one of the other projects. Is there a way to change that?

    To answer your queries:
    1. I am using MSP Professional 2007 (stand-alone, not with MSP Server)
    2. Yes, I am using a shared resource pool. It is local on the PC that MSP is installed on
    3. Yes, I have set the 'Priority/Standard' setting on when resource leveling

    Thanks again for your response, I hope there is some way I can get MSP to do what I am trying to make it do :-D

    Cheers,
    Matt 

    Friday, October 22, 2010 11:53 AM
  • Hi,

    Make sure you have installed the latest service packs and cumulative updates.

    I did a small test and the tool behaves exactly as it supposed to do.

    As a test: have you tried copying all sub-projects into one project file and level this file? Does this return a different result?
    This test is to see if something is wrong when leveling a master schedule and subprojects, or whether your expectations about the leveling result is different from the actual result.

    Let us know the result of this test.

    Regards,
    Hans


    My EPM blog: Projectopolis
    Friday, October 22, 2010 12:07 PM
    Moderator
  • Hi Matt,
     
    Welcome to this Microsoft Project forum:)
     
    The statement you made, copied below, led me think how Project levelling works.  The algorithm for levelling is proprietary information, but logically, levelling must be done by time slicing.  It looks at the first time period based on the minute by minute, or day by day, etc. setting in the Formatting dialog.  It starts probably at the first task checking priority down that time slice.  If they all have the same priority, it will begin levelling from the top.  As it progresses through the timeline, it will eventually come upon a task of higher priority, so it levels that one first and then, probably, back to the top to search for the next priority task in that time slice, and if they're are all the same, start levelling again from the top.  If anyone can enlighten us more that that, please step in.
     
    So, Project will not go back from a task of high priority and re-level all its predecessors first.  If you want that done, you�??ll have to mark them all with the same priority.  Also, assuming I�??m correct that the levelling starts at the top and works down the time slice, the order in which tasks appear (and similarly with the list of Resources in the Resource Sheet) must play an important role in levelling. You could thus try importing the projects into the master in a different order, as well as changing the task order and the resource order.  And remember, all levelling does is to delay the tasks until the resources is available.
     
    FAQs, companion products and other useful Project information can be seen at this web address:  http://project.mvps.org/faqs.htm
     
    Hope this helps - please let us know how you get on :)
     
    Mike Glen
    MS Project MVP
    See http://tinyurl.com/2xbhc for my free Project Tutorials
     

     
    (obviously with all of its relevant predecessors) then schedule the next highest priority task (even if that task is contained in another sub-project)...
    Friday, October 22, 2010 8:05 PM
    Moderator
  • Hi Hans,

    Thanks for your reply - I have checked the version of MS-Project I am using, which is shown below:

    MSProject 2007 (12.0.6423.1000) SP2 MSO (12.0.6425.1000)

    Is this up-to-date, or are there any particular SPs/updates I need to look at installing?

     

    I am trying still trying out things and running some tests on this, and it does seem to make sense after all - MSP will look at each point in time, compare the tasks scheduled for that point in time, and then prioritise the one with the higher priority before the lower priority ones... I will try a few more things to see if I can get my head around this and answer the question in my own mind once and for all.

     

    Thanks,
    Matt

     

     

    Monday, October 25, 2010 4:09 AM
  • Hi,

    Seems like you have SP2 installled but no Cumulative Updates. You should check add/remove programs to see if and which CU's are installed.

    You can easily think of Resource Leveling as the following:

    • For each task in the schedule, a score value is calculated based on all factors the have an impact on the leveling process
    • Tasks are scheduled in the order of the calculated value. Tasks with a lower score are pushed out further in time
    • Resource Leveling only splits and delays(!) tasks. So tasks will never be scheduled to start earlier than initially planned, even if possible (e.g. leveling twice without clearing leveling will result in introducing more delay)

    The leveling 'score' for each task is calculated based on:

    • Task ID (this is the order in the plan): tasks with a lower ID get a better score (very little impact on the score though)
    • Duration: tasks with a shorter duration get a higher score (short tasks can more easily be rescheduled)
    • Constraints and Dependencies: they have a negative impact on the score, as project will honor constraints and dependencies (if set in options)
    • Resource availability
    • Priorities: have a big impact on the score -> higher prority is higher score. Priorities are only a 'hint' for Microsoft Project, and are NOT always honored (see below)
    • ...

    As a result, priorities are NOT always honored! If a high priority task has a lower leveling 'score', it will be scheduled before a low priority task!

    For example: a high priority task is assigned to a massively over-allocated resource. A low priority task is assigned to a non-overallocated resource. The low priority task can be executed as scheduled while the high priority task has to be delayed. Also, constraints and dependencies can force Project not to honor priorities.

    I hope this helps you to understand the leveling process.

    Hans


    My EPM blog: Projectopolis
    Monday, October 25, 2010 7:12 AM
    Moderator
  • Hi Mike and Hans,

    You have both helped to shed light on MSP's leveling process for me. I've run a few scenarious and, together with your helpful advice, I am now realising that there are some things which aren't physically possible as a result of MSP's leveling process (eg. the software cannot possibly do ALL urgent tasks first, then the next urgent tasks, then the next urgent etc etc). Logic links and dependencies, as well as existing resource allocations, mean that sometimes tasks which are urgent will not be possible to do and will be pushed when lower priority tasks may be fine to proceed as planned...

    This hasn't necessarily "fixed" the original problem, but now that I understand what is happening I realised that the data needs to be changed a little to get the results that I am looking for :-D

    Thanks for both of your help, it's much appreciated,

     

    Cheers,
    Matt

    Monday, October 25, 2010 10:54 PM
  • Hi Hans,
     
    Where did you get these �??facts�?� from?
     
    Mike Glen
    Project MVP
    ============================
     You can easily think of Resource Leveling as the following:

    * For each task in the schedule, a score value is calculated based on all factors the have an impact on the leveling process
    * Tasks are scheduled in the order of the calculated value. Tasks with a lower score are pushed out further in time
    * Resource Leveling only splits and delays(!) tasks. So tasks will never be scheduled to start earlier than initially planned, even if possible (e.g. leveling twice without clearing leveling will result in introducing more delay)

    The leveling 'score' for each task is calculated based on:

    * Task ID (this is the order in the plan): tasks with a lower ID get a better score (very little impact on the score though)
    * Duration: tasks with a shorter duration get a higher score (short tasks can more easily be rescheduled)
    * Constraints and Dependencies: they have a negative impact on the score, as project will honor constraints and dependencies (if set in options)
    * Resource availability
    * Priorities: have a big impact on the score -> higher prority is higher score. Priorities are only a 'hint' for Microsoft Project, and are NOT always honored (see below)
    * ...

    Sunday, October 31, 2010 4:54 PM
    Moderator
  • Hi Hans,

    Whilst you perfectly explain the existence of the "score", my own "reverse engineering" on leveling allows me to doubt some of your assertions on the parameters of the score.

    First, you don't even mention Total Slack, which is practically the only parameter playing a role in the Standard order. Yes, when you say Constaints and dependencies, they do define Total Slacck, but that s really the measurable thing.

    Resource Availability of course is crucial but it is not a part of the task's score - task score only comes into play when tehre is competition to get the same resoruce!

    And tasks with longer duration often have less Slack and therefore often are scheduled BEFORE slmall tasks.

    And Mike, if you wonder where i get this from, Leveling has always intrigued me and I spend days on end trying arious scenarios to get a feeling about this score...

     

     

    Sunday, October 31, 2010 8:07 PM
    Moderator
  • Hi Jan,
     
    My question to Hans is based on the apparent quality of the source of his statements, as if he has inside knowledge.  The algorithm for levelling is the heart of any pm package and is carefully guarded propriety information, to which I have no knowledge in Project�??s case.  The statement I made is from my investigations and seems to be the logical way that Project works �?? but I don�??t know for sure!
     
    Mike Glen
    Project MVP
    See http://tinyurl.com/2xbhc for my free Project Tutorials
     
     
     
    Sunday, October 31, 2010 9:32 PM
    Moderator
  • You're welcome, Matt  :-)

    Mike Glen
    MS Project MVP
    See  http://tinyurl.com/2xbhc for my free Project Tutorials

    Sunday, October 31, 2010 9:40 PM
    Moderator
  • Jan, thank you for mentioning total slack... I forget to mention it in my post and it is clearly playing a big role in the resource leveling algorithm (durations, constraints, etc. have a (in)direct impact on total slack).

    Mike, I have no inside information whatsoever. My post is purely based on observations and my experience with resource leveling. For one customer I had to investigate and spend a lot of time on resource leveling.

    So I'm sorry to say, but the resource leveling algorithm is still a well kept secret by Microsoft :-)

    Regards,
    Hans


    My EPM blog: Projectopolis
    Monday, November 01, 2010 9:15 PM
    Moderator
  • OK Hans, I was hoping for more inside knowledge!
     
    Mike Glen
    Project MVP
    See http://tinyurl.com/2xbhc for my free Project Tutorials
     
    Monday, November 01, 2010 10:23 PM
    Moderator