Though I already have a brief explanation in the documentation why Tasks Pro™ and Tasks don’t have categories, I still get e-mails from people asking about categories. In the future, I will point those people to this post.
First, a brief definition: categories are containers that you put things into. They are used to organize and group things together (and apart from each other as well). With categories, there is already an expected behavior because many systems use them.
Categories are a primary organization method, so is the task hierarchy. Making them work together isn’t so simple. The hierarchy is the primary interface, it is the core of the system and won’t be changed. With this as a base, the question is “how do categories work with the hierarchy”?
Most people ask for a drop down at the top that will allow them to change categories, with another drop down on the task edit screen to allow them to select a category for each task. Seems simple right?
Consider this situation:
- Task A (Category 1)
- Task B (Category 1)
- Task C (Category 2)
- Task D (Category 1)
- Task E (Category 1)
- Task F (Category 3)
How would this collection of tasks be displayed in the hierarchy plus category model? Let’s say the user clicks on the Home screen and chooses ‘Category 1′ from the category list:
- Task A is displayed.
- Task B is displayed under Task A.
- Task C is not displayed because it is not in Category 1.
- Task D – well, here we have a problem. We want to show Task D because it is in Category 1, but the parent task (Task C) isn’t visible.
- Task E is displayed.
- Task F is not displayed.
Now let’s say the user selects Category 2 from the category list:
- Task A is not displayed.
- Task B is not displayed.
- Task C now has the same problem that Task D had previously; the right category but a parent that isn’t shown.
- Task E is not displayed.
- Task F is not displayed.
The problem is that the categories and the hierarchy are both primary organizational elements; they can easily conflict and one has to win. In the case of Tasks, the hierarchy will always win because it is designed to be a hierarchical system. This leads to inconsistent behavior regarding the categories. Inconsistent behavior is bad; it is confusing to users. It makes it harder for the user to easily grasp the concepts and rules that the software is using.
Some people have suggested a behavior where Task C would be promoted to the top level when Category 2 was selected. This type of behavior is very complex and not easily understood by just using the software. Complex behavior is bad for the same reason inconsistent behavior is bad, it makes the software hard to use.
If we put aside the complexities and problems the hierarchy and categories present when used in concert with each other, I’m still unsure what benefit you’d gain from categories. Again, the desired usage of a category (selecting the category from a list and showing those tasks) is already accomplished by the hierarchy. Set up your top level tasks as the “categories” you want, then use the “Jump to…” menu to move between them. If you want to see a list view of tasks in that “category”, do a search with the ID of the top level task in the “Search Under” field (you can even bookmark these search results to access them quickly if you want).
One great benefit of the hierarchy is that you can automatically create “sub-categories” at will just by the organization of your tasks in the hierarchy. If you decide that a certain sub-category is better suited for a difference category (say you want to move the “Backup Computer” tree from “Home Office” to a “Weekly Maintenance”), all you have to do it choose the new parent for that task and the entire tree is moved. You need to spend any time maintaining categories. You don’t need to go into the admin interface and choose to remove a sub-category from one category and add it to another (and move all the tasks); or add another top level category before you go to create the task for it.
Hierarchical organization and categorical organization are both methodologies for organizing your data. I’ve chosen hierarchical organization as the primary method that Tasks uses. Like all decisions, this opens up certain possibilities and closes off others. If you don’t want a system that uses hierarchical organization as the primary organizational method, Tasks Pro™ and Tasks probably aren’t the best systems for you. There is no point in fighting the nature of the system; especially when there are many task management systems you can choose from that use categorical organization.
Note: Labels and keywords are very different than categories. Labels and keywords do not have the containing properties that a category does.