bardsoftware / ganttproject

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

Days off have no impact on a project schedule #18

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Copied from the bug tracker on SourceForge:
https://sourceforge.net/tracker/index.php?func=detail&aid=1575592&group_id=72728
&atid=535427

Having defined the resources for the project I keyed in
"Days Off" and then planned tasks to be done. When it
came to allocating a resources to the tasks the "Days
Off" were ignored. The end date does not take into
account "Days Off".

Original issue reported on code.google.com by dbarashev on 5 Dec 2008 at 11:55

GoogleCodeExporter commented 9 years ago
Are we wtill not fixed with the 'Days Off' problem after 3+ years of this being 
detected? Is there a plan to fix this in Loire M3?
This little defect makes it unsuable - an otherwise extremely useful tool, 
comparable to MS Project (at least for the purposes that I need to use it for).

Thanks

Original comment by ggan...@gmail.com on 17 Apr 2009 at 3:59

GoogleCodeExporter commented 9 years ago
It is impossible to fix anything in M3 just because M3 is already published. 
But we
know that this problem is important enough and do want to fix it in Loire.

Original comment by dbarashev on 17 Apr 2009 at 6:02

GoogleCodeExporter commented 9 years ago
Is there an estimated release date for this fix?

Original comment by qtec...@gmail.com on 23 Apr 2010 at 12:33

GoogleCodeExporter commented 9 years ago
We have no release date plans.

Original comment by dbarashev on 23 Apr 2010 at 7:36

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

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

GoogleCodeExporter commented 9 years ago
In the meantime (waiting for this fix), is there any "trick" to avoid the 
problem ?
Create a task holiday ? I am welcoming any suggestion, otherwise I might have 
to switch to another software. It would be a pity as I love Ganttproject 
ergonomy.
Thanks in advance

Original comment by elise.jo...@gmail.com on 16 Dec 2010 at 9:50

GoogleCodeExporter commented 9 years ago
dbarashev,
I would like to help with this issue. I've been going through the code with
eclipse but I'm not that familiar with it.
Would you have any hints as to where I should start looking to fix this
issue - or to better understand how it works :-) and what needs to be done?

Original comment by fjmalo...@gmail.com on 16 Dec 2010 at 10:53

GoogleCodeExporter commented 9 years ago
@fjmaloney: thanks for volunteering. However, this issue is really difficult 
and touches a lot of quite fragile code which is not covered with unit tests, 
so it is better to think twice before you start diving into it. And although I 
don't mind giving small hints, I can't promise any detailed or continuous 
guidance (because it will be easier for me to just do it myself in this case).

ResourceAssignment, GanttDaysOff classes and TaskImpl.recalculateActivities 
methods are probably the key entry points.

Original comment by dbarashev on 17 Dec 2010 at 12:15

GoogleCodeExporter commented 9 years ago
Has this issue been addressed yet?  

Original comment by pennybmi...@gmail.com on 28 Apr 2011 at 7:05

GoogleCodeExporter commented 9 years ago
No

Original comment by dbarashev on 28 Apr 2011 at 7:30

GoogleCodeExporter commented 9 years ago
I'm very interested in this issue too. So far a very lightweight, intuitive 
tool.

Original comment by pdeutsc...@googlemail.com on 5 May 2011 at 2:51

GoogleCodeExporter commented 9 years ago
I'm no coder at all, but I'd sure love this issue to be resolved ;-)
In the meantime, I join Elise in asking : is there a get around? Creating a 
"holidays" task or somethng like that?

Original comment by pierre.s...@gmail.com on 18 May 2011 at 1:14

GoogleCodeExporter commented 9 years ago
This error unfortunately makes me strongly considering switching to MS which is 
a shame because GanttProject otherwise works well

Original comment by lars.h.j...@gmail.com on 28 Jun 2011 at 12:22

GoogleCodeExporter commented 9 years ago
Seems this will never be fixed - oh the trials and tribulations of 
free-software!

Original comment by phlerb...@gmail.com on 5 Jul 2011 at 2:23

GoogleCodeExporter commented 9 years ago
Though the software schedules project activities irrespective of days off , it 
still shows the respective resource on the off day as yellow in the right pane 
of "Resources" tab. So if we happen to have a look at this pain , we can at 
least get an indication of wrong planning.

But yeah , it's a bug which should be fixed for my plan to be accurate.

Original comment by gurpreet...@gmail.com on 28 Jul 2011 at 7:50

GoogleCodeExporter commented 9 years ago
Hi are there any plan to fix this bug? Like they say, out of sight is out mind. 
I thought to use this comment to bring this bug back to life to the forefront. 

