Issue 57604 - Prototype Requirement: Resource leveling
Summary: Prototype Requirement: Resource leveling
Status: CLOSED OBSOLETE
Alias: None
Product: oopm
Classification: Unclassified
Component: www (show other issues)
Version: current
Hardware: All All
: P3 Trivial
Target Milestone: AOO PleaseHelp
Assignee: AOO issues mailing list
QA Contact: issues@oopm
URL: http://oopm.openoffice.org/initial_an...
Keywords:
Depends on:
Blocks: 57601 60554
  Show dependency tree
 
Reported: 2005-11-09 22:14 UTC by ooo
Modified: 2017-05-20 09:12 UTC (History)
2 users (show)

See Also:
Issue Type: TASK
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description ooo 2005-11-09 22:14:19 UTC
This task is a part of issue 57601 "Requirements specification for project  
management tool prototype":  
  
http://www.openoffice.org/issues/show_bug.cgi?id=57601
Comment 1 jwrolf 2006-07-08 03:43:37 UTC
Should use task priority in resource levelling.

Ideally should point out when overtime or additional resources are needed to
reach schedule dates.
Comment 2 bobharvey 2006-08-05 23:10:31 UTC
I think we need to collate a lot of experience over classes of resources, and
different methods of resource levelling.

A machine tool represents a fixed capacity resource, which may have to be shared
with other projects.  The resource requirement will be a fixed number of hours,
whose precise location in the plan is not within the gift of the plan-maker.

A mathematical expert is a resource that cannot be duplicated by hiring, but
which could be made to work overtime, whereas production workers can sometimes
be duplicated by hiring but which might require a lead-time to do so. 
Mathematicians rarely do shift work; production workers regularly do.

If a department has 12 programmers, it might not be possible to split a task
between them to make it happen in 1/12 of the time - but splitting 24 or 36
tasks between them would be productive, but would require a packing problem
solution to optimise usage.  Some may be faster or better than others, so each
instance of the programmer resource might benefit from a "software gain"
representing different productivity, just as (suggested above) tasks might need
a priority other than the defined chronological sequence to help with floating
them across resource pools.

Meeting rooms cannot be double-booked; they are perhaps analogous to a machine
tool.  But thier absence does not mean a meeting cannot take place: just that it
might take longer or disrupt other tasks.

Tasks can consume resources, such as metal, money, computing power, or
government allocated carbon licences.  Man-hours are regenerated weekly, gallons
of water used for cooling might be recyclable by the hour, but tropical hardwood
does not regenerate within the timescale of most projects.
Comment 3 j6502 2006-08-07 04:10:12 UTC
I like bobharvey's comments.  It takes the concept of resources beyond most pm
tools (certainly MSP).  Most of bobharvey's points can be readily addressed
through resource calendars and resource allocations to tasks (just like MSP).

However, bobharvey's idea of the efficiency or productivity of a resource is
valuable and new I think.  I would also add that a resource's productivity could
vary over time: A mathematician doesn't think very well after 8 hours a day; a
machine tool may be able to function 24 hours a day although its productivity
may go down over time without maintenance.

The idea of 12 programmers not able to write a program in 1/12th the time could
be accomplished by having some indication of the degree to which a task can be
crashed.  This could be a field that is "max number of resources" (1=task can't
be shared, n=task can be accomplished in 1/nth the time with n resources). 
However with this do we assume linear reduction in duration?  e.g.: one person
needs 100 hours to complete task X; with two people it can be done in 50 hours;
with three people it can be done in 33 hours, etc.  Maybe then we also need to
include a "min duration" i.e., the minimum duration it would take to complete
this task even with infinite resources; that way we could calculate some kind of
logarythmic function.  Also of course we need to account for the crash cost for
a task.

Also of course we need an attribute on a resource to indicate whether the
resource is renewable, finite, or limited in various other ways (you can have
this programmer up to a maximum of 20 days but no more than 10 hours/week).
Comment 4 officista 2006-12-06 19:47:52 UTC
Resource levelling should not be performed automatically, but on a by-task or
by-resource basis. So that when the project manager sees a bottle-neck, he can
decide where to allow overloading and where this is not possible (e.g.
machines). Even a maximum overloading would be interesting (e.g. max. 10h
working a day).

