March 10, 2006
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:
- 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.
- 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".
- 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!