A Two-Context Approach to GTD with OmniFocus

With versions available for both iOS and OS X, OmniFocus is the most powerful task management system intended for individuals on the Apple platform. OmniFocus is highly configurable, allowing the user to tailor it to their own particular approach to GTD (Getting Things Done). Until recently, I’ve struggled with identifying an ideal approach to using OmniFocus for task management. The solution I settled on is described in this post.

The core GTD principles

The first principle of GTD is capture—i.e. getting things out of your head and into a place you can rely on to keep them safe while they wait for later processing. This principle applies equally to everyone.

A second principle of GTD is the separation of tasks by context, and it is here where much of the discussion regarding various approaches to GTD is (rightfully) focused. Some people contextualize their tasks around physical energy levels (high, low), some around where tasks can be done (home, office, computer, on the phone) and some around task nature (work, personal, errands). I’ve experimented with all of these, and ultimately they all fell short.

My task management objectives

The problem starts with capture. Since the objective of capture is keeping your head clear, the process results in my inbox containing two types of tasks—those I will do, and those I might do.

Of course there are other dimensions in which you could classify those tasks, but over time, I’ve discovered that the effective separation of these two has the most impact, for me, in making GTD actually work.

The challenge then has been identifying a GTD approach that:

  1. Shows me what I will do, without cluttering that view with things I might do.
  2. Allows me at any time to see the things I might want to do, and within the context of a particular project.
  3. Ensures that I’m periodically reminded of the things I might want to do.

To achieve those objectives, here are the tools provided by OmniFocus which affect the visibility of tasks.

  1. Perspectives, OmniFocus’s configurable task views, determine task visibility primarily through the “Availability” settings—“Available” or “Remaining”. (Perspectives can also filter on due dates; but due dates aren’t really relevant to whether a task will or might get done, as usually a task with a due date is something that will get done.)
  2. A Project’s status can be set to “Active”, in which case its tasks will be visible in both “Available” and “Remaining” perspective filters, or “On Hold”, in which case its tasks will only be visible when filtered on “Remaining”.
  3. A Context’s status can also be set to “Active” or “On Hold”, with the same affect on visibility in perspective filters.
  4. A “Defer” date can be assigned to a task. If that date is in the future, then the task will only appear in the “Remaining” perspective filter, and not when filtered on “Available”.

Failed approaches

In the past, I tried to contextualize my tasks into “Work” and “Personal”, and then separate what I will and might do through the activity setting available to projects, e.g. using an on-hold project called, “Someday/Maybe”. The problem with that approach was that that single project contained tasks relevant to a variety of other “real” projects, which made it difficult to achieve my second objective—allowing me to see what I might want to do—within the context of a particular project.

So I tried to address that problem by creating on-hold “Someday/Maybe” child projects within each of my real active projects. But as you can imagine, that became unwieldy and maintenance-heavy once the number of real projects grew to any sizable amount.

I also tried creating an on-hold context called “Someday/Maybe” as a child context within each of my “Personal” and “Work” contexts, but eventually came to realize even that resulted in too much confusion and complexity in both initial context assignment, and when needing to change a given task—or group of tasks—from things I might do to things I will do.

I tried several other approaches as well and the result was always the same—either through over-complexity or incompatibility with my three objectives, OmniFocus wasn’t effectively helping me to get things done.

My solution

Realizing that in practice I didn’t actually view my tasks by “Work” and “Personal” contexts very often, even though I had organized them that way, I decided to try a simpler approach, consisting of only two contexts, the purpose of which is to answer the question, “Is this something I will do, or something I might do?”:

  1. “Active” (with status, Active)
  2. “Maybe” (with status, On Hold)

Now, when processing, organizing and managing tasks, I ask myself only two questions:

  1. What project should this belong to? (Project assignment)
  2. Is this something I will do, or might do? (Context assignment)

Here’s how that simplification fits into the core of my GTD approach.

Weekly review process:

  1. Each Sunday, I use OmniFocus’s “Review” feature to review each of my projects. When reviewing a project, OmniFocus shows you all of its tasks, regardless of availability. This satisfies my third objective, i.e. making sure I’m periodically reminded of the tasks I might do.
  2. I may change the context of some tasks from “Maybe” to “Active”, if I’ve decided they will get done.
  3. I “flag” any “Active” task I want to work on during the following week.
  4. I’ll assign a future “Defer” date to any task that is “Active”, but which I know I won’t get to in the near future. For example, the task “Follow up with Steve”, if I know Steve is on vacation for the next two weeks. (This supports my first objective, seeing only those tasks which are currently relevant.)

Custom perspectives:

I have three core custom perspectives in OmniFocus which I access on a daily basis:

  1. “Active”—shows flagged and due tasks. This is what I look at to determine what to work on, today. This supports my first objective, i.e. quickly seeing just those things I’ve decided I will work on.
  2. “Worklist”—shows all “available” tasks, grouped by project. This is my global list of stuff I’ve decided I will do, without the noise of what I might do, and therefore also supports my first objective.
  3. “Maybe”—that shows all “remaining” tasks, grouped by project. This supports my second objective, i.e. at any time being able to see the tasks I might want to do, in the context of their relevant projects.

