Organization with org-mode: Getting Things Done Flow

Abhi Yerra
5 min readJan 21, 2015

Give me six hours to chop down a tree and I will spend the first four
sharpening the axe. -Abraham Lincoln

I am a sucker for productivity tools and methodologies. But every day seems to bring another tool, another piece of software, another methodlogy that I have to learn and be productive in. Github, Jira, Evernote, Email, etc., etc. Instead of mastering one tool I am mediocre at ten.

Recently, I’ve been rereading Getting Things Done. I’ve realized making the system work with n number of tools is a mediocre way of going about things. So as an experiment in 2015 I will use four tools: Evernote, email, org-mode and DayOne.

Tools

I will use Evernote for collecting information into what GTD calls the Inbox. Most of my life is digital anyways so it is a good place to put things. Also, I will use it to store reference material. Previously I stored everything in Evernote but I just ended up with redundant notes mixed with random files which no longer had any meaning. So this is a way to use Evernote primarily for what it’s good at collecting information.

Second is email. I can’t escape this at work nor at home so I will use Google Inbox for email. I like the aggregation ability of Inbox and hope they release it for Google Apps soon but until then I’m giving Mailbox a try.

I will use DayOne to archive information so I can see how I am completing tasks. I like the calendar view and I already use it for journaling so it’s nice to just aggregate that kind of information in one place.

My main criteria for a processing tool was the ability to customize it and because of this I have decided to use org-mode.

Org-mode is an organization mode for Emacs. It is all plain text and I like the ability to encrypt my files so I don’t feel like I’m giving up my content to a remote entity. It also has the ability to set specific todo states, reminders, schedules and recurring habits and tasks. I’ve hooked up JIRA via org-babel so now I can see my work tasks as well as my Github projects through one interface. It’s basically a single stop for all the different todo tasks I have. The tentacles of org-mode just keep expanding and since Emacs is a pretty sweet operating system to write scripts the way it can be expanded are endless.

State Flow

I wanted a processing tool that can model the following states: TODO, PLAN, NEXT-ACTION, WAITING, APPT, DEFERRED, CANCELLED, DONE. These are based off of the GTD workflow.

  • Every new task starts as a TODO. This means that I haven’t thought about what I want to do with it just yet. It's a new task which needs something actionable to happen. This processing happens once a day so I can see all the things I need to move to an actionable state.
  • Once I need to start planning I move it to the PLAN state. It can be in this state while I figure out what I want to do with it. If it takes less than 5 minutes I will just do the task otherwise after the planning is done I move it to the NEXT-ACTION state. One of the main things I want to do here is ask the question why? and what’s the outcome? I come up with so many random ideas that sometimes I get into the middle of the task before I question myself on why I wasted so much time doing the task in the first place. This is a way to avoid that. If I can’t think of any reason why? or if the cost of doing it are higher than the desired time savings then I will just move it to the CANCELLED state and move it to DayOne. Further, an item in the PLAN state which will take longer than 5 minutes to do should have a schedule for when it needs be planned. Either a tag stating it to be done at a particular time, morning or evening, or a specific schedule when I will go about working on it will be added so I can update the tasks.
  • The NEXT-ACTION state is the primary state in which I can do things. This is because there is a set of conditions I can accomplish to get to the desired outcome. When I have started an NEXT-ACTION item I move it into the STARTED state. If I stop for any reason I move it back to the NEXT-ACTION state.
  • If I am blocked from continuing a task until I receive a response from someone else I move it to a WAITING state. This is primarily at work where I will likely be waiting on other people to respond to a task I requested from them.
  • I also have an APPT state for an appointment or a meeting that needs to happen to complete the task. This is primarily so I can make sure that meetings have an objective and goal.
  • A DEFERRED state is something that is to be scheduled in the future, but has no current state. It is something that I can’t get to immediately. For example, go to Australia. I want to do that someday, but I don’t think it is going to happen anytime soon. So I will add a schedule to it so I can reflect on it in the future.

I’ve written a bunch of custom org-agenda events to trigger specific lookups of information on NEXT-ACTIONs as well as DEFERRED tasks. I can add more as I want to ordered by whatever criteria I want.

Goal

I’ve decided to give this a go for 2015 to see how well I use the system. The negative aspect of it is that I won’t be able to store images, and clips and what not along with the task but I suppose that is what Evernote is for.

I’ve moved everything to org-mode files. I’ve even moved the first draft of this post to org-mode. I will cover how I use org-mode with this system in a future post.

Code

Here is the code to make it happen.

--

--