Forcing Task Work not to overload resources.

J

Jim Aksel

Need some ideas on an approach (or some code if anyone cares to donate):
I need to spread a single selected resource amongst "n" selected fixed
duration tasks. I need to take the resource availablility on a given day and
spread his work over the selected tasks. So if the resource is available 8
hours today and has only 2 tasks in progress "today" then it is 4 hours each
task. If tomorrow his availablity is 6 hours and there are three tasks, work
assigned is 2 hr/task.

This means the total work on a task becomes variable and depends on resource
availble as assigned.

Ideally the solution would allow me to select a group of tasks, then select
multiple resources and say "Spread these resources evenly amongst the
selected tasks and don't overload anyone"

Rules:
1. Tasks are fixed duration and start/finish on differing dates.
Start/Finish determined by predecessors and is not allowed to change because
of resource asssignments.
2. Number of resources assigned to a task may vary but is at least one
3. No resource assigned may become overloaded.
4. Assume the resource is NOT assigned to any other tasks
5. Stand alone version of Project, perhaps a resource pool.
6. Applies day by day only (not necessary for any other period of time)

Might it be easier to assign the resources 100% to all the tasks needed,
then go back and programatically reduce the hours on the tasks downward so
they total the resource availability?

So, basically it becomes an algorithm to cut units% on assigned tasks by a
percentage so the resource is not overloaded. It would be assumed the
resource would spend an equal amount of time on each task in any given day.

A twist on this would allow me to ratio the total assigned work down to the
availability keeping the same ratio of assigned work (in case it was not 100%
for every task on a given day when I started).

Any ideas would help.

jim
 
R

Rod Gill

So the work for each assignment changes? With fixed duration and variable
availability, the total work for each assignment must change as Work always
= Duration * units. You can certainly write code to edit the hours worked
for any given day for any assignment, but if units are being changed (hours
in a day) and duration must be fixed, then work has to change. So, if a
resource works more hours than expected you finish early. If the resource
works less hours than expected you won't finish on the task's finish date.

If the work doesn't change, then this won't work! What Tasks are these?
--

Rod Gill
Project MVP

Project VBA Book, for details visit:
http://www.projectvbabook.com

NEW!! Web based VBA training course delivered by me. For details visit:
http://projectservertraining.com/learning/index.aspx
 
J

Jim Aksel

So I guess the easiest approach appears to be to assign the proper resources
to the task. Then go back and look at the overloaded people and just ratio
their assigned hours down.

That means, looping through each day and getting how many hours are
currently assigned to the resource on that day. Save that number. Then
reassign the work for each task as (HOurs Available Today)/(saved total) *
(original work assigned to that resource for that tasks). Next resource. THen
Next Day.

To answer your question, it basically becomes a "Best Effort" contract for
the money provided.
--
If this post was helpful, please consider rating it.

Jim

Visit http://project.mvps.org/ for FAQs and more information
about Microsoft Project
 
R

Rod Gill

Never had a "Best Effort" contract before. Since it is best effort, why
bother levelling? The schedule should show what is needed to complete on
time to desired quality. Availability and progress of deliverables completed
is most important. So if you start getting less availability than required
and you can't find any more resource, then it's a question of negotiating
and collaborating with the client and management to see how important time
and desired quality really is?

The net effect of less resource almost certainly means less delivered. So
just resetting hours to what's available and not allowing tasks to slip is
not telling you what will not now get delivered. What will make the customer
happiest at the end of the project?

--

Rod Gill
Project MVP

Project VBA Book, for details visit:
http://www.projectvbabook.com

NEW!! Web based VBA training course delivered by me. For details visit:
http://projectservertraining.com/learning/index.aspx
 

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