Original comment by oni...@gmail.com on 15 Oct 2011 at 8:34

GoogleCodeExporter commented 9 years ago
Can one of the devs please point to sections of the code to look for if I want 
to work in this issue? This otherwise great software is pretty much unusable 
because of this feature.

Without looking at the code I can see why this is not straightforward to "fix": 
a task can have multiple resources assigned to it, and they don't necessarily 
have the same days off, apart from the ones defined in the project's calendar.

If I define a task as having a duration of 10 days, and it has one resource 
with 3 personal days off during those 10 days, but the other resource does not 
have any day off, then it's not straightforward to extend the end date of the 
task to account for those 3 days.

Other users mention that MS Project does not have this "bug" (being careful to 
put bug between quotes because it's more of a huge inconvenience than a bug). 
Having never used MS Project I do not know how this is addressed in MSP. A 
possible "fix" could be to flag a task-resource as being indispensable, which 
would extend the task by that resource's days off. The timeline would then show 
the yellow days off like it currently does, but would not overlay a blue 
ongoing task layer on them (or make it semi-transparent). Another possible 
solution would be to separate the number of work days of a task from the start 
and end dates, and define "days off for a task". This wouldn't be as effective 
because it would somehow duplicate information and would not make use of the 
personal days off of the resource.

If someone wants to give input on the way this is implemented in MS Project I 
would be glad to have a shot at implementing it.

Thanks

Original comment by ziad.saab on 4 Jan 2012 at 12:09

GoogleCodeExporter commented 9 years ago
What about just asking a user what to do with the tasks a resource is assigned 
to when a user edits days off? If he chooses to increase task durations, then 
do it, otherwise ignore as it is now.

Original comment by dbarashev on 4 Jan 2012 at 11:03

GoogleCodeExporter commented 9 years ago
The issue with this is that a resource might not have the same level of 
importance for all tasks. My first naive idea was to use the units ratio to 
extend the task by the number of personal days off of the resource multiplied 
by the units ratio of that resource for that task. Not only would that lead to 
fractional days off, but it wouldn't be representable on a timeline because it 
wouldn't be linked to reality (the resource will be away for X days, not X days 
times unit ratio per task). That's what led me to the idea of making a resource 
indispensable for a given task.

Original comment by ziad.saab on 4 Jan 2012 at 11:18

GoogleCodeExporter commented 9 years ago
Many tasks are assigned just 1 resource, so for many of them GanttProject can 
give reasonable assumptions: resource is off 3 days => task becomes 3 days 
longer. Show these assumptions to the user and ask to confirm; for the 
remaining maybe just show the tasks and ask what to do and let the user decide. 
The problem is that users often just don't want to search for assigned tasks 
and change their dates in many places (many times open dialog, etc.). If they 
could do it from a single place (from days off dialog), they would be happy.

Original comment by dbarashev on 4 Jan 2012 at 11:32

GoogleCodeExporter commented 9 years ago
Actually you are correct about the 1 resource 1 task thing as far as my project 
is concerned so far. I haven't done many of these in the past but I feel that 
if more than one resource is assigned then the task can usually be split into 
sub-tasks.

I am liking your solution more and more. We just have to add the case where the 
personal days off were defined before the task was defined. Also, with the 
current system where the task days are tied to the start and end date, simply 
extending the task won't give an accurate representation of the actual number 
of days worked. That part of the model would have to be modified to separate 
work days from start and end date. Here I'm making an assumption since I 
haven't checked the code. Is the tying of the days to start/end dates only a UI 
thing or is it actually part of the model?

Original comment by ziad.saab on 4 Jan 2012 at 11:37

GoogleCodeExporter commented 9 years ago
It must be a pure UI. In the model there is just a start date and a duration, 
no separation of work days from start/end dates.

Original comment by dbarashev on 4 Jan 2012 at 11:49

GoogleCodeExporter commented 9 years ago
Right. Since the current model assumes that a task will never be interrupted, 
then only two fields are needed. end_date = start_date + days. What I am saying 
is, now that a task can be interrupted, we need to have a notion of the total 
number of days the task will be ongoing, but also the total number of days the 
task will be active i.e. have someone working on it. The current Task::days 
property would be refactored to Task::working_days, a new Task::days_off 
property of type List would be added containing a list of date ranges where the 
task will be paused. getEndDate (assumed name) would be changed to return start 
date + working days + sum of the date ranges where the task is paused.

If you could quickly throw some class names in here I'll gladly take a look as 
I'm extremely motivated to create at least a working solution even if it's not 
perfect.

Original comment by ziad.saab on 4 Jan 2012 at 11:58

