My history of task management applications…
Since I started using GTD a few years ago, I have used several applications for the computer-based side of my task management (which is where almost everything else eventually ends up). In chronological order, I have used:
- The standard applications on my (aging) Palm device together with JPilot on the desktop (Linux) side, following the PigPog method for connecting actions to projects. This worked fine for the most part, but required a lot of manual rearranging of things. At some point I found…
- ThinkingRock, which is the most faithful-to-GTD application out there. It strictly enforces the GTD workflow. This was my preferred application until I moved from Linux to a Mac as my work machine. I still consider ThinkingRock to be one of the best applications out there, but since it is written in Java, it does not integrate all that well into the Mac environment, so I decided to search for more Mac-like options.
- iGTD is one of the most popular GTD applications for the Mac. It shines in the integration department! Its F-key trick allows the use of a single key (F6 by default) to automatically create a new task containing the currently selected object (depending on the application – Safari URL, Mail message, selected text in an editor, etc.). I found a script to migrate from ThinkingRock to iGTD, so I was able to migrate quickly. Unfortunately, iGTD (at least iGTD 1.x, I have not tried the 2.x alpha) has many lackings in terms of GUI design. Some panels are arbitrarily not-resizable, and in general it feels very complex. I never “clicked” with iGTD, so I kept looking for alternatives.
…and the present: Things
Which brings me to the latest application in my toolbox: Things. Things’ strength is its simplicity. It has very little built-in structure, allows you to use tags extensively, and it is visually very pleasant.
1) Little imposed structure: Inbox, Time-related focus, projects and areas of responsibility:
This subdivision is the only fixed structure that Things will impose upon you. Inbox is where you collect your stuff as it appears (although you can also file it directly in some of the other areas), Today is where tasks that you have marked as “must do today” appear, Next is where all your future tasks are listed, Someday are things that you have left for some undefined time in the future (this is GTD’s “Someday/maybe” list), and Postponed is things that you have left for some defined time in the future (this is an electronic tickler file).
Projects and Areas allow you to group your tasks into Projects (related sets of actions that correspond to a particular objective, that in the end can be marked as completed) and Areas of responsibility (ongoing areas of interest which may never be completed). Things is the only GTD program I have seen that handles Areas, and I find them incredibly useful in the following ways:
- I try to make sure that every task and project I create fits in one of the Areas I have defined. These are supposed to be all the “high-level functions” in my life, and if one task does not fit in any of them, then either the task is unimportant or there is an area that I have overlooked so far. Areas cover everything for both work (“Write papers”, “File patents”, “Research”) and personal life (“Family life”, “Health”, “Home and car maintenance”), as well as areas that cover both work and personal items (“IT infrastructure maintenance”, “Blogging”, “Productivity”).
- I find them very useful for doing my weekly review. For me, Areas are what David Allen would call “larger outcomes”, and so I go through the list, ensuring that I am doing something on each of those areas. I do the same for projects. Things has very nice overview screens for both Projects and Areas, in which you can see how many items you have in each one of them, and for projects, gives you an indication of their level of completion (how many of the tasks in the project have been marked as done). One nice feature is in that you can navigate these overview screens using the keyboard to select a project/area, and you can use the Right-arrow key to view the items it contains, and then Left-arrow to go back to the overview. Using the keyboard, it is very easy and efficient to review all the areas and projects.
2) Tagging: create your own structure:
- General areas: work, personal and meetings (I keep track of meetings in Things, but I don’t want to see them all the time, so I define a different tag for them)
- Traditional GTD contexts (home, office, errand, waiting for)
- People agendas (my boss, my wife, other specific people or places)
- Time indicators of how long the task will take to complete (I use only 10, 30 and 60 minutes).
Using the Things tag bar, you can quickly filter any of the views to see only the appropriate tasks. You can assign one-key shortcuts to tags, so you can quickly add and remove tags to tasks by pressing them while the task is selected. You can also apply tags to projects and areas.
One thing that I wish Things would implement is persistence in the selection of tags. As it is now, if I do my tag selection in the “Today” view and then switch to “Next”, when I go back to “Today” all the tasks are shown again, and I have to re-select tags. It would be nice if each view remembered the set of tags that were last selected. Even nicer would be to allow creation of custom views, based on any of the preexisting ones, but with a certain set of tags always pre-selected.
3) System integration and quick entry:
Things allows you to set a system-wide hotkey to invoke its quick-entry dialog, where you can enter a task, and optionally specify tags, type some notes, and decide where to file it (it goes in the Inbox by default).
One feature that I find very useful is the ability to drag any link into the notes field, and Things will recognize it correctly. This obviously includes URLs from Safari, but you can also drag email messages, files or folders, and Journler entries. This makes it possible to have at your disposal any relevant information you need to do it. When you click on the links, the corresponding item in the correct program will open.
There are some applications from which you cannot drop links into Things tasks, one notorious example is AddressBook. I think this is because when you drag an entry from AB, it gives you not a link, but actually a copy of the record. This is controlled by AB, but I think it would be very useful if Things somehow recognized this and did the right thing by creating a link to the correct AB entry.
4) The development team:
This is something that has impressed me very positively from the start – the Things development team is incredibly friendly, and goes to great lengths to stay in touch with the users, to get their feedback, and to provide them with information about what is going on. When the Things alpha program started (in which I was lucky to get quite early), they had only a wiki for users to enter their experiences and for them to provide information. Pretty soon they added a blog, some time later they added a feedback window built into Things, then they started a Twitter feed to keep users updated of the latest developments, and just yesterday they announced the forums. And it’s not just that they create these mechanisms – they actively participate in them, and give us detailed information about what is happening on their side. One great example is this blog post in which they describe the evolution of their “recurring task” dialog, their design criteria, and show all the different attempts until they found the perfect one. Very rarely does one get to see this “behind the scenes” process, and to me it inspires trust that these guys really care about their users, and really want to make their product a good one. They are building a very nice user community, and this is one of the best things to which a software product can aspire.
Another nice thing is that the Things database is stored as an XML file. Although I have not played with it much yet, this should make it relatively easy to do interesting things with it, such as displaying it online, formatting for different purposes using XSL transformations, or maybe even automatically augmenting it with information collected from different places.
So what’s missing from Things at the moment? Notably:
- Printing (you can print, but the results are not pretty)
- iCal/iSync synchronization. This is essential – with iGTD I was able (for example) to create a new task on my cellphone, and have it synchronized back to iCal and from there to my Inbox for processing. It would be nice to have this ability back.
- Things is not completely navigable using the keyboard – for example, there is no shortcut for creating a new project, and you can’t even assign one using the system-wide Keyboard shortcuts facility in the Keyboard preference panel, because there is no menu entry for that action, it exists only in an action menu inside the Things window.
- No AppleScript support yet, that I can tell. This is really important for even better integration with the rest of the system.
I really like Things. I had to develop a certain amount of discipline to maintain the appropriate tags, but once I got used to it, Things became an integral part of my workflow. It ties nicely with all the main applications I use (Mail, Safari, Journler), it is beautifully designed, and the development team is responsive and open. I have used it exclusively as my task management application for almost three months, and I am still excited by it and its possibilities.