In short:
- per resource
  - characteristic "allow overloading" (for all tasks)
  - max load (120%, 10h/day)
- per task and resource
  - same as above but only valid for a particular resource and task
Comment 5 gilh 2006-12-06 20:43:21 UTC
I think the option to level automatically and fully should be there but perhaps
offer an option of leveling for a specific resource or resource-by-resource. At
all times the tool shall generate a report of what constraints and decisions
were applied to a particular task when it was leveled. This provides a great
tool for diagnosing what happened when a PM is surprised by a result. Perhaps
even more than a report, but a 'active' log where the PM can click on a
particular task or resource and see why it modified by a particular leveling
decision.
Comment 6 patwwh 2007-07-08 19:45:12 UTC
I want to introduce a new revolution type of Resources Management, which may
solve Resource Leveling problem and bring other benefit by the use of existing
tool - Gantt Chart

"Integrate Resource Management to Task Management"

One project include 3 things:
1. **Raw Resources (Man Power, Material), e.g. Personal Man Power, Cost
2. Developed Resources (Man Power, Material), e.g. Invited  Volunteer Group
Power, Price, Investment
3. Tasks

Most project software manage Tasks & Resources separately, 
but I think we should manage Resources as we manage Tasks!
i.e. We should use same mechanism and Panel (Gantt Chart) to manage both Tasks &
Resources.

The advantages are obvious:
1. * "Resources Collection" (use raw resources to earn/exchange/build
more/suitable Resoucres) is part of important TASK for each project usually,
conceptually and practically should not be missed in Task Panel.
2. Enhance Resources Management by simplify the entire operation. 
   Opeartions of Both Task & Resource management are unified.
3. Reources' time properties become easier & further controllable, benefited
from Gantt Chart.
4. Two fields, "Precedent Task" & "Resources", could also be combined into One
"Input" field.
5. Resouces leveling = Task Leveling naturally.


For Example:
Current Task Panel includes only:

Precedent Task		=> Task
-------------------------------------------------------------------
Task1			=> Task2
Task2			=> Task3

New Panel could be:

Input Field		=> Output Field
-------------------------------------------------------------------
Raw Resouces1 		=> Task1
Raw Resouces2 		=> Earn / Exchange / Develop Resources3
Developed Resources3	=> Developed Resources4
Developed Resources4 	=> Task3
Task3			=> Task4
Task4			=> Task5

Remark:
** The Drop Down List of Input Field include Developed Resources & task items on
Output Field automatically, for quickly input
Comment 7 ooo 2009-02-06 11:25:00 UTC
Most to patwwh:

Interesting way to look at the ressource/task leveling.

Do you more info about this?

Does it have a name?

Do you have more illustrative examples showing the difference between
traditional ways of leveling and this way?
Comment 8 carstenklein 2009-03-18 20:25:56 UTC
I agree that we should allow Project Managers as a role, to distribute the Work
Power provided by their available Personnel and the Machine Hours provided by
available machines. So we need to make distinctions between the two available
resources, Work Power and Machine Hours, and to set up plans accordingly, i.e.
Off Work Hours by the Personnel due to Illness a/o Holiday, and also scheduled
Maintenance Hours for the machines that we might manage in a given project using
the OOPM.

In that, OOPM should be flexible enough to provide for setting up calendars for
each resource with clearly defined schedules for Off Work Hours due to Illness
etc. and also for Maintenance Hours for machines and also Online Hours for
machines as well.

So, actually, we require multiple calendars that we will manage, even across
timezone boundaries, given for example a scenario where we do software
development on a more global basis.

However, the OOPM can only assist when assigning resources such as Work Power
a/o Machine Hours to a project or (multiple) tasks thereof. It cannot replace
the common sense of the project manager, and, as far as I can see, most of what
is displayed here, is simply based on common sense.

I would propose that we keep the OOPM runtime and it's data model as open to
extension as possible, so that individual organizations using the tool might 
always provide additional intelligence as to how individual organizations deal
with the various resources defined for a project.

And, given also the hint on project meetings, and the resource allocation for
rooms and media, we should definitely include this with the OOPM.

