none
How to lay out tasks that can be parallelized RRS feed

  • Question

  • So I have made a list of tasks, each with a duration. We have a start date, are N people (small number) who will work on things in parallel. Some of the tasks have predecessors, but most can be started anytime.

    First, I never understood why, if you assign the same person to two tasks, MS project will put them in parallel. It can be somewhat fixed using the inspector, but task by task and with caveats.

    https://pasteboard.co/I3lottb.png

    Now let's say that I arrange manually (use inspector -> fix).

    https://pasteboard.co/I3loMwj.png

    The task A is not part of the critical path (in red), although from my understanding it should. The thing here, is that it becomes one only if I set that the task A is a predecessor of task B.

    https://pasteboard.co/I3loTQy.png

    The thing is, A is not necessarily a predecessor of B in my planning, it just happens to be the case because the resource assigned is the same, so they can't work in parallel. Now if I assign task A to somebody else, I would have to break the predecessor link, and that means remember that B was a successor of A just so that the critical path would be highlighted properly.

    I think there's something I don't understand here. Is it possible to get MS project to automatically arrange tasks, without assigning multiple tasks to people who are 100% busy?


    • Edited by Brunni Friday, March 1, 2019 3:22 AM
    Friday, March 1, 2019 3:18 AM

Answers

  • You expect that if you assign the same person to two tasks, with no other complication such as predecessor links or date constraints or different calendars or whatever, that MSP will automatically delay one task so that the resource is not over-allocated.

    But as you can see it doesn't do that. That's because it can't know which task you want delayed. That's one reason. Another is that you have the leveling options set to manual (default), not automatic. You can change it to automatic but no one does that because it re-levels after every edit and that is annoying. You can try it to see but leveling should be manual.

    Another reason is this. It is better to make the tasks, their durations and predecessors, then assign resources and see who is over-allocated. It is then up to you to decide what to do about it. You may choose to swap one of the assignments for a different resource. Or you may choose to level, using any one of several combinations of leveling settings. MSP doesn't solve your problems for you so much as show you where they are.

    Do not link tasks as predecessor/successor unless they really are predecessor/successor. The critical path method, and that's what this is all about, has only two inputs and they are the durations and the predecessor/successor relationships between them. Resource limitations (I won't say they are constraints) don't come into it. Get the critical path first. Then look at resource over-allocation. You might choose to do no resource assignments until the CP network is complete. It doesn't matter if you do make resource assignments while you also make all of the durations and links, but just don't expect the over-allocations to mean anything or for the leveling to make sense if you haven't first got a good clean CP network. "Critical" means zero float. Total float is derived from early and late start and finish dates, and they are derived from just the durations of the tasks and the predecessor/successor relationships between them. Nothing there about resources.

    Rules:

    1. Every task should have at least one finish - start predecessor with no lag (FS0) and at least one FS0 successor, except of course that the first task has no predecessor and the last has no successor.
    2. Never link the summaries as predecessor or successor.
    3. Avoid use of FF, SS, SF links. If used, sparingly only, and only after rule 1 above.
    4. Avoid the use of positive lag If used, sparingly only, and only after rule 1 above.
    5. Negative lag is forbidden

    It is interesting that "I think there's something I don't understand here." but you are not sure what it is. You are right. You are missing the subtle distinction between establishing the critical path first, and then dealing with resources after. It's a 2 stage problem.

    Hope this clears that up.

    • Marked as answer by Brunni Monday, March 4, 2019 9:40 AM
    Friday, March 1, 2019 10:05 AM
  • Brunni,

    As usual, Trevor has provided excellent advice regarding the Critical Path Method (CPM) and its interpretation.  I would add three remarks:

    1. To your final question: "Is it possible to get MS Project to automatically arrange tasks, without assigning multiple tasks to people who are 100% busy?"  ANSWER:  Yes, it's called Resource Leveling, wherein MS Project performs a detailed examination of resource assignments and removes overallocations by imposing "leveling delay" on those tasks (or assignments) that are considered less urgent.  The sum of your post implies a lack of familiarity with the feature.
    2. Using the Task Inspector to level overallocated resources is, IMHO, sub-optimal.  Yes, it imposes a leveling delay as needed to remove the overallocation on the selected task.  But, it does this without the benefit of Project's powerful resource-leveling algorithm.  If you are going to impose leveling delays, you may as well impose them optimally and semi-automatically (using the Level group on the Resource ribbon.)  As Trevor notes, the leveling calculations should be "Manual" (i.e. when specifically requested by the user) rather than "Automatic" (i.e. after every edit.)
    3. Leveling delays are not fully compatible with traditional CPM calculations, and the very concept of a "Critical Path" becomes unusable in complex resource leveling problems, where most tasks are fully constrained by resource availability rather than by logic.  Nevertheless, it is still possible to compute a Resource Critical Path for a leveled schedule using an add-in.  Here's a recently-resurrected discussion on the topic: Technet thread on Resource Critical Task  

    Good luck, tom


    • Edited by Tom BoyleBPC Friday, March 1, 2019 4:21 PM
    • Marked as answer by Brunni Monday, March 4, 2019 9:40 AM
    Friday, March 1, 2019 4:19 PM