GoogleCodeExporter commented 9 years ago
Other point: if I cancel my vacations due to unforeseen circumstances then I 
also have to be shown a list of tasks that could be affected by this change and 
decide if I want to remove the days off from the task.

One practical example of this: Resource A is working a regular Mon-Fri 9-5 
schedule. Resource is scheduled to be off from Wed-Fri of this week because 
they're attending a conference for ongoing education purposes. Thursday's 
conference gets canceled so there are now two one-day off ranges. If we weren't 
displaying the project on a Gantt chart then we wouldn't care about the actual 
dates off, only # of days. But since we want a visual representation then we 
need to know the dates and be able to modify them.

Original comment by ziad.saab on 5 Jan 2012 at 12:06

GoogleCodeExporter commented 9 years ago
Such changes will have much more serious and risky impact, while this 
particular problem in my opinion can be fixed by just UI means: task was 5 days 
long, resource is 3 days off=>task becomes 8 days long, with the same semantics 
of what task duration is and no changes in the model.

GanttDialogPerson edits resource properties, TaskManager holds all the tasks, 
HumanResourceManager holds all resources, IGanttProject provides access to both 
of them, ResourceAssignment and ResourceAssignmentCollection bind tasks and 
resources

Original comment by dbarashev on 5 Jan 2012 at 12:10

GoogleCodeExporter commented 9 years ago
Yes that would be one quick way to patch it up. I'll have a look at the classes 
you just posted. Many thanks for renewing interest in this issue. It's 2AM here 
so I'll have a look at this tomorrow.

Original comment by ziad.saab on 5 Jan 2012 at 12:13

GoogleCodeExporter commented 9 years ago
Without having looked into at the code or having much hard core project 
management experience, I apologize for my naive perspective.  But given that 
there is an algorithm to apply a global calendar (that has weekends, and 
optionally "Public Holidays") against Task duration already, could the 
following be considered a possible solution?

Extend Task to have a nullable Calendar property.  If the property is null, 
apply the global calendar for calculations on duration et al.  If the property 
is not null, apply that local calendar for calculations.

So when Resources are assigned to a Task, that all assigned Resource calendars 
are unioned together with the global calendar, and then that aggregate calendar 
is assigned to the one Task.  Recalculate and - naively - everything all takes 
care of itself?  I would hope (expect?) that this would take advantage of code 
already written.

Thoughts?

Original comment by roehl.si...@gmail.com on 11 Feb 2012 at 9:21

GoogleCodeExporter commented 9 years ago
Could I throw in another request to take into account.  I have just started 
working on a project where I have resources in different countries, so 
different public holidays.  Also my Chinese resource can work 7 days a week, 
not just 5, so when they say 60 days lead time they mean 60 days not 84.  Also, 
of course, ships don't stop on the weekends :)

It would be wonderful it it were possible to control all of the working days on 
a resource by resource basis.

I'm new to project planning and would have thought that this is a basic 
requirement otherwise you can't tell how long your plan will take.  Or am I 
missing something in this dark art.

Original comment by howardwa...@gmail.com on 30 Apr 2012 at 6:09

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

Original comment by dbarashev on 15 Jan 2013 at 9:17

GoogleCodeExporter commented 9 years ago
I've began to use ganttproject and I think it's quite necessary to view the 
real duration time according to holidays and time-off. Unless you can do it 
automatically, it's not useful having to add time to all the task which include 
holiday (that you can see in a point at least or checking leave time)

Original comment by mlvm.sus...@gmail.com on 13 Mar 2013 at 3:32

GoogleCodeExporter commented 9 years ago
Is this core feature still a bug after so many years ???  Has anyone taken a 
stab at fixing it yet?

Original comment by nicolasp...@gmail.com on 29 Apr 2013 at 8:55

GoogleCodeExporter commented 9 years ago
[deleted comment]
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:44

GoogleCodeExporter commented 9 years ago
Hi there,

For me too, this is the defect which makes it impossible to use this piece of 
software. Obviously, the developers have bigger fish to fry now.

Disappointing.

Original comment by goo...@thebluelizard.co.uk on 29 Mar 2014 at 9:53

GoogleCodeExporter commented 9 years ago
Has development completely come to a stand still on this software

No Resource levelling =  Impossible to be useful in any way
Why let the user enter holidays and time off, assign resources, set priorities 
and then do absolutely nothing with that information.

Terrible

Original comment by ellispl...@gmail.com on 28 Apr 2014 at 10:11

