When I’m working on a software project, I know all critical features will eventually be captured in a system and managed in a transparent and predictable way—the idea of not planning work carefully is anathema to what we do at Atomic!
However, I recently realized I wasn’t managing my non-development tasks in a systematic way. As a result, I was spending a lot of energy on my mental to-do list, and small things were getting missed.
My solution was to read David Allen’s book Getting Things Done (GTD) and learn how to implement the GTD method. In this post, I’ll summarize GTD and talk about the technical tool I’ve used to get organized and free my mind to focus on the tasks at hand.
First, a Little Motivation
If your mind is empty, it is always ready for anything; it is open for everything.
Nowadays, it’s common for people in all industries, and especially software development, to feel they have too much to do in a given day. Keeping mental tabs on everything that must be done takes a large toll on our ability to get shit done. As developers, we are always trying to get into the zone where everything else melts away and we are at our most productive.
Having small nagging to-dos on our minds makes it harder to achieve that optimal state, but GTD can help you get back to the zone. At its highest level, GTD can be summarized with three points:
1. Capture All The “Stuff”
There is usually an inverse relationship between how much something is on your mind and how much it’s actually getting done. The GTD method solves the mental drain of to-dos by moving everything that needs to be done into a trusted system that you know you will check, without fail, before picking up your next task.
Allen asserts (and backs it up with research) that the human mind will never truly let go of a task (even subconsciously) that needs to be done until we file it into a system where we know it won’t be forgotten. This detail is the key takeaway of GTD for me.
When starting GTD, take a day (or several) to collect all projects—now, later, someday, big, little, or in between—into your backlog. A project could be as simple as mowing the lawn or as complex as winning a multi-million dollar contract from a key client.
Once you’ve made your list, break down each project into actionable tasks, asking: What is the next tangible thing I can do to make progress toward my goal? For mowing the lawn, it may come down to a single task (just mow the $#%* lawn). For winning a big contract, the next tangible action may be making a follow-up call to the client.
Once you’ve listed all your projects and tasks, they must be stored in a trusted system that you know you will check, without fail, before tackling the next task.
2. Manage Incoming “Stuff”
The second essential part of GTD deals with how to handle the “stuff” (tasks, new projects, etc.) that pops up throughout the day. Allen describes “stuff” as anything that comes into your metaphorical inbox, which could be an actual inbox but could also take the form of voice mail, a colleague asking for help, or any task that adds more to your plate.
He offers this useful flow chart to help sort the incoming stuff:
At each step in the GTD flow chart, ask yourself:
- Is it actionable? – If nothing can be done, we can trash it or add it to our reference library.
- Will it take many steps? – If so, a new project should be created and the first task considered.
- Can it be done in < 2 minutes? – If so, just do it now!
- Is it for me? – If not, you are blocked until it’s acted on by someone else.
- Is there a place or time involved? – Make note of the tasks’s context.
It takes discipline to follow this pattern, and you have to be careful to not be distracted by incoming tasks. But when you learn to make front-end decisions about all of the “inputs” you let into your life, you will always have a workable inventory of “next actions” to implement or renegotiate in the moment.
3. Curate Tasks and Projects
Developers who practice SCRUM will be familiar with this step. Essentially, it boils down to grooming your backlog of projects and tasks. Allen recommends weekly backlog grooming sessions to reflect on projects and next steps and to gain insight on priorities. I personally haven’t had to formalize this step, but it may be useful for people with large amounts of ongoing long-term projects.
GTD Tools: Don’t Forget the Tech Support
Unsurprisingly, there’s a large array of apps out there to support a GTD workflow, and the blog Lifehacker is constantly reviewing tools.
I personally use Omnifocus, which has a user interface that makes it very easy to create new projects, taks, add contexts, set deadlines, get reminders, and do pretty much anything you need to do to support the GTD workflow. I highly recommend Omnifocus, but GTD can also be implemented with a simple pad of paper.
I’ve only touched on the main points of GTD, but if you’re interested, I recommend reading Allen’s book. GTD isn’t a magic bullet. It takes work, but the rewards–less stress, more productivity, and getting more things done–are real.