March 10, 2006

Getting Things Done

Getting things done - or not, as the case is here. I've been casting about for a 'task management system' to use, but haven't settled on anything. I'm going to use this post to explain what I'm trying to do, and what I've looked at so far.

There is a GTD cult out there, based upon the bestselling book, Getting Things Done : The Art of Stress-Free Productivity. Search the web for it, and you'll see plenty of posts, applications and ideas on how to use it. I don't have the book, but I like what I've taken to be the basic tenets of the process:

  1. As soon as you think of a project, get it written down and forget about it. Don't let your mind get cluttered up with a half-remembered ToDo list. Have a minimal number of ways to record these thoughts. One low tech way is to just carry around a stack of 3x5 cards, write down the idea and drop them into a box. The GTD groupies call it a HipsterPDA.
  2. Once a week or so, go through all your notes and categorize them, gathering them together into one place. Give the note a "context", something I'm a little unclear on, but what I choose to think of as a mindset. Usually, when you are thinking of what to do next, you have some general category of things you want to work on; say, for your job, work around the house, a computer project. This is what I call a "context".
  3. Second in importance only to jotting down the project is to decide on the very next action you need to do on it. I like to think of it as the most encompassing amount of work you could imagine doing as an atomic action. Something you are sure you will finish once you start. Around here, with two active kids, a dog, and lots of interruptions, that's a pretty small work unit!

There, that's it. Pretty simple stuff. And simplicity is an important selling point in any organizing process. Like working out, everything that complicates matters makes it less likely it will actually happen. So the process sounds very workable to me, and I like lists. But I haven't settled on a real process here yet.

To go along with the simplicity of the process, there needs to be simple data entry. Preferably, something very easy to learn, requiring few steps, and easy to get nice ToDo lists. I suppose I could handle a reasonable learning curve, if I felt the end result was going to be easy, but I'd rather not.

One Really Cool Technology that I've talked about here before is TiddlyWiki. This is a single HTML page (for better or for worse) that contains all your info and displays it in a very friendly fashion. I'm not sure why I find this work so fascinating, but I just love it, even if I haven't found a real application yet. There are a couple of nice looking GTD implementations: GTDTiddlyWiki Plus and MonkeyGTD. While the technology and the GUI are really neat, I feel the data entry is too clunky. I have to fire up my browser, click a few dozen times and enter in the data. A few too many steps, and I'll tend to let things slide. It does have a nice portability option, in that you can throw the HTML page onto a USB data stick, along with a simple browser, and you can look at it and enter data on any computer.

There are plenty of Windows-based note taking apps out there. I've mentioned a few of them in my web links posts. But they all have GUIs that I need to learn and are too tied to Windows and/or my computer. I just don't have the patience to learn them, or to integrate them into my own personal process.

I decided I wanted a simple text-based tool. I spend probably 80% of my time at the computer while in Emacs, a venerable text editor that has been expanded to do most everything. I like using it because it is available on many different platforms, and so I don't need to learn a new set of keyboard commands as I move from one platform (Windows) to another (FreeBSD) to another (Linux) to another (Mac OSX). It has saved me countless hours with its consistent UI. So I'd love to use something based on Emacs. It is always running on my computer (in the Startup folder) and has nice stuff like spell checking, indenting and the like.

But upon further investigation, I found two serious problems with a text-based GTD scheme:

  • The text markup is necessarily weird. You have to mark certain info as the importance, how long it will take, the context, etc. So you need to mark up the text, or flag it or something. And so it gets weird and ugly in a hurry.
  • It is hard to get a quick, easily digestible report showing what I need to do today. You have to go looking for a file or files, open them up, etc. And again, if there are too many steps it ain't gonna happen. And by too many steps, I mean like more than one or two things that I have to do.

One option available to Emacs is Planner Mode. It is a big Emacs package, with a ton of options and lots of possibility. But I found it hard to get started, the text markup was mysterious, and it just seemed like too big a deal. They make a big point about how flexible it is, but if you can't figure out how to use it, maybe it is too flexible!

