Image Description

Productivity Systems for Developers: GTD

This lesson is a part of an audio course Productivity Systems for Developers by James Bowen

In the last lesson, we looked at the anatomy of a generic productivity system. To recap, a productivity system lets us:

  • Funnel any kind of input into a consistent ‘source of truth’.
  • Categorize the information there by the stream of work.
  • Assign an optional time component to each item.
  • And since it’s digital, we can store and retrieve information no matter where we are.

Now we’re ready to look at GTD which lets us apply a more standardized approach, one that’s ‘ready made’. I actually like the fact it’s a little prescriptive, as it’s less to think about today. You only need to follow the rules, and everything can be neatly classified. In any case, when you’ve mastered it, you can pick the bits that work for you.

How GTD Is Different

So Getting Things Done (GTD for short) is a system created by productivity consultant David Allen. The idea is to get everything out of your head and into one place. So far, the same as we’ve talked about with any system.

But where it differs is that it gives you a standard set of steps to classify information. It’s literally a methodology for processing your commitments. A place for everything, and everything in its place. Remember my example of Barack Obama reducing trivial decisions? That’s far easier when you can categorize on auto-pilot.

This becomes important as your work scales to larger and larger projects. You follow the same process regardless of whether it’s a simple 10 min task, a 1 week project or a five year plan. Developers familiar with recursion or the “Composite Design Pattern” will immediately see a resemblance.

Where it's also a great fit for developers is the way that it virtually forces you to to break tasks down into next actions. This is a parallel to how we work (or should work) when we commit to an agile sprint. Stories get broken into tasks.

Having these steps laid out for you offloads a load of mental bandwidth. Why waste effort on working out where or how to store something? You could quickly move on to solving the actual problem.

Mind like Water

The biggest draw for me with GTD is the ‘mind like water’ mindset that David Allen espouses. Paraphrasing one of his quotes for a second:

“If you throw a rock into a pond, how does the water react? Well, the ripples will radiate outward from the point where the rock enters the water and the water always responds appropriately to size and the force of the impact. Then it returns to normal”.

This is what we can achieve with GTD because of the systematic approach. You’ll have an idea, and you won’t want to lose it or have it nagging away at you. With GTD, you’ll be able to quickly classify it, store it and move on with your life. Because you know when it does come time to act on that idea, you have one place to go. And you’ve already identified what to do to move that item towards reality. No more effort than you require, and no less.

The Getting Things Done website nearly summarises the methodology in 5 steps, so I’ll refer to those. We’ll dive into the details in subsequent lessons.

Step 1: Capture

Collect whatever has your attention. Whether it’s email, your own ideas, an SMS, slack messages, items from a meeting, the process is always the same. Get that funneled into our system. I use OmniFocus at work, but any digital system will do. As long as that system is available wherever you are and has a way to classify items.

Step 2: Clarify

Is it actionable? If so, decide the next action and project (if more than one action is required). If not, decide if it is trash, reference, or something to put on hold.

I can’t word that any more succinctly than the website. We split into two directions ‘do or do not’ with all due apologies to Yoda. Within those directions we split further depending on how we will ‘do or do not’.

This will become clearer as we work through examples. For now just remember, most development work takes more than one step, and relies heavily on reference material.

Step 3: Organise/Classify

This is where we start to see huge wins. By putting the reminders in the right places, we get all the gains from batching our workflows.

Reminders may be time-bound ones, or a simple reflection of what our commitments are. But nonetheless, organising gives us gains. In its simplest form, a reminder is simply the second brain that we talked about.

As an example, at work, I’m upgrading some assets to run in Docker containers. Because GTD groups related work together into projects, one quick look in OmniFocus is my reminder of that related work. When I come to action, I can move from one item to the next without losing flow.

A reminder might also have a time component to it. As another work example, I get an email on July 15th, talking about a network upgrade on July 27th. I’m not back in the office till August 3rd. I categorise on the 15th, but remind myself on August 3rd about this change – which might save me an hour troubleshooting a network issue if it happens on the day I get back.

Having appropriate places for reminders really is a powerful thing.

Step 4: Reflect

Your system is only as good as it is currently. This is not unique to GTD of course, but the review is part of the methodology because it’s so important. David Allen talks about ‘open loops’ the nagging feeling when commitments have yet to be captured. But there’s also the nagging feeling that your second brain isn’t in sync with your current world.

The solution is simple, and built into GTD. Periodically, we need to review these commitments to see what’s new, what’s changed, what’s now redundant. Once you’re back in sync, that nagging feeling disappears.

Because your system is always available, it’s no issue to review your commitments at a convenient time. I find it great to do on a Friday afternoon or during those odd pockets of time when you are hanging around. Any of you who have CI Pipelines like Jenkins and Bamboo – a perfect opportunity for you if they take 30 mins to run!

Step 5: Engage

I.e just do stuff. This is where ‘one place to go’ for your commitments is so important. Anything you decide to work on has been weighed up against anything else you could do. The end result, you feel ok with the choices you’ve made, because you know all of your choices.


Having a systematic set of steps for capturing information is a very powerful setup. Personally, I love that I’m not reinventing the wheel when it comes to capturing input. I have put that saved bandwidth into actually solving problems. I wanted to lay out what GTD strives to do first. This is because I know that without context, the workflow chart can seem overwhelming. We’ll cover that workflow in the next lesson, and it should all make sense.

Image Description
Written by

James Bowen