Endless Obsession

better code

Getting things done (GTD)

Lately I’ve become somewhat obsessed with getting things done. I wasn’t always this way, I swear! In my younger days I was as disorganized and lazy as anyone. And I procrastinated sometimes (understatement of the year).

For me, getting things done has to be more than a state of mind or goal, it has to be a system and a habit. I didn’t come to this conclusion all at once. It happened gradually, and I’m always trying to be better. The system looks something like this:

  • Always write things down (requires discipline & habit)
  • Make sure its in your face or readily available
  • Use a check list system to provide positive reinforcement
  • Figure out how everything works together and stick with it

I think I was supposed to do something…

It started with the realization that I can be extremely forgetful. At least, I think thats how it started… So, the natural response to this realization was to start writing down EVERYTHING, with the understanding that if it isn’t written down I won’t remember it and, therefore, there is zero chance that it will be done. That’s a little extreme, but sometimes it helps to think about things in terms of the worst-case scenario. I started out using GMail, Google tasks, Google calendar, and, eventually, remember the milk.

I’m going to jump ahead of myself and talk about ways to make sure you always write things down. In the beginning I would write things on sheets of paper and even on my hand and arm at times. This is convenient, but its not the most reliable system. I use RTM pretty heavily at this point, so it gets a lot of my attention when it comes to efficiency.

The first thing I did was make sure that RTM could be launched as a desktop app using the shortcut launching software of my choice (launchy). I accomplished this using Prism, which allows you to use firefox to convert a website into a desktop application. This is important to me for two reason: isolation and convenience. First, a website like RTM is different than most in that I don’t need to be connected to the rest of the web and I don’t need to arrive there from anywhere else. In essence, it is less like a traditional website and more like a standalone application. Second, I would like to be able to have RTM open and close in the blink of an eye. Currently I can type Win+Space (to open launchy), then rtm (or any other query that finds my prism app), then Enter, and remember the milk is open pretty much immediately. Then, thanks to RTM keyboard shortcuts, I can type in a new task (or do pretty much anything else) and my hands never have to leave the keyboard! If I could get Vimium to play nice with RTM things would be even better!

What I have been looking at more recently is the ability to add a task directly from launchy. What makes this possible is the fact that remember the milk supports adding tasks via email. There was a solution for this that uses twitter, but I have heard that it isn’t very reliable. I would rather not go back to writing notes on my hand and hoping that I don’t need to wash them. More recently there have been a couple of solutions that make use of the email API instead (lifehacker and sheenonline). I’m currently using a modified version of the second option, which I will try to finish up and post soon.

Because of all of this, most basic task management can be accomplished with very little impact on my normal workflow.

Break the Procrastination Habit

Well, that’s great progress, but its not the end of the story. The second realization was that if I write things down I won’t forget them, but that doesn’t mean I’ll actually do them. I’m still lazy and I like to procrastinate. I had defeated forgetfulness, now I set out on a glorious crusade against the forces of procrastination. My first order of businesses was to make sure that the “things” were always before me, which would (in theory) increase the odds that they actually “get done”.

I started out by adding RTM to my GMail inbox (the gadget, not the browser add-on) and my Google calendar. Of course, this is only useful as long as I’m using GMail or my calendar. Since I use windows 7 at work, I installed the “I Forgot the Milk“ desktop gadget, which gives you basically the same view as the GMail gadget. With the windows 7 sidebar gadget, I can be sure that my tasks are always visible on my desktop. There is also a handy little app that allows you to run the same interface as a desktop app, but I don’t have any use for it currently.

The Task List

Now that I’m using RTM, I need to figure out how to use its many feature effectively. Here is a collection of notes about how I use RTM. I will modify this as I refine the process.


I started out with only a couple of lists, but the number has grown. The reason for this is that more lists means fewer tasks in each list, which means less tasks that I never see (and forget about) because they extend beyond the browser window. Logical grouping is the main factor when deciding on lists, but a low task count is a close second.


The tasks in RTM can be assigned a priority of 1-3 (or none). This is useful because it determines the order of tasks in RTM and related apps. I have bounced around between only assigning priorities to some tasks, then assigning to all tasks, then back to only some. Recently I have started using the following rule-of-thumb to assigning priorities, rather than arbitrary choices. I must resist the urge to make everything priority 1 :)

  1. High Priority: These tasks absolutely have to be done. You don’t want to forget about them, and your life will be adversely affected if you fail to complete. If there is a due date assigned, it is probably not an optional due date (ex: pay rent, schedule dentist appointment).
  2. Medium Priority: These tasks are also important, but life will go on if they are not done. If a due date is assigned it should be done by then, but is probably somewhat flexible (ex: important phone call, write blog post).
  3. Low Priority: These are less important tasks that don’t necessarily have to be done, but you have decided that you want to, as time permits. These usually won’t have due dates, except in the case that it is something that happens at a certain date/time but is still optional, or something that you do at a regular interval (ex: watch world cup final, clean bathroom sink).
  4. No Priority: These are tasks that are things that you _might _want to do, but haven’t decided the if or when.

Due Date

I have been in the habit of assigning due dates to tasks and then postponing them repeatedly. Kind of depressing…

There are two ways that I use due date: when something is due (really), and when I want to do something. Differentiating between the two is something that I have not been able to figure out (suggestions welcome). Because of the way that I use gadgets I think I am pretty much tied to using due date for both real due dates and pseudo due dates.


I use this field to set things like daily, weekly, and monthly chores. Pretty intuitive.

So far I have not used most of the other fields since they do not affect my workflow.

What’s Next?

For a while now I have been using RTM almost exclusively. This has worked pretty well so far, but is not perfect. The next step is to figure out how GMail, Remember the Milk, and Google Calendar can work together.