posted: November 20th, 2007 · by: Sven
File this as either a bumbling, fingers-all-thumbs attempt at viral self marketing or the het up utterings of a developer playing with his latest mini pet project toy. ;-)
Ok, I love GTD. I’ve been addicted to it for about one and a half year now. I’ve read Dave Allens book more than just once and tweaked my implementation again and again, discussing with friends and collegues … and still I find myself helplessly stuck at times.
At the very least, over the time I’ve been able to identify quite accurately what requirements my perfect “trusted system” would meet and probably more importantly: what it easily could omit.
“For the most part, the applications that are specifically designed for project organizing are way too complex, with too much horsepower to really be functional for 98 percent of what most people need to manage.” — David Allen
I love my text editor!
As a programmer I spend a good portion of my time in a text editor. No! Not just in a text editor. It’s my text editor (year, it’s Textmate, nowadays). I’m so used to it that it might feel outright annonying to have to switch to any other editor just to edit some text in a crippled way.
Thus, any application other than my text editor would actually have to make a damn awesome job as a cornerstone of my “trusted system”, letting me capture and review my stuff. While I’ve tried quite a bunch of GTD targeted applications I’ve never run across one that I’d really love to use.
Instead I always switched back to my texteditor to foster my lists.
I love simple things!
Ideally I want my tagged action item lists to be embedded in larger-context project files with a headline, mission statement, some vertical planning, notes, ressources, … formatted the way I want. And I want them to be stored in an arbitrary directory structure alongside with other files like lists of ressources, drafts, code, … whatever (Dave calls them “support files”). In other words I want as much control as possible over how my GTD implementation looks like.
With my text editor I can have that. What document format would be more simple, flexible and powerful than a simple text file? Especially when I can store it in a filesystem that’s organized the way I want it and even more when I have a great find-in-files UI and can execute shell commands or Ruby code right away.
There’s quite some cool stuff out there!
When I ran across Taskpaper by Jesse Grosjean this summer I was tempted to give it a serious try, because I really loved its simplicity. But alas! … guess what, it turned out to be quite too limited for my needs and in the end its benefits didn’t compensate what I lost with switching to an additional application.
A while later I found Henriks Tasks bundle for TextMate and totally jumped at it. Since, I’ve been using it to highlight my “todo” files in a cool way and toggle their status with a single keystroke. Awesome.
But I’ve been still missing one thing that about every other GTD application naturally comes with: I can’t easily review all tasks/actions tagged with a certain tag!
(Of course I can search for all items tagged, e.g., as @work with the find in files feature, or even with grep or something. But that’s not the same thing like having a dedicated view for it like all the pure GTD apps have it.)
The perfect GTD implementation
It turns out that my “perfect” GTD implementation would allow me to do two things: use my beloved texteditor to organize my action lists in a very arbitrary way and still review my actions by tags easily. Also, I want things to be simple and stay out of my way.
Last weekend it suddenly stroke me that I could implement this “perfect” solution in a super-simple manner. Hey. Textmate is greatly scriptable, I’m a Ruby programmer and there’s even a great template in form of Hendrik’s Textmate bundle. Suddenly things were so clear and I found myself wondering why I haven’t spend some more thought on this before …
I immediately sat down and implemented it. Actually I’m already using my shiny new tool right now … and I’m totally happy with it.
I can now have my action lists wherever I want. And I can still have autogenerated lists for each tag (sorted by project) as well as an autogenerated list with completed items (sorted by completition date). It takes me a keystroke to mark an item as completed or switch back to pending and the item’s state is correctly propagated to the tag lists. And it takes me another keystroke to re-generate the tags and completed items lists.
And before you ask … yes, this is a pure Ruby implementation, so it should be easily adoptable for other scriptable editors, such as VIM, of course.
Stay tuned …
I had to write this down first. I will publish the library as a Textmate bundle as soon as I find the time to write down how to install and use it.
So, subscribe to my RSS Feed to stay tuned :-)
Oh, and … like you can guess from the title, I intend to call it “Taskmate”.