Implementing GTD with vim, remind, and grepThe initial segment on my adventures with setting
up Getting Things
Done. I have big plans for this as it is a
gold mine for integration of a number of unix tools into a personal information
system that is starting to work for me.
I have been working on my personalized version of
the Getting
Things Done (GTD) system. After a
couple false starts I think something is starting to work for me. Interestingly,
this all started from listening to the GTD book on my iPod. That got me going,
but trying to implement the system from my memory (or manually searching on the
pod - which meant basically relying on my memory) translated into a pretty poor
implementation. So I bought the book, reread it and have it handy to redo my
implementation. I've also been drawing on insights from the excellent 43 folders. The result of all this
is that I'm now hooked on using GTD as I'm clearly getting a number of benefits
from it. Here I describe how I currently have things set up. This is a moving
target so I hope to continue to track the evolution of this system on this blog.
You can parse my system either from a tools perspective or a functional perspective. TOOLS At the highest level my system can be decomposed into two sets of tools: digital and paper Digital Components I work at three different locations (office, home office, out and about) so for the digital component of this system it is necessary to mirror my setup on all the machines (desktops, laptops, portables) that I work on. This goal has meant relying on tools that are cross-platform. Not a problem given the richness of open source tools out there. Currently my GTD system relies on the following tools: vim, vim outliner, grep and remind. All my lists are saved as flat text files in Vim which has a number of benefits:
To edit my lists within Vim I make heavy use of the The Vim Oultiner (TVO). Lends itself nicely to making subprojects in the projects list. My calendar used to reside on iCal, but this turned out to have a couple of contstraints. First, I'm a heavy user of desktops on Mac Os X and use Desktop Manager for these purposes. I would have iCal up and running on one desktop which mean when I needed to look something up (say while responding in an email to someone about scheduling a meeting) I would have to switch desktops to peek at my calendar. Workable, but not all that efficient. Since I also make heavy use of the Terminal, as well as iTerm, I thought I'd give remind another look as I had used it on Linux boxes and found it very flexible, stable, and hackable. So after a few days of playing with remind, I've dumped iCal and now have all my calendar appointments in remind. This means my calendar is always accessible in a terminal on whatever desktop I'm currently on. Adding things to my calendar is also a simple alias to use cat to dump stuff in. For example: alias ap='cat >>~/.reminders' is in my .bashrc file, so that when I need to enter a new appointment into my calendar it is as simple as: serge@tibook:~$ ap REM Dec 29 2004 AT 12:00 MSG Grades due. A Control-D after entering that line then appends the appointment to my .reminders file. That is the file that is parsed by remind to render my calendar. Paper Components The GTD system makes heavy use of (paper) folders, and I find that despite some initial resistance on my part to this, once I started following this I came to really like this. So I use the 43 folders (actually 86 as I have the same setup at both home and work), 31 being numbered 1-31 and twelve being labeled for each of the months. These constitute the tickler system and I find this to be very handy as items that I need to be reminded of down the road (i.e., trips, tickets, hotel reservations) all can get dumped in either the folder for that date (if it is upcoming in the current month) or the folder for the month it is associated with. This has been a blessing for me as I use to continually forget what pile/drawer/folder/desktop/you-name-it I had put stuff in. The other class of folders are for reference. Here again, I had some initial reservations about going to a simple A-Z organization of my reference folders as I was hesitant to mess with my existing paper filing system which functioned as follows:
As you can gather, my existing system excelled at the collection phase of things but was a train wreck when it came to retrieval. So I bit the bullet and spent an entire day pulling all my old folders out onto my office floor and ruthlessly going through them to either dump stuff that I no longer needed or to file it according to a simple A-Z system. I probably dumped about 50% of the stuff I had been accumulating over the years and I found that there were a lot of instances where I had multiple copies of the same item in different folders. The "purge" took about 2 days but has been well worth it. I know where things are now. In addition to the new A-Z system I also picked up a labeler to type out the file labels. At first I thought this was overkill and a symptom of the geek gene kicking in (hey a new toy) but have found that my handwriting can an adventure to parse at times and these labels are much easier on the eyes. FUNCTIONAL PERSPECTIVE The tools part is what I think attracts the typical geek to the GTD system. Speaking for myself, setting this up provides an excellent chance to endlessly tweak and play with toys, hence the attraction. Truth be told, however, the system really only works if you actively engage with it from a behavioral perspective. That is you have to make it part of your daily routine to reap the benefits. That brings us to how I've changed my routine to get the functional aspects of GTD going. On a daily basis I do the following:
These three steps are a safety net to ensure that I'm capturing items into my system - the goal being that once I capture it I should no longer have to have that little voice in my head chirping up annoying reminders about stuff I need to do. Quieting that voice has been one of the biggest benefits for me. In addition to the daily routine, I also schedule a 2-hour weekly review. The purpose of this is to review the projects list to see what the status of things are across all my commitments. This serves to address the horizontal integration of the system. FUTURE PLANS I have some pretty loose ideas about how to extend this, and there are some pieces I've not covered here. More to come in future entries. Posted: Sat - December 11, 2004 at 09:03 AM |
Quick Links
Calendar
Categories
Archives
XML/RSS Feed
Counter
Statistics
Total entries in this blog:
Total entries in this category: Published On: May 09, 2005 01:51 PM |
||||||||||||||