Comment 9 carstenklein 2009-03-18 20:30:57 UTC
As to the proposal of integrating resource allocation and actual project tasks
and milestones into a single gantt chart, I would actually object.

Management of such combined views is rather difficult to achieve and the
visualization of such combined views cannot be achieved so that the PM or
whoever looks at such a combined view can gather some intelligence from it.

What I would propose is to allow a per resource gantt chart view of the
allocated times.

Welcome back to micro management ;-)

Comment 10 carstenklein 2009-03-18 20:33:35 UTC
What we can achieve, though, is that we provide a list of links when clicking on
a allocated time space, for example a task in a project.
If we then would click on that tasks (or merely hover upon it), we would see a
list of links that would provide us with the ability to quickly jump to either
Personnel, or Machine or whatever currently assigned to that tasks, providing us
with a gantt chart of that specific Person or Machine.

Comment 11 carstenklein 2009-03-26 20:54:14 UTC
Regarding the requirement for including also other types of resources such as
material/machines besides the actual WorkPower resource:

What about an extensible resource schema, where every resource is classified by
its mime type (reusing open standards here). We could then associate with that
mime type different editors/viewers and also extensions to existing dialogs that
would provide us with the possibility to post-pone much of what is provided here
as input for the actual solution, given that we currently have only limited
WorkPower at hand.

We could then be using extensions registering with named extension points, see
for example Eclipse and other projects on the web using such extension facilities.

 
Comment 12 carstenklein 2009-03-26 20:56:57 UTC
Once again regarding the different types of resources, e.g. material/machine:

Do we really want OOPM to also integrate functionality mostly found in ERPM systems?

If so, we can provide for an extension capability that would then analyze the
data model so that individual constraints imposed by for example machine
allocation / material allocation must be met in order for a given task to complete.

This I then would implement so that the user can enter a set of constraints
using a standard dialog of some sort.

Comment 13 carstenklein 2009-03-26 21:11:04 UTC
Regarding the comment by patwwh:

Quote:
> One project include 3 things:
> 1. **Raw Resources (Man Power, Material), e.g. Personal Man Power, Cost
> 2. Developed Resources (Man Power, Material), e.g. Invited  Volunteer Group
> Power, Price, Investment
> 3. Tasks
> 
> 
> The advantages are obvious:
> 1. * "Resources Collection" (use raw resources to earn/exchange/build
> more/suitable Resoucres) is part of important TASK for each project usually,
> conceptually and practically should not be missed in Task Panel.
> 2. Enhance Resources Management by simplify the entire operation. 
>    Opeartions of Both Task & Resource management are unified.
> 3. Reources' time properties become easier & further controllable, benefited
> from Gantt Chart.
> 4. Two fields, "Precedent Task" & "Resources", could also be combined into One
> "Input" field.
> 5. Resouces leveling = Task Leveling naturally.
> 
> 
> For Example:
> Current Task Panel includes only:
> 
> Precedent Task		=> Task
> -------------------------------------------------------------------
> Task1			=> Task2
> Task2			=> Task3
> 
> New Panel could be:
> 
> Input Field		=> Output Field
> -------------------------------------------------------------------
> Raw Resouces1 		=> Task1
> Raw Resouces2 		=> Earn / Exchange / Develop Resources3
> Developed Resources3	=> Developed Resources4
> Developed Resources4 	=> Task3
> Task3			=> Task4
> Task4			=> Task5

Nice way of thinking about this, actually.

However, this would be rather complicated in the ui to be solved, unless we
clearly separate the individual concerns.

Thinking about resource collections, I would rather group them, for example
establishing TaskGroups (aka TaskForces when talking in military terms), which
would actually be an external process, by having a separate dialog for managing
such groups. This, however, could always also be integrated into the task edit
dialog, BTW.

As for the developed resources, I would definitely not include the volunteer
work power with that resource, I would rather assign them to the above mentioned
TaskGroup.

Assigning a single person's WorkPower or an allocation of an arbitrary amount of
the time represented by the WorkPower, even if it exceeds the actual limit
imposed by for example the person's personal calendar settings (work day time
etc.), could simply be integrated into the task editor for the person's in the
TaskGroup, i.e. we would then display this as for example a table with editable
fields, or even as draggable bars for the begin/end time of that person that is
assigned to that task.

