Getting Things Done
Date: 2 march 2007By: Johannes Verelst
This week I enjoyed a dutch course by Taco Oosterkamp about Getting Things Done by David Allen. He proposes a system that will make you remember the things you need to remember at the correct time. I just recently switched jobs within the company where I work, getting more project management tasks. One of the hardest things for me it to be sure that nothing (both at work and privately) falls through the cracks. Apparently this system is perfect for that, and I'm soon to find out.
Below is the complete story on how I arrived at my current setup, but if you want to short version, it consists of:
- Use iCal for dated (hard landscape) entries and tasks, one calendar for every context
- Use a simple naming-scheme for entries to sort them within a context
- Use quicksilver and a bunch of custom applescripts to quickly enter new tasks
- Use mail.app for mail, using smart mailboxes to only see stuff that needs processing, and using MailTags/MailActOn to handle emails quickly
- Use a custom Dashboard widget to have a 'cockpit' out of which you can work
1. What is it?
I am not going to explain how GTD works, you can find excellent explanations when you do a bit of googling. Lets just say that it's all about collecting stuff, processing it by defining next actions or filing it, and then get the stuff done.2. Setting it up
After reading the book and folowing the course, I spent a huge amount of time trying to find the software that could manage it all for me. Since I work on a Mac, Outlook isn't an option, uless you want to use the OSX variant called 'Entourage'. I'm not much of a fan of that, and being a Mail.app and iCal user, I've tried to set the system up using that. Besides this I also have a Palm T|X (soon to be a Treo 680 I hope), which needs to be in sync with everything. All Palm software I found sucked enourmously, or it is stand-alone on the palm and not-syncable with the desktop.3. Where to store it all?
The final answer for me was: iCal. First I thought that I could use Mail.app only, and flag mails that need to be answered. Unfortunately, this doesn't map well to the contexts from GTD, and I ended up emailing myself stuff in rder to get it into the mail system. Also, mail.app is not syncable with a palm.
Within iCal, I mapped every context to a calendar. This gives me the following list (quite personal to my taste, but you can alter it to your own needs. By the way, mine are in dutch, but I translated them for all english readers)
- Personal
- Work
- Someday
- Projects
- Sport
- Church
- Waitingfor
- Agenda
4. How to put it there?
So now I've decided to put everything in iCal, I need to put stuff there. There are two ways of entering data:4.1 From an email
According to David Allen, there aren't many options when an email arrives. I noticed there are only a few things I do with my mail:
- Respond to it immediately and be done with it (the 2 minute rule)
- Archive it immediately (I went away from the insane-tree-folder-structure, spotlight makes that obsolete, so everything goes in 1 mailbox)
- Put the thing from the email into the current action list
To be able to create a TODO out of an email, I wrote the following Applescript. I'm not very happy with it at the momet because I can't override the subject, but somehow the dialog method of Applescript is not playing nice on my machine. Still, it might be of some use to you.
on perform_mail_action(theData)
set cal to "Work"
tell application "Mail"
set theSelectedMessages to |SelectedMessages| of theData
set theRule to |Rule| of theData
if (count of theSelectedMessages) is not equal to 0 then
repeat with eachMessage in theSelectedMessages
set theSubject to subject of eachMessage
set theBody to content of eachMessage
set todoSubject to theSubject
tell application "iCal"
set newtodo to (make new todo at end of todos of calendar cal)
tell newtodo
set summary to todoSubject
set description to theBody
end tell
end tell
end repeat
end if
end tell
end perform_mail_action
I also use MailTags 2.0 Public Beta 7, to allow me to quickly set some properties of the emails that are processed. I don't think it's completely necessary, because everything is a iCal TODO, you can just invoke an applescript that handles that. Still, mailtags allows you to create a todo out of any email you have, which might be handy if something goes past your inbox (which shouldn't!!).
My INBOX is not my normal mail.app inbox: it's a Smart folder instead. I use the following smart folders:
- INBOX, which is just 'message is in folder inbox'
- Unread, which is 'message is unread and in any mailbox' (I filter out some mailinglists into subfolders automatically, these don't end up in my mailbox but I do want to scan them every once in a while)
- Today, which is 'all email received today'
4.2 Manually
If you want to enter a todo manually, it needs to be done as efficient as possible. So, how does this sound:- Press Command-Space to open up QuickSilver, then press '.' to active text edit
- Or: Press Command-Shift-Space to open up QuickSilver in text edit mode directly
- Type your text
- Press the 'tab' button
- Type: '@home' or '@work' or '@agenda' or ....
- Now your new todo item is put inside the corresponding calendar
- Download QuickSilver
- Activate 'advanced features' in preferences -> application
- For every action you want to take, create a file in '~/Library/Application Support/QuickSilver/Actions/', named for instance '@someday.scpt', with the following contents:
using terms from application "Quicksilver"
on process text t
tell application "iCal"
set newtodo to (make new todo at end of todos of calendar "someday")
tell newtodo
set summary to t
end tell
end tell
end process text
end using terms from
(ofcourse, change 'someday' to whatever your calendar name is, I've got about 8 nearly-identical files in that folder now)
'EVA: do code review' <tab> '@work' <enter>
(put a todo in the Work list, for the project EVA that i'm working on)'john: ask about the treo 680 status' <tab> '@agenda' <enter>
(save an agenda item, to be discussed when I meet John)'develop idea on how to break RSA on my laptop' <tab> '@someday' <enter>
(I like this idea, but won't be able to work on it this week)
5. The PALM ...
5.1 Finding the software
I already mentiond I use a Palm T|X. If you're wondering "isn't there a nice Palm application that is better than Tasks which can manage my next actions etc."?. No there isnt. I've tried them all, and either they suck bigtime, or they can't interact with anything on your Mac. Syncing iCal with the Palm Tasks application was the only workable solution for me.
5.2 How to sync it?
Unfortunately the sync software for OS X is not too smart: it puts all the data from all your calendars in one big calendar, even though the palm calendar app supports multiple calendars. So that is why I ended up buying the missing sync. Yes, it'll cost you $40, I'm not affiliated with them in any way, but you absolutely need this if you want to sync your Palm with iCal. I just figured that it's less expensive than the last bottle of whisky I bought, and it will probably last longer also :).
After syncing you'll have all your todo's grouped by context in the Palm tasks application.
5.3 Other cool palm software
I decided that putting shoppinglists in todo items is insane if you can use something as cool as HandyShopper. All my groceries, office supplies, cds-I-might-buy, stuff-I-need-to-do-when-i'm-in-the-big-city .. it all goes in there.6. Daily cockpit
So, now your entire life has been put into Todo items, you've got your palm in sync, your email uder control. This might be a good time to actually do something useful. This is something I learned from one of my colleagues at work (my former manager Fokke Kooistra): have a good cockpit with only your tasks, which you use as a starting point when you are working. He uses Entourage with the 'tasks' view, we need something that talks to iCal.
I didn't find much software that can do exactly this, but I did find a Dashboard Widget: DoBeDo. I installed it, created some groups (where you tell the widget to show tasks from different calendars together), and it works perfectly. There is only one but: it cannot sort your items based on calender within a group. I'd like to have all my TODO's first, my 'Waitingfor's at the bottom and my 'Agenda' items in between. I emailed the author, and he replied:
Johannes,So, a bit of patience is required for now. And since I'm a very impatient softwaredeveloper who thinks he's the only one who actually writes decent software, I started a widget of my own :). Still under development, but I might post it here if it's finished.
This feature has been requested by a number of GTD'ers. I will try and add it to a future release.
- Ron Morrison
7. Software overview
The software I'm currently using:- iCal (comes free with the mac)
- Mail.app (comes free with the mac)
- Mail Act-On (freeware)
- MailTags 2.0 Public Beta 7 (free beta, but will cost $29.95 when final)
- The missing sync (costs $39.95)
- DoBeDo (freeware)
- HandyShopper (freeware, for the palm)
- QuickSilver (free)
8. Links
- Meereffect, dutch company that organizes GTD courses
- Website of Davin Allen
- The hawkwkings blog about Mail.app, and a link to a post that links here