After listening to the past few episodes of "Back to Work", in which Merlin Mann has touched on many of the core principles of GTD, I felt inspired to share my implementation of the system using my favorite tool, OmniFocus. My system relies, at a high level, on these three key elements:
- Flagged tasks to tell myself, "do (but not due) today",
- Start dates specify the date on which OmniFocus will tell me to do it, and
- Perspectives show me all of the things that OmniFocus is telling me to do, all in one spot.
Details, and screen shots for illustration, are below.
The Main System
When I flag a task, I am essentially telling my future self that as soon as this task is available, please do it. Artificial due dates have always rubbed me the wrong way; they manufacture needless anxiety and shame with being unable to complete everything that was "due" on a given day. Flags give a task significance without assigning it the emotional baggage of a due date. This also serves to increase the relative importance of the actual due dates; if tell that future me that something is really due, and not just that I want to do it, it's far more likely to grab my attention than having a dozen imaginary fires to put out.
It follows from the above that I need a different way to give my tasks some sort of time/ date context than using due dates. For this, start dates work well enough; the task is not available until the start date I set, meaning that I am not overwhelmed by flagged items on a day that I don't have time for them.
Most of my projects are sequential (I just learned that you can actually change the default to all new projects and sub-projects being sequential. Just head over to
OmniFocus > Preferences > Data > Projects & Action Groups, and hit the appropriate radio button). This helps to make my system even smarter: when a task is not the next action in a sequential project, it is marked as unavailable and will not show up in the list of things I'd like to do. As soon as the previous task is checked off, the task is already flagged and becomes available, adding it to the list of things I'd like to do today.
This works particularly well for tasks that follow a "Waiting For" (for example, sending an email, then waiting for a reply, and then sending that reply to whoever needed the information); the "Waiting For" tasks is not flagged, so it doesn't show up on my list of things to do, but as soon as it is checked off the next (flagged) task pops up on the list. A typical project, then, looks like the one below, with different stages at which I will be "waiting for" something and subsequent tasks that I will accomplish as soon as they are available:
I also have a perspective that looks at all available tasks with a "Waiting For" context (that is, tasks that are actively holding up a project), which I review regularly:
The Key: A "Today" Perspective
Finally, I need something to group together all of the things I have said I would like to do as soon as they are available, and whose status actually is available. For this, I use a perspective: "Today".
Mac task management application connoisseurs (a fun bunch) will doubtlessly think of Things upon seeing this perspective (I even use a star to represent the context, as they do in Things). When I used Things, I loved having this view, and the entire process above largely developed as a result of trying to mimic some of Thing's functionality. The perspective grabs every task that is available and due or flagged, and groups these by context to make it easy to do related tasks quickly.
Every day, I open up this view 1, check what I have told myself I'd like to do, and defer anything to the future or rework the project if something isn't quite right. Then… well, I do the things on the list.
Every time I set up a new project or single action, I'll flag it and set a start date so that it shows up on my list when I expect I will want to do it. This pushes me to plan well, it keeps me pushing forward on all of my projects, and prevents projects and tasks getting lost amongst one another.
There are a lot of moving parts to the system, with the above being the main mechanism by which I actually get things done. Below are a few more details which, while not as important as above, are still critical parts of my system:
- In order to keep these things moving as swiftly as possible (and to reassess projects as soon as there is reason to do so) I do nightly reviews when possible.
- Many of my tasks come in by clipping from Mail.app and from websites I'm currently visiting. To speed up these processes, I've made macros that automatically select the URL (for Safari) initiate the clipping service, and closing the clipping dialogue box.
- My contexts are primarily device- and location-based, or are a "Waiting For". I have a context for each of my devices and an "Any Computer" context for things that can be done anywhere. I also have a context for every location that I visit regularly and general location contexts for things like department and sports stores. Finally, I have a "Waiting For" context for every person I frequently need information or action from.
- My projects are arranged into folders according to my Areas of Responsibility (in GTD parlance): School, SBSS (the student organization for which I am the VP Finance), Work (currently, I TA four university courses, so I have a subfolder for each), Personal, and this site. You can see my Project setup below2.
My system is always evolving. It's the hallmark of the online/ geek/ GTD community, I think, to see their tools as a never-ending work in progress. The whole thing is detrimental in many ways (and often eliminates many of the gains of using a program like OmniFocus altogether), but I indulge in it anyway. In fact, I am working on a (hopefully) "Hypercritical"-level analysis of the shortcomings of OmniFocus, plus mockups of interface ideas for my ideal "OmniFocus 2". Look for it in the New Year!