Like many others out there I’ve adopted a modified Getting Things Done (GTD) (or check out the 43 Folders getting started guide) approach to personal task and time management. GTD (and its extensions) addresses a topic area that many other systems ignore – how to deal with the email problem, and I think that’s partly why it has seen such widespread adoption.
To date my GTD system has been about as low-tech as you can get – a modified PigPogPDA / Moleskine planner. I need a paper-based system for its portability, unobtrusiveness, and ability to use in customer environments. I’m not a big fan of using laptops in client meetings, and as I’m often meeting with high level bank CIO/CTO types, a paper system is both effective and professional. For a while I used the full-blown system described in the PigPog article, but now that I’m on my third Moleskine I’ve simplified the system quite a bit. At the front of the notebook I list out “Projects” (high level tasks from which next actions are generated), “Waiting For” (stuff I’m expecting others to accomplish), and “Someday” (wishlist or long-term items). The rest of the notebook looks like a diary / journal where I take meeting notes and indicate next actions. A next action is indicated simply with a single line and a box on the left margin that I can eventually check off. I use a single sticky tab to indicate where the oldest next action is, and the cloth page marker to indicate where my “collection” (i.e., where I write new notes and actions) page is.
I’m generally pretty effecient at managing email. I’m a big fan of Zero Email Bounce (ZEB) and work dilligently to keep my inboxes as close to empty as possible. The operative word here is “close” – my level of tolerance in Outlook is generally not having to scroll to see the oldest email in Outlook. Even with this model, I still found myself leaving items un-resolved for too long in my inbox. Another challenge is the fact that I have two discrete inboxes – work and personal – where I have a wide range of on-going projects. I also wasn’t very effective at managing “waiting for” and “someday” type tasks in my electronic inboxes. I could go to the trouble of transcribing items from the electronic inboxes to my paper system, but that’s just too much work and I’m unlikely to stick with such a model.
Last weekend I found myself staring at a Gmail inbox with about 30 emails in it, and about 20 of those requiring some action. Right about the same time I noticed the release of a Firefox plugin for applying GTD to Gmail – GTDGmail. GTDGmail is a greasemonkey-style mashup on GMail that combines some client-side cleverness with GMail’s powerful labeling and filtering mechanisms to deliver a comprehensive GTD inbox system. It uses what I think is probably a little-known feature in GMail – you can send emails to username+label@gmail.com to have GMail automatically apply a label to an incoming message or to apply special filtering rules to the message. This allows me, for example, to set up a special email address in my BlackBerry and easily email new tasks to myself. As you can (sort of) see in the image below, GTDGMail also adds some UI accelerators to the interface to easily navigate to actions, waiting on, specific projects, etc. For the past 4 days I’ve been able to keep my GMail inbox at zero emails and feel that I’m much more on top of all of my personal projects (Sunriver Games, football coaching, scouts, etc.).
There has been a ton of chatter lately about using Outlook (especially the beta Outlook 2007) for managing GTD. I own the Getting Things Done Outlook Add-In, but was eager to abandon it as it added instability to Outlook and I found that the only feature I really used was the “snooze” capability (not a good habit to get into). Melissa Macbeth wrote the article Outlook 2007 and Getting Things Done, Simon Guest expanded on those concepts in his article Implementing Getting Things Done using Outlook 2007, Omar Shahine expanded on those concepts with an improved macro, and finally Scott Hanselman recently published a podcast on A Better Outlook, including GTD add-ons for Outlook.
While I like Omar’s macro, it does even more than I need. I don’t really need to track contexts or projects for my tasks – turning an email into an action and moving it out of my inbox is good enough. So… I took his macro and changed it a bit:
I also turned on two rules:
Public Sub CreateNextAction() Dim olExp As Outlook.Explorer Dim myolApp As Outlook.Application Dim myNamespace As Outlook.NameSpace Dim myTasks As Outlook.Folder Dim myFolder As Outlook.Folder Set myolApp = Outlook.CreateObject("Outlook.Application") Set myolExp = myolApp.ActiveExplorer Set myNamespace = myolApp.GetNamespace("MAPI") 'Uncomment the next line if you prefer to move the email to tasks. 'Set myTasks = myNamespace.GetDefaultFolder(olFolderTasks) ' Otherwise, we'll move it to a sub-folder under the inbox and keep it ' as a regular mail item Set myTasks = GetFolder("Mailbox - <your username here>\Inbox\Actions") ' Check for the toolbar button. I prefer to use X as the hot-key instead ' of N. Set myobjCB = myolExp.CommandBars.item("Standard") On Error GoTo MyError Set objNA = myobjCB.Controls("Ne&xt Action") On Error Resume Next Dim cntSelection As Integer cntSelection = myolExp.Selection.Count ' For each selected item, assign the "Action" category, ' mark it as a task with no due date, and move it to the action ' folder. I don't feel a need to organize tasks by project, ' so I don't bother to show a category dialog like Omar does. For I = 1 To cntSelection Dim item As MailItem Set item = myolExp.Selection.item(1) Set MyTask = item.Move(myTasks) Subject = MyTask.Subject Subject = Replace(Subject, "FW: ", "") Subject = Replace(Subject, "fw: ", "") Subject = Replace(Subject, "RE: ", "") Subject = Replace(Subject, "Re: ", "") MyTask.Categories = "Action" MyTask.MarkAsTask (olMarkLater) ' This next line is a hack to make sure it doesn't get assigned a ' due date. Otherwise, olMarkLater sets the due date to tomorrow. ' This is PROBABLY a bug in Outlook 2007. MyTask.TaskDueDate = MyTask.TaskCompletedDate MyTask.Subject = Subject MyTask.Save Next Exit Sub MyError: Set objNA = myobjCB.Controls.Add(msoControlButton) objNA.Caption = "Ne&xt Action" objNA.FaceId = 7264 objNA.Style = msoButtonIconAndCaption objNA.OnAction = "CreateNextAction" objNA.BeginGroup = True objNA.TooltipText = "Create a Next Action task from this E-mail" End Sub Public Function GetFolder(strFolderPath As String) As MAPIFolder ' folder path needs to be something like ' "Public Folders\All Public Folders\Company\Sales" Dim objApp As Outlook.Application Dim objNS As Outlook.NameSpace Dim colFolders As Outlook.Folders Dim objFolder As Outlook.MAPIFolder Dim arrFolders() As String Dim I As Long On Error Resume Next strFolderPath = Replace(strFolderPath, "/", "\") arrFolders() = Split(strFolderPath, "\") Set objApp = CreateObject("Outlook.Application") Set objNS = objApp.GetNamespace("MAPI") Set objFolder = objNS.Folders.item(arrFolders(0)) If Not objFolder Is Nothing Then For I = 1 To UBound(arrFolders) Set colFolders = objFolder.Folders Set objFolder = Nothing Set objFolder = colFolders.item(arrFolders(I)) If objFolder Is Nothing Then Exit For End If Next End If Set GetFolder = objFolder Set colFolders = Nothing Set objNS = Nothing Set objApp = Nothing End Function
So far it is working pretty well. I’ve got ZEB right now in Outlook and a clear handle on my actions, what I’m waiting for, etc.
The potential downside of this overall system is that I have three inboxes – my notebook, GMail, and Outlook. If I’m sitting around with my BlackBerry and my notebook and an action comes to mind, do I write it down or email it to myself? Should I periodically scan my notebook and just push items into Outlook or GMail? I don’t know yet and will report back after a few months to let you know where I’ve landed.
Page rendered at Friday, May 16, 2008 4:05:21 PM (Pacific Daylight Time, UTC-07:00)
Disclaimer The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.