March 18th | 2010
Getting Things Done
Software developers know what it’s like to manage a seemingly endless number of tasks. They can range from customer requests for new features to a new bug that showed up in QA testing, or a new technology that we would really like to start reading up on.
How do we manage all our shifting priorities and tasks? Well, according to David Allen in his book Getting Things Done, the answer is “Not very well.” He pinpoints the natural planning that most of us do on a daily basis and labels it Reactive Planning. This means that as we aren’t actually planning ahead, we are in constant reaction mode trying to play catch-up. All the things we need to do are held in our brains and we can’t consistently recall them when needed. As a result we work in crisis mode, constantly procrastinating and addressing issues only when it becomes absolutely necessary.
Allen’s core thesis is that instead of keeping these things in our heads we should address items as they come up. Every time we get an email or remember a feature that should have been included in the latest release, we should deal with it at once. This doesn’t mean drop everything and work on it immediately, but at very least identify the next actionable step. If it’s something that’s not actionable, then place it on the backburner list to be reviewed. Something like “learn French” might be placed on the long term list, while “Send a calendar invite for next week’s meeting” clearly is actionable and should be placed on a list to be completed in the near future. Furthermore, we should never attempt to hold things in our brains. Everything should be written down so we don’t have to depend on the brain to remember it all.
While I can’t say I’ve implemented the entire Getting Things Done methodology, I have taken some basic steps and have already benefitted from the payoff. Simply writing down all the things you need to do and the smallest actionable step you must take, as Allen recommends, is immensely satisfying and has some tangible results.
There are a lot of interesting blogs that embrace Allen’s ideas. Lifehacker and 43folders are two interesting ones have started reading since I picked up Allen’s book, and I highly recommend both.
March 5th | Jonathan Cogley
I have been using GTD (Getting Things Done) for about 5 years now and it works. It is a great system to manage all aspects of your work and personal life. The turning point for me was when I had too many tasks and correspondence to manage in my head or my inbox. GTD allows you to create “contexts” where you will do work – for example @home, @computer, @phone, @errands, @withAccountant, @withCindy or even just filing for future reference #Done. This lets you move items from your inbox to the proper place for the work to be done. This makes your inbox more of a processing center (with the focus being getting to zero). Getting your inbox to empty and knowing that all tasks are in the right places brings on a Zen-like feeling of calm and control 🙂 .
My tool for email is the corporate standard – Microsoft Outlook 2007. I love Outlook – it is an incredibly rich and powerful client which allows me to quickly move between my email and my calendar (don’t even get me started on web mail!). Creating “contexts” is easy – simply create folders representing each context and then move items from your inbox to each folder. And there begins the problem …
Moving items between folders in Outlook is painful – there are only two built-in options:
1) Drag the item using the mouse from your inbox to the folder (try that 50 times in one morning!).
2) Use the keyboard. Ctrl-Shift-V brings up the Move to Folder dialog, then navigate the folders using the cursor keys and hit Enter (also way too slow).
What about an Outlook macro? Outlook has the capability to allow tedious items to be recorded or even coded using VBA (Visual Basic for Applications). Not exactly my language of choice but if it works, use it. You can access macros within Outlook by going to Tools | Macros | Visual Basic Editor. Right click on modules in the Project Explorer and click Insert | Module.
Download the macros (had to be in Word doc to work in WordPress – sorry)
The sub procedure “MoveToFolder” is really the meat of the code – it uses the recursive GetFolder to find folders by name anywhere in the inbox structure and then moves the selected items to the folder while also keeping track of items for undo. To get it all working, simply create new sub procedures for each context you want to target – for example: MoveToFolder_WaitingFor targets the “@waitingfor” folder. Save your macros and close the Visual Basic Editor (you can return to it at any time to add more target sub procedures).
Now we need to tie these macros to shortcut keys and menu items. This is very easy in Outlook – right click on the menu toolbar and select “Customize”, go to the “Toolbars” tab.
Click “New” to create a new toolbar. Call it “GTD” (or whatever) and click OK. Now drag the new toolbar onto the main toolbar at the top of Outlook. Then right click the new toolbar, click “Customize”, then go to the Commands tab to find the macros. Drag macros to the toolbar, then right click on the new toolbar item to further customize the text, icon and keyboard shortcut. Note that the keyboard shortcut you select mustn’t interfere with other standard shortcut keys in Outlook else they won’t work (I have used ALT-\, ALT-o, ALT-C, etc).
To add a new macro to move to a different folder, simply copy one of the existing ones, rename it and then add it to your toolbar.
Were these macros helpful? How do you manage your email GTD-style?
Note: I did have some trouble implementing “Undo” for the folder moves (essential for when you accidentally move the wrong thing!). Outlook doesn’t seem to support Undo in the same manner as other VBA-enabled applications. Just map the “UndoMoveToFolder” to get it working.