GoogleCodeExporter commented 9 years ago
I guess we'll have to take this as it is... free software with some minor 
issues. This is great software for starting and estimating small projects. 
Resource holiday times will have to be estimated into the task duration. 
For those of you who depend on their software for professional use .. buy MS 
project!

Original comment by sid.sand...@gmail.com on 28 Jul 2014 at 11:56

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

Original comment by dbaras...@ganttproject.biz on 31 Oct 2014 at 1:52

GoogleCodeExporter commented 9 years ago
Up for this enhancement please... It's a so mandatory functionality !!

Original comment by kriss...@gmail.com on 6 Jan 2015 at 12:48

GoogleCodeExporter commented 9 years ago
I suggest either disabling "days off" or implementing the simplest approach to 
taking "days off" into account when using task duration to calculate end dates.

Without this feature, the tool may only be useful for rough, long-term 
planning, i.e. less than 5% of the time.

Original comment by tom.nak....@gmail.com on 9 Jun 2015 at 7:41

GoogleCodeExporter commented 9 years ago
Hello Tom,

I'm totally agree with you : gantt project is unusable in almost all the cases 
without "days off" functionality.

For my own, gantt project would be great if "days off" was took into account to 
calculate end dates.

Regards

Original comment by kriss...@gmail.com on 9 Jun 2015 at 7:48

GoogleCodeExporter commented 9 years ago
Same here. 

This software is really useful and could be used as a profesionnal tool....if 
this bug was fixed.

I don't understand why this very basic function has not been implemented after 
7 years ?! 

Original comment by testat...@gmail.com on 26 Jun 2015 at 6:31

kiltannen commented 8 years ago

Is this something that is being looked at? Any chance it may have a fix soon :) ?

I do like the software - and I love that it's open source & free for all uses.

I am encouraging others to use it - my workaround for this "feature" is to have an annual leave task for each resource that goes on leave and make it a predeccesor of any task that falls in the "wrong" slot.

Manual and a little bit clumsy - but does work...

RoDoerIng commented 8 years ago

I'm just using your software the first time and I'm very happy with it. But this bug/feature makes it a little hard to do detailed planning. Please solve this issue.

In the meantime I try to get along with the workaround @kiltannen mentioned.

jesus2099 commented 8 years ago

my workaround for this "feature" is to have an annual leave task for each resource that goes on leave and make it a predeccesor of any task that falls in the "wrong" slot.

@kiltannen could you explain your work around in step by step or with a screenshot, please? Let’s say the unique resource of a 10 day task (with automatic start date by a dependency), has 3 days off in the middle, how do you make this task end up 3 days later but still automatically shift with the dependency anterior task, if it slides?

Docteur-RS commented 7 years ago

Is the project dead ? Because we are in 2017 and its still not fixed.

I've got some people working in part-time. How should I represent them when they are only working 3 days a week... Its not convenient at all. Thats a pitty because its a good peace of software.

derarnold commented 6 years ago

Hi there.

How can we can develop / fund this fix? @Ganttproject team: How much money would you need to implement this?

derarnold commented 6 years ago

My problem here is, that I try to use the personal holidays to introduce a schift schedule. I have some companies work 7 days a week and some 5 days. Is there perhaps an other solution for this?

derarnold commented 6 years ago

Perhaps, we can implement the feature easy as follows: When you assign several resources to a task and one is available to work on that day, the day counts as a working day towards the duration. When no resource is assigned all days count as working days If at least one resource is assigned to the task and has holiday that day, the day does not count as a working day towards the progress.

This should make the feature easy to implement. What do you think?

dbarashev commented 6 years ago

@derarnold this is a complex story. Some people love complete automation of this process and don't mind when resource calendar change introduces side effects by changing the assigned task dates. However, there is other side: people do not like when something changes out of their control, and that's one of the reasons why they like GanttProject comparing to MS Project: we do not try to be excessively smart.

My current view is that we can search for affected tasks after changing resource calendar and leave user a choice how they shall be handled. Such approach requires quite a lot of polished UI work, and is not really cheap. However, we have some funds from the donations and we are ready to pay to someone who loves UI and is willing to take this up. If you can recommend anyone, please let us know.

callbarberd commented 5 years ago

Found GanttProject and I just tried it. Pleased to be able to add in Days Off as well as the main resource only does a 3 day week. However, disappointed when the Days Off didn't work. Did some testing and then started searched and found this stream. I wasn't going to donate because this is a big hole for this one project and is necessary for my other projects. BUT I realise it's a complicated area and will need good resource. I can just put in a Blanket 4 day weekend for this project and then I'm ok. I like GanttProject - it's pitched at the right level and I'll use other workarounds for other projects. So I think I will donate and hope that sometime in the years to follow it does get done.