Feature #2161
Time tracking code should respect weekends as "no work" days
| Status: | New | Start date: | 2008-11-11 | |
|---|---|---|---|---|
| Priority: | Normal | Due date: | ||
| Assignee: | - | % Done: | 0% |
|
| Category: | Issues | |||
| Target version: | Candidate for next major release | |||
| Resolution: |
Description
I imagine this is a common requirement for a lot of companies - we don't work at weekends! (at least, by default we don't work at weekends).
It would be nice if the Gantt chart, the calendar, and the code which sets start and due dates on the basis of issue dependencies etc, treated weekend days by default as "non-work" days.
I imagine this would have implications along these lines (Forgive me any mis-assumptions as I'm not 100% clear on how your time-tracking logic works at present):
- Issues are never automatically scheduled for weekend start dates
- Weekend days during the time scheduled for a ticket, are not counted towards the length of time spent on that ticket
- This would mean that (amongst other things), when an issue is pushed back so that it spans a weekend, the due date is pushed back by an additional 2 days to account for the fact that no actual work will take place over that weekend
- Any logic which exists to fill out due dates on the basis of estimates, should not by default count weekend days towards time spent
Related issues
History
#1 Updated by Eric Davis over 3 years ago
- Category changed from Time tracking to Issues
-1
This makes a lot of assumptions and raises several issues, mostly about how would the system know what a weekend is (e.g. many people work Saturday and Sunday)
#2 Updated by Matthew W over 3 years ago
It would need to be configurable I imagine.
To be honest, I think that any scheduling code needs to exceed a certain level of functionality before it realistically adds anything over manual scheduling in practical use.
At present the gantt chart functionality hasn't reached that level for us, as I end up needing to manually edit start and due dates in almost every case. The weekend thing is just a part of that. Some other issues are:
- It isn't using the estimate in hours, to determine a due date (assumptions could be configurable but default to 8 hours per man day, 1 man at a time working on any given ticket)
- It would be nice to enter an estimate in working days, as well as hours, and have it use that, potentially avoiding the need to make assumptions about number of working hours per day
- It will only do dependency-based scheduling at the 'day' level of granularity based on start and due dates. It would be nice to schedule, say, hour-long tasks with dependencies too
- Sometimes when I move start dates, I have to manually move the start dates of dependent tickets too (I think this just happens when I move them earlier).
I don't mean to be picky, and do realise a full-blown scheduler is a pretty complex piece of constraint satisfaction programming. I guess it's a decision for you on where you want to take the project, but that's just my perspective on things as they stand.
Regardless, even without any scheduling I'm happy with redmine as a great ticketing system with basic dependency tracking.
Cheers,
-Matt
#3 Updated by Yannick GALLY about 2 years ago
Did someone work out something about "no work" days' configuration ? (Plugin ? Patch ? or something else ?...)
Thanks for the work.
#4 Updated by Greg Parker over 1 year ago
+1 - I need this in order to start to make the gantt useful.
#5 Updated by Sascha Herrmann over 1 year ago
+1
I agree that improving scheduler will be a lot of work, but it will make a huge effort for redmine users! To be honest, the implementation of the "do not include weekends" feature Matthew W requested will make a use of MS-Project more obsolete! This will significantly increase the number of potential redmine users.
I agree to Matthew, that the best way to implement this feature is to ask the user for a working or a holiday calendar. Whenever the scheduler updates due dates it could take a look at the workday/holiday calendar and skip the off days when updating the due dates of related issues.
Additional I agree to the idea of having an extra information about "days needed to complete issue". E.g. the net time to solve an issue might be 8 hours, but due to working conditions you are not able to solve the issue in one day (maybe you start a calculation process, wait for results, and then create a report). To schedule issues correctly it is only necessary to have one of days needed and due date information. Perhaps we should request this as an additional feature, as it is independent of the weekend feature!
Cheers, Sascha
#6 Updated by Guus Raaphorst over 1 year ago
+1
It would be a lovely feature to have!
And as stated in Feature #7142, it would probably be better to not use it only for weekends, but instead to specify the working hours for every user (maybe a default for all and the possibility to add exceptions on this for a some of the users). For instance, I work for 36 hours at the office where we use Redmine and these hours are divided among four days (9 hours a day from Tuesday to Friday). If we can incorporate this into the Gantt chart, we could loose the separate planning tool that we have now (where we can fill in working days, holidays, etc).
#7 Updated by Chris Darts over 1 year ago
+1
I really feel this feature alone would help elevate Redmine to the status of a fully functional scheduling system which can be used for effective project management. With all the recent changes to the Gantt chart etc. it is definitely on the verge of making this step up.
For my organisation, just being able to define a working week and day calendar (as MS Project allows) would resolve this issue.
#8 Updated by Tomislav Nakic-Alfirevic about 1 year ago
+1
Redmine seems to be aiming towards project management with the Gantt and Calendar views, but I find it difficult to imagine how it should support use cases I find fairly basic. Don't misunderstand me: Redmine is generally a joy to use, but I'm talking about planning features in particular at the moment so I'll explain what I mean.
Use case¶
A project leader leads a team of 5 and schedules a few dozen tasks for the next three weeks, complete with task dependencies so that when one task is delayed, all the subsequent tasks are automatically rescheduled. Because a lot happens during a week, we discover and create new issues, some of them impacting the plan for the next three weeks.
Introducing these new issues into the plan delays existing issues, but the only way I can delay existing issues is by re-visiting each and every one of them and updating their dates because the tool schedules them for weekends, holidays and such. Since the plan is a live status snapshot (reviewed twice a week), this happens a lot and takes a huge chunk of time.
So, am I going about it completely wrong? How do others plan using Redmine? Would you agree that automatic rescheduling based on dependencies is a key feature?
My suggestion¶
Make it possible to define global and per-user unavailability, e.g. Jan 1st would be a global day off applicable to all users and Jul-1st to Jul-16th would be a specific user's vacation. Redmine should allow users to define when users are available and reschedule tasks following those constraints.
While this might not be the simplest extension to implement, in my mind it would make it possible to lean on Redmine as the main PM tool for current and future projects care-free.
#9 Updated by Etienne Massip about 1 year ago
- Target version set to Candidate for next major release
#10 Updated by Fernando Hartmann about 1 year ago
+1
This is a very useful option to use Gantt in real live projects !
#11 Updated by Giovani Spagnolo about 1 year ago
+1
configurable setup for "non working days" per project would be a good start.
#12 Updated by Jiří Šindelář 10 months ago
+1
#13 Updated by Steve Shaffer 9 months ago
+1
If anyone's working on this, via contributions to the source or as a plugin, please let me know. I'm looking at leveraging RedMine to develop a project management application for a client (who has nothing to do with software development). Outside of the software development community (at least in my country, the US) no one works on weekends by default.
So I'm going to need to get this to happen for my client one way or another. I'd rather do it in as much of a community-focused way and as close to the trunk as possible (especially considering the amount of code a plugin might have to interact with to make it happen).
#14 Updated by Adam Klinkosz 8 months ago
+1
It would be great to have calendar in which the admin can select holidays which later would be considered as no working days.
#15 Updated by Terence Mill 8 months ago
+1
#16 Updated by Marcelo Mira 8 months ago
+1
#17 Updated by Cyril Dubus 8 months ago
+1
#18 Updated by Sylvain Guimond 8 months ago
+1 I'm totally agree and looking for this feature too.
#19 Updated by Carlos Serrano 8 months ago
+1 It is not necessary is mandatory
#22 Updated by Alexey Kuleshov 4 months ago
Guys, I implemented this recently in my plugin, you might want to check it [http://www.redmine.org/plugins/redmine_better_gantt_chart]. So far it supports only weekends as 'no work' days, no custom calendar added yet. Let me know if it works for you.
#23 Updated by Dieter Egert about 1 month ago
+1 @Alexey Kuleshov: Your plugin works fine, thank you, it is a really needed 'first aid' regarding this issue.
Hopefully I don't ask too much, but I think we'll need:- a default calendar for all projects containing weekends (maybe not holidays..!)
- one calendar per project with project specific holidays. In the project configuration of the calendar there is a pulldown box to choose the behaviour regarding the default calendar: 'link' (use dynamically), copy (just once, then 'unused') or 'unused' regarding all entries of the default calendar.
- 2 checkboxes on each issue for regarding (or not) global working days and project specific working days.
Reasons:
1. Depending on the country of project partners there are different weekends and holidays (see China or arabic countries)
2. There are issues for automatic testings or other jobs that will be continued without any manpower, so independently of weekends.