Another option I've looked into is PyGTD, a Python-based script that parses text files and puts out a todo file. While the markup is a little strange, a few Emacs macros could fix that. But the process to go from adding a task to getting a nice ToDo report is too convoluted, with inconvenient output. Not sure how I can get a nice, easy to read report every morning. Plus I've run into a couple of serious bugs, like it seems to insert a bunch of blank lines at the top of each of my context files. And it is very very picky about the markup, even going so far as to be case-sensitive, so "T=1h" (for a task taking one hour), results in a strange stack backtrace from the Python interpreter. It's easy enough to fix, I guess, although I'm quite a Python-noob. But so far it is taking me more work than I want - I don't want it where getting a GTD process to work is the number one project! Still, it has some potential. I've already written a few Emacs things to make working with the files a lot easier, and can envision a bunch more. If I also wrote a simple program that read in my ToDo files and displayed them in a nice window, maybe that would fix the reporting problem too. But again, I have enough projects already!

So I still haven't found the perfect tool. I envision a perfect set up to be something like this:

  • Show up at the keyboard in the morning (luckily, as I work from home, my work keyboard and my home keyboard are the same!). Quickly generate a report, listing in descending importance, the tasks for my three contexts - Work, Home, Fun.
  • As I complete a task, make it very easy to remove it from the appropriate ToDo list. Maybe keep a record of it as Done.
  • Without needing any thought, make it easy to add a new project, or add another Next Action task to a project.
  • Easily add uncategorized projects as I think of them, or enter them from my 3x5 cards. A couple of keystrokes should generate a basic project or Next Action, complete with reasonable defaults.

So I'll probably continue to work on PyGTD, and see how that goes, until I find something better. Unfortunately, I think it isn't under development any more, which isn't surprising for a personal project. You get it working well for you, and that's where it stops. I think the last post on it was from January 2005, and my email about it went unanswered. Oh well, a chance to brush up on my Python skills, as I delve into the twisted, uncommented code!

Posted by jdarnold at 1:25 PM on life | Comments (6)

There's a blog called lifehacker ( that has "GTD" as one of its main topics. They do a pretty good job and don't have too many posts in a day.

Posted by: michael at March 10, 2006 3:27 PM

I have checked out LifeHacker a couple of times, but didn't subscribe to the blog. I will now. Be sure to check out their QuickSearches, which you can install into Firefox for keyboard shortcuts to searches.

Posted by: Jonathan Arnold at March 11, 2006 7:31 AM


I tried many of the online methods but eventually went back to paper. It seemed like the thoughts didn't stop when I was away from the computer, which created unmanageable gaps for me.

I'm now using a unique product called the Bubble Planner, which combines mind mapping and GTD. It has been working great for me the last few months. It is especially effective in helping me purge what's on my mind.

Hope this helps.

Posted by: Bill at March 15, 2006 3:30 PM

You seem to have gotten the main gist of GTD, but your view of contexts is a little off from the way they are presented in the book. Contexts are not mindsets, they are physical categories of actions.

For example, some contexts David Allen speaks about using are @phone, @computer, and @desk. if you keep your next actions segregated like this, you can look at just your list of your @phone context while away from your office and make the phone calls you need to make from the waiting room at the doctor's office, from your car, or anywhere.

Lifehacker had a great feature on using plaintext files for GTD (along with Unix/Cygwin grep and sort commands) just yesterday:

Posted by: Brad at April 13, 2006 7:32 PM

Thanks for the heads up. In fact, I talk about the posting in a more recent GTD post myself:

I'm not sure I'm wild about the context idea. It just doesn't seem to help categorize things that much. 50% would be "home" and 50% would be "computer", as that is pretty much the entire lists of "contexts" for me these days. I'm not one who uses the phone all that much, and there just doesn't seem to be too many other places I "do" things.

Posted by: Jonathan Arnold at April 13, 2006 8:51 PM

Well, us geek-types often have to have more finely-grained contexts since we spend so much time at our computers, i.e. @email, @websurf, @research...

However, I still haven't quite finished reading the book and I'm still working on finding ways to implement the system. Any suggestions I make at this point are mostly conjecture.

Posted by: Brad at April 17, 2006 11:16 AM

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for being patient.)

(will not be published)