This approach to GTD and OmniFocus has resulted, for me, in a task management approach that is powerful enough to meet my objectives while remaining simple and efficient enough that I actually follow it consistently—and results in the feeling that OmniFocus helps me to be more productive.

Annex: Perspectives

Someone in the comments asked to see details of how the custom Perspectives are defined. Here they are:

Updates

  • 2015-12-02 Tyler Hall (maker of VirtualHostX) extended my method with one additional context, “must do”, in order to add an element of timeliness and urgency. I can sympathize that, but I’m afraid that if I tried that approach, I’d end up experiencing friction between the use of that context and “will do”. It’ll be interesting to see how Tyler gets along in his adaptation!

28 thoughts on “A Two-Context Approach to GTD with OmniFocus”

  1. I have a question about your contexts. If your “Active” context tasks always have a status of “Active,” and your “Maybe” tasks always have a status of “On Hold,” then why use contexts at all when the contexts are redundant of the status attribute? I like your approach, but it seems to me that you could use the Status attribute in lieu of the Context attribute, not in addition to it.

    1. Hi CJ, when you say that the contexts are redundant of the “status attribute”—the status attribute of what? The status attributes available on the task level are “Active” and “Completed”. The notion of “on hold” is only relevant to projects and contexts. Make sense?

  2. I’ve implemented your solution, and I like it. The only thing I would add is a WaitingFor context for tasks that are out of my hands, since they fall outside of the “I will do” or “I might do” paradigm. I have a WaitingFor perspective for that context only, which I review during my weekly review. I set a defer date to reflect when I consider the item receivable, and if it’s time-critical, I also set a due date so it pops up on my Active list (and forecast).

    1. Hi CJ, I also used to use a WaitingFor context, but then decided to drop it in favor of exclusive use of OmniFocus’s Defer feature. WaitingFor activities are (in my experience) nearly always associated with things I need to do, and setting the defer date to the future serves the purpose of getting them out of sight until they’re receivable. What I miss by not having a WaitingFor context is an easy way to look at everything I’m waiting for together, but that for me was an acceptable trade-off of eliminating an extra context to manage.

  3. Hi Matt,

    Love this approach. After many of my own, I was happiest with the Eisenhower matrix (contexts: ‘manage’, ‘focus’, ‘delegate’ and ‘Later’). But that got me confused in the end because of the overlap with the other parameters available to pinpoint a task – due and defer-dates, flags, projects and such.

    So away with confusion! Just one drawback: no more searching for the perfect system.

    Thanks and regards,

    Rob van der Laak

  4. Matt, great article!

    One small request – could you share the details of your perspectives for those of us less familiar with this feature?

    Thanks, Vic

    1. Yes, I have a folder hierarchy. It begins with concern — e.g. Personal, RaceSplitter, Rego, etc. Then each of those includes two folders — Areas and Projects. Areas include things like “Marketing”, “Business Development”, etc. And then Projects contains the active projects, e.g. “RaceSplitter 2”.

      Hope this helps.

      1. Great article and workflow, I really like your simplistic approach and I’ll try building my system on your foundation. You already mentioned a rough outline of your project/folder structure but it would be great to get even more input on that subject. With the split into Areas and Projects, do you also have projects in “Areas” or just single action lists? The term project confuses me here a bit. Jan H.

        1. I have projects in Areas. For example, we might have a long-term engagement with a customer “ACME Apps”, and I’ll have a project in Areas for that, that include things like a recurring task to just call them and catch up on things. Then, I might have a specific Project related to them stored in Projects area—for example, “2017 Website Update for ACME”.

          Hope that helps.

  5. Nice idea. I have used the personal and work contexts for a while. I like this idea a lot.

    The only challenge I have is that I LOVE using contexts to assign with people. I still might do that part. Thanks for this simple refresh!

  6. Nice idea. I have used the personal and work contexts for a while. I like this idea a lot.

    The only challenge I have is that I LOVE using contexts to assign with people. I still might do that part. Thanks for this simple refresh!

  7. Hmm.. I don’t like the idea of having “maybe’s” in my Omnifocus at all. Let’s say I may want to clean the coffee machine on Saturday, but not sure I’ll get to it. Then I would rather create a task called “decide whether or not to clean the coffee machine”, and defer that to Friday evening, as by then I will have a pretty good idea about how my Saturday looks. To me, THIS is GTD. Even if I do not end up cleaning the machine, I will definitely make the decision.

    So the two-context method is not for me 😉

  8. Regarding the Maybe perspective, is there a way to automatically have it view ONLY the items one might do? Unless I click on the Maybe context, it shows all the “might do” tasks along with the “active” ones. Not a big deal, but for the sake of neatness, it would be good to show only the things I might do.

    EDIT: Interestingly, the iPhone app has a “select contexts” option so I can choose the “Maybe” context only. The desktop app doesn’t seem to have this function.

  9. Hey Matt, I am starting with omnifocus 2 (which is my candidate to replace Things for several reasons). And, I really liked your article but I can’t resist to ask you what is your strategy two years after your article (2014). Sébastien L.

Agree? Disagree? What do you think?