Why all GTD Software is broken (for me at least!)
I have spent the last few weeks doing the latest round of my quest for the "right" GTD system. Once again I come up empty-handed and arrive back at "good old" Toodledo. I guess before I even start, I should say why I end back at Toodledo: it is rock solid, the web app is accessible everywhere, and there is an excellent Android app (Ultimate ToDo List) which is also rock solid and works just fine in offline mode. I can put up with a lot of irritation in a GTD system, but I cannot put up with a system that cannot work well in an airplane nor can I trust a system that every so often just loses a task.
So why am I not happy with Toodledo? It is too complex. There is a large set of things you can set for a task: start date, due date, status, goal, priority, context, tags, folders ... and these things are all pretty much independent of each other. If I decide to move a project from one context to the next, it's not a given that I could just tell the project "now you are at work, no longer at home". A project has individual tasks and each of them has its own independent context. If you implement projects using the parent task / subtask system it's even worse. You can have subtasks of a parent that reside in completely different folders. Which in most cases is sheer nonsense, and results in tons of clicking to update the various fields of all subtasks to be the same as the parent task. Except of course the status field, because usually only one of the subtasks is the "Next Action".
Also : Toodledo has no concept of a defined order of tasks: order is the result of sorting. To get your tasks into some reasonable order, you wind up fudging, like adding a "start date" to the task and sorting on that. This date of course has to be frequently updated, because you probably don't finish things when you think you would, and then that low priority tasks you thought you might get to a month ago is riding at the top of your todo list for no good reason.
So I went looking. What was I looking for?
- A "cloud" based system. I regularly use four different computers (work desktop, home desktop, laptop, and android smartphone) and they should see the same view of my tasks. Either I can spend a lot of time manually synchronizing, or find a system that will work via Dropbox, or a system that is "cloud" based, which really means only that all your tasks are stored somewhere on the internet; the thing running on each of the computers knows where that "somewhere" is and keeps the view on your computer in sync with what is on the task server.
- Task import of some kind. I've found out the hard way that I can't really get an idea of how a system will work for me until I have a hundred or so real tasks in the system and actually try to use it. Entering 100 real tasks takes a long time. So unless the system looks otherwise perfect, I don't even bother if there is no good import method. Acceptable import methods are e.g. direct import from Toodledo, import of a CSV file (that I can export from Toodledo) or the ability to email tasks with metadata syntax, so that the tasks can be directly sent into the proper contexts, folders, get the right due dates and tags, etc. I have a script that zips through a CSV export from Toodledo and mails the tasks off. Not as nice as direct import but it still works.
- A good user interface, preferably one that lets me drag and drop stuff, one that minimizes the amount of clicks things take. And preferably one that lets me make my own ordering of tasks, independent of due dates or whatever.
- A solid android app on which sync works perfectly, which can be used in offline mode (meaning as well that tasks entered in offline mode will be synced once an internet connection is available again!). It should also have an excellent user interface allowing for quick capture of todos and quick viewing of (or marking "done"!) the most important tasks.
- A viewable archive or log of completed tasks, including the date completed.
- Even better is if one is able to record time spent on a task, and this information is also available in the archive. And the archive can be exported to e.g. a CSV file for processing outside the system.
- Documentation. It's amazing how many systems out there have no documentation whatsoever!
- Ability to email tasks to the cloud interface, including setting metadata like due date and project name via a special syntax.
- Ability to search the task list (including attached notes) and also filter the task list given some criteria. An optimal filter system allows boolean composition of filters, like "todo in (Folder A OR Folder B) AND (Context is Computer or Work) AND Status is NextAction".
- Task export of some kind. I've found out that sometimes I think a system is going to work and it doesn't; then I want to migrate to something else. In order to do so, I need to have some sort of task export, one which is complete enough that I can import it to another system and not have to manually sort things into folders, set due dates and tags, etc.
One more thing while I am at it (and off all the systems I looked at, only Nozbe works this way): actions (todo's) added to "Projects" should have a default focus or status of NOTHING. Should not even show up anywhere except in the list of actions for that project, until that time at which you give it a context, a "next action" status, a due date, whatever. Why? Think about it. Take "wallpaper Lisa's room" as a project. I need to:
- get all the stuff together I need to remove the old wallpaper
- remove the old wallpaper
- set a date with Lisa to go look at new wallpaper
- pick out the new wallpaper
- buy the new wallpaper
- buy other supplies like glue, brushes, cutting tools, etc
- put down plastic sheeting to protect the floor
- put on the wallpaper
When I enter these tasks, they surely do NOT belong in the inbox (which is where some GTD systems will put all new tasks, regardless of where you enter them). I know where they belong : they belong in the project folder as tasks in the project. Not all of the tasks are actionable, so they certainly do not all go in "next" focus area like some other GTD systems will do. At the start of the project above, steps 1, 3, and 6 might be "next actions", the rest are all "waiting for steps 1 or 3 or 6". That is not the same as "Someday"; what someday means in GTD is "I might want to do this someday". When I am ready to remove the old wallpaper, I put "remove the old wallpaper" task into the "next action" state, and at that moment it should show up in my next actions list. Not before.
Think about Allen's book, written back in the days of paper: you wrote a next actions list, that only contained the next action for each active project, along with some projectless "next" actions. You wrote the list in an order that made sense to you, you did not rely on some external sorting engine to do the ordering for you. Projects had their own folders with project plans in them. When you identified a new action associated with a project, you did not immediately put this action in your inbox. Also, you did not go through all your project folders once a week and collect all the not-yet-actionable items on those projects onto one giant massive "Someday" list. IMO, a good GTD software system should behave the same way.
Developers of GTD systems : you are hereby challenged to come up with a "complete" system. Like my old professor Joe Redish said: 0.8 is not equal to one. However, 0.96 is equal to one.
Now, I present the systems I looked at, and what was good and what was not, and why ultimately I could not use each of them.
The systems I looked at: GQueues, KOI Tasks, SmartyTask, ActionComplete, HiTask, GetItDone, Nozbe, Thymer, and Conqu.
Note: the forum will not allow me to post the whole article, it's too long. You can view the comments about the individual systems (the whole thing actually) at here.
I'm still waiting ... and still struggling to make Toodledo work for me in the meantime! I am following Nozbe, Thymer, and HiTask closely to see what they are doing with Android. I may still give Conqu a serious test, and will probably check back on GetItDone at some point to see whether the robustness has improved. Any of the above systems could still make the cut if they make the right choices!