Tuesday, April 19, 2011

Review: Getting Things Done and Remember The Milk

After setting up Gmail to get things done, I spent some time with the book.  I may be late to the party, as everyone seems to know the essentials already.

The gist of the GTD philosophy is to always stay focused on the next action which can be done on any given project.  Projects are defined liberally to be anything which consists of a series of one or more actions.  For example, renewing my driver's license is a project with at least three steps:  find out what documents I need, gather the documents, and finally go to the DMV.  Since each step depends on those before, at any point in time only one action can be taken.  On the other hand, clearly some projects have many actions which can be taken in parallel.

The premise is that it doesn't make sense to keep all those non-actionable items on your mind.  They should be waiting in the wings until you can act on them.  Once you consider only the actions you can take now, you can stop worrying quite so much.

Getting your projects into the system is a process:

Collecting:  Collect every email, piece of paper, magazine, or other object relevant to a project or just reminds you of one into one place, your inbox.

Processing:  Determine the projects and next actions associated with each object in your inbox.  If there is no relevant project, then the object is trash or should be filed as reference material.

As you process, and also as you regularly review your projects, you can decide among the following options:

  • Drop it:  It's not important.
  • Do it:  If the next action takes under two minutes, just do it.
  • Defer it:  File it away for the future.
  • Delegate it:  Hand it off.

Alternatively, the next actions are noted, and it stays with you.

The natural extension then is to track also the context of next actions.  After all, actions may have constraints other than dependencies on other actions.  For example, when renewing my driver's license, gathering all the required documents is really something that must be done at home.

I found in my short experience the Gmail GTD solution was inadequate.

First, superstars are not supported in the Gmail Android application.  This leaves me unable to process emails as they arise, which is disappointing.  Second, my email does not map well to actions or projects.  I receive emails from bug trackers, so I may have three different email threads each with useful information, but for which I only have one action.  Third, I have a substantial amount of work outside of email.  I have to find a way to track that in any case.

I have abandoned the Gmail GTD system, and now use the Priority Inbox.  I have resigned to keep track of projects outside of email.

So I have been experimenting with GTD in RememberTheMilk.  I haven't strayed far from the linked post, but I will describe what I'm doing.

In RTM, there is an Inbox list, which serves the role of the GTD Inbox.  If I cannot process an idea immediately, this is where it waits.  Usually the Inbox stays empty.

I have two lists p-Daily and w-Daily where I put actions for projects which only consist of one or two actions.  The "p-" prefix is for personal tasks and the "w-" prefix is for work tasks.  For example, I have a recurring task in "p-Daily" which reminds me to blog.  I also have an "l-" prefix for lists of things which are not in the GTD system, e.g. groceries.

For each project consisting of many actions, I have a separate list.  For example, I have a list "p-License" to track the task to renew my license described above.  In each of these per-project lists, I create a task with priority 1, which means it shows up at the top and highlighted, saying exactly what the project is.  It should be something well-defined (i.e. it should be easy to know when it is done).  This project-defining task is treated specially, not tagged.  When I complete the project, I remove the priority 1, and complete this task (and archive the list).

For all other tasks, I have the following tags:

  • na - this is a next action
  • @computer - this task needs a computer
  • @internet - this task needs internet access
  • work - this task is for work
  • wait - this task is waiting on something

And I have the following locations:

  • @home - my home
  • @work - my work

All tasks are be assigned to a location if relevant and tagged with one or more tags.  I set time estimates for all tasks.  I set due dates for tasks which need to be done in a certain timeframe, or just soon.

Finally, I have some smart lists for contexts:

  • @Braindead = tag:na AND timeEstimate:<60m (easy tasks)
  • @Computer =  tag:na AND tag:@computer
  • @Home =  tag:na AND location:@home
  • @Internet = tag:na AND tag:@internet
  • @NoComputer = tag:na AND NOT tag:@internet AND NOT tag:@computer
  • @NoInternet = tag:na AND NOT tag:@internet
  • @Work = tag:na AND (location:@work OR tag:work) AND NOT dueAfter:"2 weeks from today"

And I have some smart lists for reports:

  • [Overdue] = tag:na and dueBefore:today
  • [PersonalStatus] = completedWithin:"2 weeks of today" AND NOT tag:work
  • [Today] = tag:na and (due:today or due:tomorrow)
  • [WorkStatus] = completedWithin:"2 weeks of today" AND tag:work

And I have a smart list of all actionable tasks:

  • All Tasks = tag:na

The search operators are very flexible and you can find a full list of them here.

I use the A Bit Better RTM Chrome extension to tweak the web interface which adds a keyboard shortcut (Ctrl-m) for moving tasks between lists, and the RTM Readable List user style which darkens and enlarges the list font.  On the go, I use the wonderful RTM Android application.

I've been using this for a few weeks.  I think it works.  :)