This is a big topic, it involves design aspects now probably deeply rooted in the software, so probably difficult to change now. So, as far as I love the program, I'm going to be critical of certain aspects of it. I'm not going to post suggestions about this (unless Abstr asks me to) because the subject has many facets and is complicated to define properly.
By looking at the treatment of 'parent tasks' in several other programs, the common way to consider them can be summarize as this: the parent task takes on the form of a summary task or rollup task for its child tasks
https://docs.servicenow.com/en-US/bundl ... ships.html
This was the trigger for my understanding of my problems with parent tasks, and now I wish the program would consider parent tasks exactly like this: a summary task or rollup task. So, with most of the attributes of the parent tasks calculated from the subtasks.https://docs.oracle.com/en/cloud/saas/n ... 99176.html
Parent task records track the following data sourced from its subordinates:
- Start Date – the earliest start date of all subordinate tasks
- End Date – the latest end date of all subordinate tasks
- Estimated Work – the cumulative total estimated work for all subordinate tasks
- Actual Work – the cumulative total actual work done for all subordinate tasks
- Remaining Work – the cumulative total work remaining for all subordinate tasks
- Percent Complete – the percentage of work completed for the task overall
For example, it makes no sense IMO that the start and due dates of a parent task are not dependent of the subtasks. As quoted above:
- the parent start date: the earliest start date of all subordinate tasks
- the parent due date: the latest end date of all subordinate tasks
(although changes could possibly be allowed directly on the parent's dates)
Another example: the attribute 'Category' of the parent task would summarize all the categories defined on the subtasks (although adding categories could probably be allowed directly on the parent task too)
Same for the 'Allocated to' attribute, etc.
In fact, the way each attribute is summarized (or not) at the parent task level should be defined. A summary of a given attribute from the subtasks can indeed take one of these forms:
- the set of all values used
- the most frequent value
- the sum of the values
- the number of occurrences
- the maximum (or minimum) value
- other rules (see about statuses below)
- etc.
In the current implementation, only a few attributes ('Last modified', 'Flagged', 'Completion status', '% completion', Time Spent, 'Time Estimate') can be calculated from the subtasks.
For all the other attributes, it's the subtasks that can inherit the attribute value from their parent. This inheritance can be handy at some moments for some attributes (eg. at the subtask creation), but doesn't really make sense afterwards for quite a few attributes, and for dates and status.
Apply the start and/or due date of parent task to all its subtasks doesn't really make sense within the framework of a project. Each subtask have different start and due dates. Again, it should be the opposite: the dates of the parent task calculated from the subtasks.
The management of the 'Status' attribute also annoys me in the program. Consider this simple task break down:
-ParentTask1 (status: todo)
--Subtask1.1 (status: todo)
--Subtask1.2 (status: todo)
Now if the status of 'Subtask1.1' is changed for 'In progress', I wish the 'ParentTask1' status to be changed automatically to 'In progress' too. So here again, that the status of the parent task summarizes the different statuses of the subtasks.
This would imply to define calculation rules between statuses, in order to display the most relevant status at the parent task level.
For example: Subtask1.1 is 'Completed' and Subtask1.2 is 'Todo' = 'ParentTask1' is 'In progress'. (source of the example: http://www.centriqs.com/manuals/83217-h ... btasks.php)
So, here again, statuses of the subtasks and status of the parent are not in sync currently (at least in the most useful direction subtasks > parent). So the management of statuses between the parents and the subtasks is manual at best, and it is very confusing for the user to find the right workflow because of that (at least it was for me).
So each parent task would be a summary of the subtasks it contains, so even when collapsed an overview of its content would still be displayed, and up to date because in sync. That would be very useful, and what is expected, I think, with parent tasks.
Now I'm going to anticipate an objection that can be made: "it may well suit YOUR workflow, but it won't work for everyone. Some people use parent tasks differently."
To this I would reply that this is how parent tasks work, I guess, in virtually all softwares but ToDoList. That there is a logical problem that the start date of the parent task is later than the date of one of its subtasks, that the status of the parent is 'To Do' but on of its subtasks is 'In progress', just to pick two examples. These strange and incoherent possibilities offered by the program (the parent not in sync with its subtasks) doesn't offer any additional useful flexibility IMO, just a lot of confusion, difficulties to set a proper workflow, and finally some additional manual work to do (to keep the attributes in sync).
The fact that the main statuses of a task are not 'hard coded' but it's up to the user to make the list himself can also appear to be a problem, because this seems to make the automatic management of the statuses by the program (based on dates or other criteria) less possible.
Well, now I'm glad I did realized that, it will help me manage better the tasks with parents. Even if the program doesn't do it automatically the right way for me.
I'm now interested to know what YOU ALL think of all of this, and of course especially Abstr, even if I understand that the subject is rather too massive and indigestible!