We could even go for having Gantt-Charts, as you suggested, for editing the
resource allocation for individual tasks, either in the project's Gantt-Chart or
in the task viewer/editor.


Comment 14 carstenklein 2009-03-26 21:15:00 UTC
Regarding jwrolf's comment:

> Should use task priority in resource levelling.
> Ideally should point out when overtime or additional resources are needed to
> reach schedule dates.

Assigning priorities to individual tasks is fine, however, and we are talking
about principal human reasoning here, we might not actually point out that
additional resources would be required for a single task to be achieved in time,
lest we have Critical Path or other analysis methods available.

What we can achieve though, is provide some hint by for example coloring a given
task in the WBS or in the Gantt-Chart respectively, that is about to reach its
scheduled end (time).

We may not assume as to what is required for actually getting that task in line
with the overall project schedule unless we add additional information to the
data model and somewhat also human reasoning to the engine that would then
evaluate such tasks.

Any additional ideas are welcome.
 
Comment 15 carstenklein 2009-03-26 21:34:17 UTC
Summing up both bobharvey's comment on resource allocation, resource efficiency
and also resource experience and those of j6502:


Most of this is also based on human reasoning. The PM should know who he is
assigning to the individual tasks and take also into account that Person A is
less experienced and therefore less productive than for example Person B.
However, it may come out that Person B currently has a lot of private problems
and thus becomes even more unproductive than said Person A. Which would lead the
initial premise of having a higher experience ad absurdum.

This, we might never automate, thus I would render it basically obsolete in that
it might ever become implemented.

Unless you are willing, though, to daily estimate the efficiency of one person
and to also keep book of that person's overall development and to also adjust
the required personal information on that person used for estimating/predicting
overall task performance.

We could automate the process of calculating a person's efficiency by the time
that a single person assigned to a task commits the work and thus closes the
tasks for herself. I.e. actual time spent vs. projected time.

Let us know if that would suit your needs, i.e. evaluation of a single person's
efficiency by the ratio of actual time spent on their assignment to a single
task and the time scheduled for that assignment.

Then, however, we still need to accumulate the overall time spent and allocated
scheduled time for each person assigned to the tasks in the project. This would
require some formula that would also take into account the priorities assigned
to any of the tasks over time. But then again, you must always also take into
account, that priorities assigned to individual tasks a/o individual personnel
assignments being made to a single task, might change over time.


Comment 16 carstenklein 2009-03-26 21:45:07 UTC
In addition to above requirement statements I would like to add further detail
on task prioritizing.

We should definitely allow the PM to prioritize individual tasks in individual
sets of tasks schedule for example for a given milestone, having been defined as
for example subtasks of that milestone.

In addition to that we should also provide for assigning WorkOrder
prioritization to individual personnel assignments of the persons in the implied
TaskGroup.

Having such an additional, on a per person basis, WorkOrder priorization would
allow us to assign individual personnel' WorkPower in more detailed way so that
we can re-allocate individual personnel WorkPower based on prioritization alone,
without actually having to reassign/unassign them from given tasks.

We could also implement a priority of 0 that then would put the person's
interest in a given task on hold for as long as we require the person to suspend
work on a given task.

How about that?

I think that this is actually what you had in mind, is it not?



Comment 17 wgutches 2010-06-27 14:52:15 UTC
Consider a data model for this issue that has a separate row for each resource 
assigned whether or not the displayed task shows this separation or not.  Then 
when time is recorder it can be accumulated by resource and the leveling 
processes can be directed per resource as well.

THink of this similar to an MSPROJ group of tasks with subordinate tasks for 
each resource assigned.
Comment 18 wgutches 2010-06-27 14:57:40 UTC
Further on the data model comment, if we add a column that describes the "Labor 
Profile or Percent of the task" that is expected from each assigned resource, 
we may be able to get better results on determining a "Critical Path".
Comment 19 Rob Weir 2013-07-30 02:38:59 UTC
Reset assignee on issues not touched by assignee in more than 1000 days.
Comment 20 Marcus 2017-05-20 09:11:37 UTC
obsolete