2008/02/06

To-Do management: “Things”

The bane of productivity is multi-tasking. Context switching in your brain slows down pretty much everything you think about and can make it impossible to dig deep into the hard problems. That’s why Richard Stallman doesn’t use a web browser and Don Knuth doesn’t even use email.

But multi-tasking is pretty damn addictive. It’s not something that most people have the will-power to give up — nor would they want to. Outsourcing your memory to a computer is an easy step to free up some mental capacity for problem solving.

Now, I’ve never been much of a ‘diary’ person to keep track of things I have to do. Generally my brain’s been good enough for most things. The extent of the project management in my various endeavours has been a flat list of flagged emails in Mail.app. One obvious problem with this is that tasks for which I don’t receive email don’t receive as much attention. And the non-hierachical system I set up makes it easy to lose the one important one you’re looking for in a big list. (For similar reasons, Mail and iCal’s revamped To-Do list in Leopard is not really the answer to my problems.)

This is one of the reasons I’ve never had a very good system for organising my long-term goals. Especially for my PhD, to be honest. However, with my new, ubiquitous, MacBook, I’ve the liberty of exploring software to address this personal deficiency of mine. Judging by the plethora of software that’s emerging in this space, I’m not the only one.

Now, ages ago I once used OmniOutliner to try and keep something of a project management ‘outline’, but it’d didn’t stick so well in my mind; it’s pretty essential that the application that you put all your forward-thinking thoughts into is easy and enjoyable to use. If there’s any mental burden just to get started, it will never survive as a long term commitment. Bearing this in mind, let’s look at the first app that I’m trying out as a candidate to fill that particular gap in my brain: Cultured Code’s “Things”.

First thing’s first: I’m not a fan of the name. It’s about the least Google-able name of any software ever. People are already resorting to calling it ‘Things.app’ just to be able to differentiate it from, well, normal sorts of things. But it’s certainly a name that strikes a chord amongst Mac users because it sounds like a name that Apple itself would use.

They claim this is an alpha-release preview; despite this, the interface is quite polished and the application seems very stable. Having said that, I do hope that some refinement to the interface is made to simplify it some more.

But let’s start off with the good things. The killer feature of this program is being able to set repeating schedules of To-Do items. I’ve been wanting this for as long as I can remember. “Mop the floor” repeat every second Sunday. Chores are the very first thing that I forget/neglect to do when I’m having a Sunday at home. Note, however, that this feature doesn’t exist yet. But I’m predicting that it will be awesome based on their recent comments on the feature.

Second up, the workflow of the program has been exceptionally well design; adding and deleting To-Do items and projects is as easy, often, as hitting the space bar. There’s also a system-wide heads-up display from which you can add a To-Do whenever. And did I mention that the program is very attractive? Fluid to use and handsome looks makes an app that you like to spend time, or ‘nest’, in. So far so good.

Now the application gets a little complex to describe in words. To-Do items themselves can be arranged in terms of their focus: today, next, later, and postponed. This is a good breakdown, I feel. Granular enough to segregate the items that don’t belong together, but coarse enough that you don’t lose items in categories that are too fine.

This is the first layer of metadata that can be assigned to To-Do items. The second layer of metadata that “Things” gives are: projects and areas. A project is something to be completed that requires many To-Do items. An area (of expertise) is the broad categories that your projects fall into. I might be using “Things” to track my both PhD and Typesetting work, which each have various projects attached to them.

Here’s the kicker: each project can only belong to a single area of expertise, and yet in the organisation of the application, projects and areas are treated roughly as orthogonal. Take a look:

things-dupl.png

In the sidebar there’s a list of projects in an ungrouped list. In the main window, the same information is presented but this time divided into categories.

In my opinion, this duplication of information reveals an underlying flaw in the interface of the program. Projects should exist as sub-categories of Areas, which would help keep the projects logically separate in the sidebar and eliminate the redundancy — while simplifying the interface.

In brief, here is the current design in full ASCII glory:

ORGANISE
  ▾Projects
    WSPR 
    Thesis
    Experiments
    LM fonts
  ▾Areas
    Web
    Chores
    PhD
    Typesetting

And here is my proposed design:

AREAS
  ▾Web
    WSPR
  •Chores
  ▾PhD
    Thesis
    Experiments
  ▾Typesetting
    LM fonts

This efficiency of the list is only slightly improved, but the duplication of information in the main window is no longer necessary. Fewer equivalent ways to view data equals less confusion.

One of the reasons this interface should be simplified is because there’s a third layer of metadata that can be applied to all of these To-Do items: Tags. These provide an arbitrarily extensible way to group To-Do items into smaller and smaller sub-groups, if you so desire.

Tags allows you to filter items into arbitrarily granular (and non-exclusive) categories. A GTD-type approach is suggested to use tags for contexts like Home/Work/Phone/Whatever. (I’m not a GTD kind of guy, by the way.) Alternatively, it might be impractical to list every single Ruby script or LaTeX package you maintain as an individual project; tags allow you to do this without cluttering the interface of the main window.

I can’t do the tags feature justice with words, but suffice it to say that tags in “Things” are Done Right. And they will stay completely out of your way if you’d prefer to keep things simple. This is extremely important in hooking people in with a simple-seeming application that hides its power in its flexibility.

My only other complaint after a short time of using “Things” is the button bar at the bottom of the main window. I loathe buttons I can’t get rid of, even more if they’ve got labels that I can’t even hide. (For example, now that I’ve assigned Control+Space to quick-add To-Do items I guarantee I’ll never click that button ever again.) I think it’s very important to have scalable interfaces, where in this case the scalable refers to being able to hide away the complexity of unnecessary features after you’ve learned the shortcuts or decided to mentally pass on that particularly feature of the application.

To wrap up this mini-review, I’m optimistic about things. No, sorry. I’m optimistic about “Things”. Time will tell if the application is sticky enough for me to nest in it over time and create the extension of my brain that is really the goal of this sort of program. I think it will be. I’m hoping that with feedback from the community before the ‘v1.0’ release, things will only get better. Oh, sorry again. “Things” will only get better.