As you've mentioned, if you limit the work on a task to 1 day per week, this restriction will only be applied to this task. So if you use this on multiple tasks on a sub-project, each task is only allowed to be worked on for one day per week, but a resource can work on a group of those tasks basically full time - just not more than one day on each individual task.
Technically, you could introduce artificial task dependencies to prevent multiple of those tasks to be in progress at the same time, but I would not recommend this as long as it doesn't reflect "real task dependencies", since this might make things more complicated if multiple resources become involved.
With a filter, you can use similar limits for a resource instead of a task, which allows you to apply restrictions on all the tasks a given resource works on.
Unfortunately, in the current version 0.9.19 of TaskFalcon, filters
don't support the weeklymax
parameter, but you can use workingtime
to achieve a similar result.
resources:
- resource: W1
name: Worker
- filter: one-day-per-week
workingtime: MON # The filter allows a resource to only work on Mondays
tasks:
- task: T1
efforts: 2d 4h
assign: W1.one-day-per-week # Assigns the resource with the configured restrictions for this task
The difference between weeklymax: 8h
and workingtime: MON
is, that you can not tell the resource to work on a task any time during a week but in total not more than 8 hours. Instead you tell the resource that it is allowed to work on a task full time, but only on a specific day.
Here is a full example:
project:
name: Limited project time per week
start: 2020-06-01
resources:
- resource: W1
name: Worker
- filter: one-day-per-week
workingtime: MON
tasks:
- group: P1
name: Project A (One day per week)
priority: 100
tasks:
- task: T1
name: First task
efforts: 2d 4h
assign: W1.one-day-per-week
- task: T2
name: Second task
efforts: 1d 4h
assign: W1.one-day-per-week
- group: P2
name: Project B (Rest of available time)
priority: 90
tasks:
- task: First task
efforts: 6d
assign: W1
- task: Second task
efforts: 6d
assign: W1
Since the one day limit is not applied to the tasks directly, but to the resource, all tasks where the resource filter is used, now share the same limitations.
The priority of a task is also important here.
You've mentioned that Project A
is a low priority project because you can only work on it one day each week. The above example uses a different understanding of what priority means, since here it is a high priority project with a working restriction of one-day-per-week.
You could also address this from a different angle and create a 4-days-per-week limit for Project B
and work the rest of the time on Project A
. In this case Project B
would need to have a higher priority, so Project A
would be allocated resources only if the constraints for Project B
are already satisfied.
The main difference between those two approaches would be if for some reason you would have less time in a given week to decide where this time gets taken away. Let's assume you need to work on an even higher prioritised task for a third project for another day per week.
In the provided example, you would still be able to work on Project A
for one day per week and one day less for Project B
, since Project A
has a higher priority.
If Project B
was higher in priority, with a 4-days-per-week limit, then you wouldn't be able to work on Project A
anymore, since Project B
would get all of the remaining 4 days in this week.