bardsoftware / ganttproject

Official GanttProject repository.
http://ganttproject.biz
GNU General Public License v3.0
885 stars 308 forks source link

Don't allow resources to be overloaded #126

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
When a project consists of several tasks and resources, it would be nice if the 
scheduler is able to schedule the tasks with respect to the assigned resources.

So if a resource is responsible to several tasks, those tasks should not be 
overlapping!

Original issue reported on code.google.com by maarten....@gmail.com on 17 Jun 2010 at 3:04

GoogleCodeExporter commented 9 years ago
"should not be overlapping" seems to be too strong because it may be not fully 
assigned. But did you mean "effort-driven scheduling", as in issue #83 ?

Original comment by dbarashev on 18 Jun 2010 at 4:29

GoogleCodeExporter commented 9 years ago
I have seen issue #83, but it seems that it is about extending the duration of 
tasks if resources only cover 50% of the activities of such a task.

I would like to see that tasks with the same resources are not scheduled on the 
same time by the scheduler, since a resource is not able to (fully) work on 2 
tasks atthe same time.

Original comment by maarten....@gmail.com on 19 Jun 2010 at 11:59

GoogleCodeExporter commented 9 years ago
Issue #83 is about the following scenario:

* a task requires 4 man-days
* resource which is assigned to that task allocates 50% of his time to that 
task.
=> the task will take 8 days to complete.

You're right, it is not exactly what is described here. Issue #83 wants to 
change the durations, this issue wants to change the start dates of tasks if 
their resources are overloaded (currently it is indicated with red color in the 
resource load chart). It looks likes the simpliest case of resource leveling, 
right?

Original comment by dbarashev on 21 Jun 2010 at 10:45

GoogleCodeExporter commented 9 years ago
I changed the summary to be more specific

Original comment by dbarashev on 23 Jun 2010 at 10:49

GoogleCodeExporter commented 9 years ago
Related request in SourceForge tracker: 

https://sourceforge.net/tracker/index.php?func=detail&aid=3079542&group_id=72728
&atid=535430

Excerpt:

Adopt a similar GUI mechanism for what I am calling "Resource dependencies". A 
user could define a resource dependency for a task. If, after examining the 
dependency, the system finds that ALL of the resources of this task are not 
available, then this task is moved after the end of the dependency. Later, if 
resource assignments are changed, the dependency could potentially no longer 
exist.

Original comment by dbarashev on 3 Oct 2010 at 6:28

GoogleCodeExporter commented 9 years ago
"tasks should not be overlapping" is too simplistic - you need to distinguish 
requested (entered by the user) from actual (computed by the program) 
allocation of a resource to a task. Let's say a given resource (with maximum 
allocation of 100%) is allocated to high-priority task A, normal-priority task 
B and C, and low-priority task D, with 40% requested for each.  Here's what 
should happen:
- allocation proceeds in order of priority, so task A gets the full 40%.
- B & C have same priority, but fully allocating to them would push the 
resource above 100%, so their allocation is reduced proportionally: they each 
get 30%.
- task D gets 0%, so its begin is delayed until the resource becomes available.
Instead of showing over-allocated resources in red, you now show 
under-resourced (relative to the request) tasks in red.

Each resource should have an "allocation limit" property, in arbitrary units. 
For people, this would typically be in percent or FTEs. For part-timers it 
would be less than 100% resp. 1 FTE; this is also where "days off" needs to 
hook in. Other resources (money, time, desks, ...) use other units.

From the tasks' perspective, you need to similarly distinguish work and 
duration. You specify the amount (in arbitrary units) a task requires and 
request resources for it; the duration is then a result of actual resource 
allocation. In this system, a task that requires no work but takes time ("watch 
paint dry") is entered by requesting the given amount of the resource "time" 
for it, not by explicitly specifying a duration.

Finally, roles: with roles, a task specifies the amount required for each role. 
"Time" and "money" are now roles, so a task that requires several kinds of 
work, (idle waiting) time, and money in various amounts can be directly 
specified as such. A task progresses only to the extent that *all* its roles 
are filled - if for instance some role can only be allocated 60% because of 
resource constraints, then *all* roles in that task are only allocated 60%, and 
the task progresses at only 60% the normal speed.

Of course implementing all this makes task scheduling rather complex. On the 
other hand, having all this eye candy (task priorities, resources, roles) in 
the GUI with next to no functionality behind it is quite misleading. Roles are 
nice but need not be functional for the program to be useful; without correct 
implementation of resource limits and work vs. duration, however, it's just a 
pretty chart generator.

Original comment by lino...@gmail.com on 23 Feb 2011 at 3:07

GoogleCodeExporter commented 9 years ago
Issue 431 has been merged into this issue.

Original comment by dbarashev on 15 Feb 2012 at 1:10

GoogleCodeExporter commented 9 years ago
Hello,

I also found this error a few months. The consequence is impossibility for me 
to use GanttProject ... what a shame.
It is essential that the end date of a task assigned to a partially missing 
resource is calculated correctly otherwise the project planning is distorted.
I hoped that version 2.6.2 include a patch ...
When this subject will be corrected ?

Thanking you.

Regards.
Kriss

Original comment by bouln...@essilor.fr on 7 Jan 2014 at 2:46

dbarashev commented 8 years ago

One more idea is to indicate in the task properties that resource is overloaded: http://forum.ganttproject.biz/view/20160318153102_1kavjsgcx03rz4syhhssln6qe#0

peterdoherty01 commented 7 years ago

Resources are overloaded in my project setup. How do I resolve this within the program? Thanks

dbarashev commented 7 years ago

@peter-doherty you don't have any other option than manually removing some tasks from overloaded resources.

peterdoherty01 commented 7 years ago

Thanks @dbarashev that is what I reverted to.