Part 1 — Capture describes how I capture tasks and Part 2 — Processing how I process and tag tasks in RTM. In this post I redefine my contexts to match.
Contexts Redefined
The doing part of GTD is supported by what David Allen calls contexts. A context groups tasks with similar constraints so you only see what you can do right now. The concept is timeless, but GTD was originally published in 2001 and what makes for a useful context has evolved. The classical GTD contexts were distinctions like at home, at work, out shopping, by the phone, etc. But I always have a phone in my pocket, so “by phone” makes less sense — and when that phone has ubiquitous internet access “by computer” becomes similarly meaningless.
I had over-indexed on this change and jumped to the conclusion that locations were no longer important contexts. My (over-simplified) thought process:
If I leave work early for an afternoon appointment near my house it’s more productive to start working again at a coffee shop or in my living room than it is to drive back downtown.
That’s true, but Starbucks is not the office, and there are things I simply can’t do remotely. Eliminating locations had gone too far. I was frequently staring at “work” context that was half-full of tasks that could only be done in the office — but I wasn’t actually there.
The fix started with changes in how I process. As a refresher, I now use the following locations and tags: @house
, @yard
, @office
, @junction
, @other
, #quick
, #personal
, #work
, #pc-only
, #phone
, #waiting
, and #maybe
.
The rest of this post shows how I use this metadata to define a new taxonomy of contexts that more accurately reflect what can be accomplished now, for various useful values of now.
Smart Lists
I started with an a priori list of contexts and a short description of what I wanted each of them to achieve:
- Home - quick Quick, personal tasks I can do when I’m home. I use this context when I only have a few minutes or when I’m feeling too unfocused or tired for a larger project. It helps me check off necessary busy work during interstitial time, which frees up larger time blocks for more substantial tasks or just relaxing.
- Home Same as above, but not limited to quick, shallow tasks.
- Yardwork Tasks I can only do outside when it’s nice. This context is especially useful for ensuring yardwork stays out of my home contexts during the Seattle winter,1 when the days are short and there’s lots of useful evening time after sunset.
- Office - quick Analogous to the home - quick variant and most often used when I only have a few minutes between meetings.
- Office Don’t over-think it. I use a single list for all my work tasks.
- Errands Anything I have to do at a specific location that’s not my yard, house, or the office.
- Personal This is one of the new ones that’s been really useful. These are personal tasks I can do anywhere.
- Work Similarly, work tasks I can do anywhere.
- Weekly Review A special context I use during my weekly review.
Smart list logic
Based on those criteria I built a table to visualize what mapping of locations and tags would get the results I wanted.
Then I used this logic to build my contexts. I immediately noticed most of the contexts shared a base
set of logic, shown below in RTM smart list syntax:
NOT list:agenda
The agenda list contains non-urgent things I need to talk to specific people about. I use it as a mini-context if I happen to be talking to that person and check it during my weekly review to make sure nothing languishes too long. Otherwise, I want it hidden.NOT list:inbox
Suppresses un-processed tasks to enforce the separation of processing and doingNOT isSubtask:true
This lets me use RTM subtasks as checklists for things I don’t want to show up as individual tasksNOT tag:pc-only
This tag was only allowed in two contexts, so I made it part of the base context template.NOT (tag:waiting OR tag:maybe)
Like agenda, waiting and maybe tasks are looked at in the weekly review.(dueBefore:now OR due:never)
Suppresses tasks due in the future without hiding tasks with no due date at all.
With this base logic, creating the rest of the contexts was simple. Each one got its own smart list and needed only minor syntax changes to implement. I make heavy use of the NOT
Boolean operator so that contexts filter out tasks rather than include them. This helps ensure an improperly processed task will show up somewhere and lets me not tag things by default.2
- Home - quick 3
tag:quick
to only include quick-tagged tasks,NOT tag:work NOT tag:pc-only
,AND (isLocated:false OR location:house)
to show any task with an@house
location or no location at all. - Home 4 same as above, but without
tag:quick
. - Personal 9 same as home but requires
isLocated:false
. This filters out tasks I have to do at my house. - Yardwork 5 is the base plus
NOT tag:work NOT tag:phone AND location:yard
- Office - quick 6 same as Home-quick except
NOT tag:personal
,AND (isLocated:false OR location:office)
. - Office 7 same as above, but without
tag:quick
- Work 10 same as office, but requires
isLocated:false
andNOT tag:pc-only
. This presumes my work PC is in the office and filters out those tasks and others that I have to do at the office. - Errands 8 base logic plus
NOT tag:phone
andAND isLocated:true NOT (location:house OR location:yard OR location:office)
to include any task with a location except for house, yard, or office. - Weekly review 11
(tag:waiting OR tag:maybe)
to review if it’s really still waiting or on the someday/maybe list(list:agenda OR list:inbox)
to review if new tasks are needed
Making it all work
This is all kind of insane of course, but unlike processing, which happens multiple times a day and needs to be simple, building contexts is a more one-off activity worthy of a time investment. In practice, the major benefit was creating the home/personal and office/work distinction. I’ve also found surprising value in the quick tag. Having a short list of short tasks helps me focus on things I can actually accomplish during the otherwise useless down time between scheduled events.
Many thanks to Ben Elijah (@inkandben) and The Productivity Habits for inspiring me to update my RTM system and write this series of posts.
-
From about 8 am to 4:20 pm on the winter equinox. ↩
-
The footnotes after each context have the full smart list syntax. ↩
-
NOT list:agenda NOT list:inbox NOT isSubtask:true AND tag:quick NOT tag:work NOT tag:pc-only NOT (tag:waiting OR tag:maybe) AND (isLocated:false OR location:house) AND (dueBefore:now OR due:never) ↩
-
NOT list:agenda NOT list:inbox NOT isSubtask:true NOT tag:work NOT tag:pc-only NOT (tag:waiting OR tag:maybe) AND (isLocated:false OR location:house) AND (dueBefore:now OR due:never) ↩
-
NOT list:agenda NOT list:inbox NOT isSubtask:true NOT tag:work NOT tag:pc-only NOT tag:phone NOT (tag:waiting OR tag:maybe) AND location:yard AND (dueBefore:now OR due:never) ↩
-
NOT list:agenda NOT list:inbox NOT isSubtask:true AND tag:quick NOT tag:personal NOT (tag:waiting OR tag:maybe) AND (isLocated:false OR location:office) AND (dueBefore:now OR due:never) ↩
-
NOT list:agenda NOT list:inbox NOT isSubtask:true NOT tag:personal NOT (tag:waiting OR tag:maybe) AND (isLocated:false OR location:office) AND (dueBefore:now OR due:never) ↩
-
NOT list:agenda NOT list:inbox NOT isSubtask:true NOT tag:PC-only NOT tag:phone NOT (tag:waiting OR tag:maybe) AND isLocated:true NOT (location:house OR location:yard OR location:office) AND (dueBefore:now OR due:never) ↩
-
NOT list:agenda NOT list:inbox NOT isSubtask:true NOT tag:work NOT tag:pc-only NOT (tag:waiting OR tag:maybe) AND isLocated:false AND (dueBefore:now OR due:never) ↩
-
NOT list:agenda NOT list:inbox NOT isSubtask:true NOT tag:personal NOT tag:pc-only NOT (tag:waiting OR tag:maybe) AND isLocated:false AND (dueBefore:now OR due:never) ↩
-
(tag:waiting OR tag:maybe) OR list:agenda OR list:inbox AND (dueBefore:now OR due:never) ↩