All replies

  • You expect that if you assign the same person to two tasks, with no other complication such as predecessor links or date constraints or different calendars or whatever, that MSP will automatically delay one task so that the resource is not over-allocated.

    But as you can see it doesn't do that. That's because it can't know which task you want delayed. That's one reason. Another is that you have the leveling options set to manual (default), not automatic. You can change it to automatic but no one does that because it re-levels after every edit and that is annoying. You can try it to see but leveling should be manual.

    Another reason is this. It is better to make the tasks, their durations and predecessors, then assign resources and see who is over-allocated. It is then up to you to decide what to do about it. You may choose to swap one of the assignments for a different resource. Or you may choose to level, using any one of several combinations of leveling settings. MSP doesn't solve your problems for you so much as show you where they are.

    Do not link tasks as predecessor/successor unless they really are predecessor/successor. The critical path method, and that's what this is all about, has only two inputs and they are the durations and the predecessor/successor relationships between them. Resource limitations (I won't say they are constraints) don't come into it. Get the critical path first. Then look at resource over-allocation. You might choose to do no resource assignments until the CP network is complete. It doesn't matter if you do make resource assignments while you also make all of the durations and links, but just don't expect the over-allocations to mean anything or for the leveling to make sense if you haven't first got a good clean CP network. "Critical" means zero float. Total float is derived from early and late start and finish dates, and they are derived from just the durations of the tasks and the predecessor/successor relationships between them. Nothing there about resources.

    Rules:

    1. Every task should have at least one finish - start predecessor with no lag (FS0) and at least one FS0 successor, except of course that the first task has no predecessor and the last has no successor.
    2. Never link the summaries as predecessor or successor.
    3. Avoid use of FF, SS, SF links. If used, sparingly only, and only after rule 1 above.
    4. Avoid the use of positive lag If used, sparingly only, and only after rule 1 above.
    5. Negative lag is forbidden

    It is interesting that "I think there's something I don't understand here." but you are not sure what it is. You are right. You are missing the subtle distinction between establishing the critical path first, and then dealing with resources after. It's a 2 stage problem.

    Hope this clears that up.

    • Marked as answer by Brunni Monday, March 4, 2019 9:40 AM
    Friday, March 1, 2019 10:05 AM
  • Brunni,

    As usual, Trevor has provided excellent advice regarding the Critical Path Method (CPM) and its interpretation.  I would add three remarks:

    1. To your final question: "Is it possible to get MS Project to automatically arrange tasks, without assigning multiple tasks to people who are 100% busy?"  ANSWER:  Yes, it's called Resource Leveling, wherein MS Project performs a detailed examination of resource assignments and removes overallocations by imposing "leveling delay" on those tasks (or assignments) that are considered less urgent.  The sum of your post implies a lack of familiarity with the feature.
    2. Using the Task Inspector to level overallocated resources is, IMHO, sub-optimal.  Yes, it imposes a leveling delay as needed to remove the overallocation on the selected task.  But, it does this without the benefit of Project's powerful resource-leveling algorithm.  If you are going to impose leveling delays, you may as well impose them optimally and semi-automatically (using the Level group on the Resource ribbon.)  As Trevor notes, the leveling calculations should be "Manual" (i.e. when specifically requested by the user) rather than "Automatic" (i.e. after every edit.)
    3. Leveling delays are not fully compatible with traditional CPM calculations, and the very concept of a "Critical Path" becomes unusable in complex resource leveling problems, where most tasks are fully constrained by resource availability rather than by logic.  Nevertheless, it is still possible to compute a Resource Critical Path for a leveled schedule using an add-in.  Here's a recently-resurrected discussion on the topic: Technet thread on Resource Critical Task  

    Good luck, tom


    • Edited by Tom BoyleBPC Friday, March 1, 2019 4:21 PM
    • Marked as answer by Brunni Monday, March 4, 2019 9:40 AM
    Friday, March 1, 2019 4:19 PM
  • Tom and Trevor --

    I always appreciate the sage advice that you offer to people in this user forum.  And I appreciate the fact that you are kind to people when you craft your answers to their questions, which encourages people to keep asking questions.  Years ago, one of my fellow MVPs who shall remain nameless was actually rude to people, at least in my opinion.  In fact he was actually rude to me the very first time I asked a question in the Microsoft Project newsgroup and because of his response, I did not ask another question for many months.  That was back in the days when I was a rookie and still learning the ropes.

    I think you both are doing a great job and I want to commend you for your volunteer work in this forum and others.  :)


    Dale A. Howard [MVP]

    Friday, March 1, 2019 7:57 PM
    Moderator
  • Trevor,

    Thank you very much for your answer, it's really insightful. It's indeed not how I proceeded naturally, and I think my project is a bit of an edge case because we are very few people and with disparate skills (basically almost no overlap), that the CP doesn't make so much sense I think. I mean, we can make a CP, but then we can't distribute tasks to the Resources in any doable way, so I guess that is why I'm confused in the first place (at least that's what I get from reading your post). In my case the tasks end up depending on each other not because they have a FS link, but because the resources are not available.

    It looks like indeed in my solution I've been doing "the right thing" intuitively for that specific project. I will definitely play with the auto-leveling to automatic next time and see see if I prefer it this way.

    Thanks a lot, and mind the late reply, it was the weekend already in my timezone when you replied ;)


    I'm a student, and a hobbyist programmer (freeware pc apps & video game consoles), using VS 2008.

    • Marked as answer by Brunni Monday, March 4, 2019 9:40 AM
    • Unmarked as answer by Brunni Monday, March 4, 2019 9:41 AM
    Monday, March 4, 2019 9:37 AM
  • Hi Tom,

    Thanks for your reply too. I've replied to Trevor but it includes elements regarding your two replies. I've learned a lot and will definitely do things differently the next time. It also reassures me in a way, what I made instinctively made sense, just I wasn't aware of some beneficial features of MS Project.

    Cheers,

    Brunni


    I'm a student, and a hobbyist programmer (freeware pc apps & video game consoles), using VS 2008.


    • Edited by Brunni Monday, March 4, 2019 9:40 AM
    Monday, March 4, 2019 9:40 AM