Leveling question

G

Giannis

Suppose we have the following plan:
- Task A, Work=80h, Resource A assigned, task can start immediately.
- Task B, Work=16h, Resources A and B assigned 8h each, task can also start
immediately.

After leveling, the situation is the following:
Resource A starts working on Task A. (ok!)
At the same time Resource B starts working on Task B and completes his part
(8h). (ok!)
Task B cannot be completed until Resource A has finished working on Task A.
This means that we have a gap between start and end dates for Task B.

What I would like is the following:
Resource A should stop working on Task A for a while, complete his part (8h)
on Task B and then continue back to Task A.
Is it possible to have such kind of scheduling?

Thank you,
Giannis
 
J

Jan De Messemaeker

Hi,

In the leveling dialog, check out "Leveling can adjust individual
assignments on a task"
Yhat will keep resources together
If you want to force task B to happen before task A give it a much higher
priority (see your other post) and as leveling order select Priority,
Standard.
HTH
 
D

Dave

Giannis said:
Suppose we have the following plan:
- Task A, Work=80h, Resource A assigned, task can start immediately.
- Task B, Work=16h, Resources A and B assigned 8h each, task can also start
immediately.

After leveling, the situation is the following:
Resource A starts working on Task A. (ok!)
At the same time Resource B starts working on Task B and completes his part
(8h). (ok!)
Task B cannot be completed until Resource A has finished working on Task A.
This means that we have a gap between start and end dates for Task B.

What I would like is the following:
Resource A should stop working on Task A for a while, complete his part (8h)
on Task B and then continue back to Task A.
Is it possible to have such kind of scheduling?

Thank you,
Giannis

Jan has given you the generic approach for setting the order of tasks.
In order to achieve what you want you also need to use "Levelling can
create splits in remaining work" option.

The problem you have with your specific scenario is the following. You
have to tell Project in a way it understands how it decides to let
resource A work on Task A for a while and then stop. What is the
criteria it should use?

If it is the case that some of the early work on Task A is of a higher
priority than the remainder, then it may be appropriate to split Task A
into two tasks. The first element would then have the highest priority
in levelling terms. Next highest would be Task B and finally Task C
(consisting of the remainder of Task A).
 
G

Giannis

So this means that there is no automated way for MS Project to give me what I
want. I thought that it would be possible to set a policy like "Split tasks
but make sure that every task ends in the shortest time frame possible". In
other words, the sooner a task ends the better. Apparently this is not
possible with MS Project in an automated way, is it?

Giannis
 
D

Dave

I say again, how can Project know that it should stop Resource A working
on A for an indeterminate "while"? There has to be a way of telling it
this.

Your policy of splitting tasks but making sure they end in the shortest
time frame possible is self-contradictory unless I have misunderstood
something. The shorter the split gives the shortest completion time,
with 0 split being optimal.

In what you have written so far, there is nothing in the way of
dependencies between tasks A and B (other than resource availibility) so
it is quite reasonable for Project to carry on with A to the bitter end.
If as Project Manager, you change your mind half way through A (for
whatever reason) then you can change the task priorities and use
levelling (with the appropriate use of splitting and resource assigment
flags) to achieve what you want.
 
G

Giannis

Spliting a task has the meaning "give a chance to some other task to
complete" (just like the threading concept if you are familiar with
programming).
The goal is to have gradually as many of the tasks completed as possible
within time.

In order to understand MS Project leveling, can you please explain me
briefly what is its concept when splitting tasks if I'm using the following
options in leveling? Please note that all tasks have a priority 500.
- Hour by Hour
- Level entire project
- Leveling order: Standard
- "Leveling can adjust indicidual assignments on a task" is NOT checked.
- "Leveling can create splits in remaing work" IS checked.

There is a case for example where I have the following situation:
- Task A
- Task B, Work=16h, Resource A
- Task C, Work=40h, Resource A
All tasks can start at the same time. I see that Task A completes first,
then Task B gets started (8h for Resource A), then Resource A works for 40h
in Task C (!!!) and afterwards completes Task B by spending the last 8h
missing. Isn't this strange?

So, in which order does it peak the tasks? If it comes to a point to split a
task, how does it decide which of the other tasks will continue?

Thank you for your help.
Giannis
 
D

Dave

The threading concept in programmingis totally different. Firstly
threads are not predictable in that it is not known when they will
finish and consequently it is not known how much work is in each of
them. Also the objectives are entirely different in that the purpose of
threading is to ensure that each element of computation is given a share
of processing power according to some prioritisation scheme so that the
illusion of concurrent execution is given.

If you want to run tasks concurrently you can do this. You need to
ensure that the total work for all the concurrent tasks does not exceed
the maximum available effort at any moment in time. You can do this by
adjusting their duration as necessary (and moving resource allocations
around on the Task Usage view - although this could end up by being a
lot of work). You can then level those tasks on a week-by-week (or
whatever is convenient) setting.

The goal of having as many tasks completed as possible before some
status date can only be accomplished by completing all the shortest
tasks first because the pool of work available to use is limited and fixed.

Firstly you have to understand that the levelling algorithm is complex.
I normally use Priority, Standard because then the priorities that I
impose are given high importance in the decision process.

In simple terms, for the configuration you outline, Project will scan
through your project to identify each hour in which a resource has more
than 1 hour of work. Having done that, it will attempt to delay work so
that those overallocations are eliminted. So if it determines that
Resource A is on task A and task B for 45 minutes at 14:00 today, it
will try to delay one of those tasks so that that or a similar situation
does not exist. With your settings, it will look at things like the
slack on a particular task in order to determine which task is most
appopriate to slip.

If you don't allow splits to be made in remaining work then Project has
no alternative but to delay the entirety of one of the conflicting tasks
until the task with which it conflicts has completed. It may be the
case that a break of 45 minutes (in my example) on one of the tasks may
be sufficient. That is the effect of the "levelling can create splits
...." check box. If you don't check that, Project will keep all the work
together and move it around as a single chunk rather than breaking it
into smaller chunks which it may be easier to slot into the schedule at
points where the workload is low or lower.

If you have two resources on one of the tasks in my example, both
working at 14:00 then with your setting of "Levelling can adjust
indivudual ...", Project will always keep them together when delaying
the work. If you allow the assignments to be adjusted, then Project may
delay the work assigned to one of them and allow the other to work as
per the original schedule. So resource A could find themselves working
at 14:00 in my example and resource B could find themself on the other
task at 14:00 with his work on the conflicting task delayed to some
point in the future.

In your example, you didn't quote the effort for Task A but maybe that
isn't important. You also don't quote durations so we can't see the
level of effort needed as that will be significant in determining
whether or not overallocations occur.

Task B is split because you have allowed it to be in your settings. One
thing that has to be understood is that it isn't just the individual
tasks that affect the levelling engine, it is the tasks to which the
tasks are linked, the slack a task has and any constraints that can be
applied. So the picture is complex. If you are really interested, you
may wish to look at the resource countour as that may be affecting things.

Let's turn it around. You could accept the schedule thrown up by
Project. Is there any reason why you can't? If you don't like the
split, you could either disallow splitting, or change task priorities
(and level by priority/standard). One of the purposes of the
application is for it to develop schedules based on the information you
give it. It may be counter-productive (albeit entirely natural) to try
to second guess it or to try to understand the minutia of its calculations.

Probably the best approach in practical terms is to get it to produce a
schedule. If you don't like the results, then change task
priorities/durations etc and level again. I find that I have to iterate
to get an acceptable schedule on anything but the most simple projects.

Levelling is probably one of the hardest elements of Project to be able
to do effectively. Hopefully the notes here will help.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top