An OmniFocus Post

A few weeks ago, Gabe Weatherhead invited me onto his Generational podcast to discuss task management and OmniFocus. The conversation covered a lot of interesting task management topics and covered some of the things that work (and don't work) with GTD.

I love kicking ideas around like this and it was interesting because it was clear that Gabe and I have dissimilar use cases even though we do a lot of similar things for a living. How you fit OmniFocus and GTD into your work and life can vary greatly and the key is finding out what works well for you and what you can leave out. The key is being experienced enough to not throw an essential baby out with the proverbial bathwater and that's where things get tricky.

The podcast was wide-ranging and covered a lot of the nuances of how we use GTD to actually get things done. Oh and stay tuned because there's a lot more great stuff coming up on Generational.

Thanks to Michael Schechter for listening as well as his comments both on his blog and Twitter. I thought he summed things up really well with this quote [1]:

In a recent episode of Gabe Weatherhead’s Generational podcast, he was talking to Jeff Hunsberger about the app. Jeff was sharing how flexible the app is, while Gabe commented that he occasionally finds himself frustrated by its rigidity. I think that the truth lives right between those two statements, that OmniFocus is flexible as to which rigidity you settle on. You have to choose a way to use the app, even if that means accepting a few trade-offs along the way, but when you take the time to find a way that works works for you, I doubt there’s another application that comes close.

  1. This is a classic post, by the way. ↩

OmniFocus and GTD for Technology Team Managers

In contemplating how to frame an article around how I use OmniFocus for work it started becoming obvious to me that the type of work I do makes a huge difference in how I use the tool to begin with.

As a technology team manager, I oversee several teams of software developers who write and QA software that runs the gamut from iOS application development to database application programming. At any given time there could be two to three major projects running across several large teams or a more fragmented approach which might encompass a dozen simultaneous projects in various stages of completion involving just a single resource.

Despite this abstraction, my daily work still involves working through discrete action steps. Work projects rarely involve the type of hands-on things that I might track in OmniFocus for home projects, however. The things I generally need OmniFocus to help me with for work involve reminders for sending critical emails, scheduling meetings, following up on requests, preparing for meetings etc.

One of the general things that is thrown around a lot in blog posts about productivity is something like "if it was truly high priority you wouldn't need a reminder", but I think that's bullshit. When you have several projects going on at once, all needing at least some portion of your attention, it is very easy to lose critical threads as you context-switch between all of the things that go on in a typical day's chaos.

How Do Technology Managers use Task Manager Applications?

In the past few years, I haven't had a day when I didn't meet on at least two ongoing projects. Usually it is many more than that. All of the projects are in varied states of completion. Some of those states might be:

  • "idea" stage
  • business concept
  • business requirements
  • technical requirements
  • QA planning
  • troubleshooting
  • risk assessment and management
  • budgeting
  • resource planning

That's just to name a few. In each one of those little meetings -- it might be a simple hallway conversation or a full-blown project kick-off meeting lasting hours -- the goal is to come out of them with actionable, trackable responsibilities. While the project manager for each project will be tracking individual tasks, I am responsible for seeing my tasks to completion and my method of keeping track of those things needs to be bulletproof.

As I've written about extensively, OmniFocus is the key to all of these things for me but I've found that I use OmniFocus a bit differently than other people and I believe that owes simply to my role as a manager. Rather than write something about how everyone should use OmniFocus the same way, irrespective of their role, I thought it best to go in depth with how I use it given what I do.

So, for some of you, this won't make any sense and using OmniFocus or GTD this way will likely lead to some confusion. I doubt the way I have outlined below will work for you if you're a teacher or a project manager, for instance. It might lead to some interesting ways to think about how you use the tool, however, so at least you'll get some new perspectives if you happen to wade through what will likely be a very long post.

The Importance of Contexts

One thing that was a bit of a revelation to me, after the initial three week period of hammering out a viable GTD workflow to help me with work, was how major a role Contexts played compared to Projects. To review the basic concepts on these and how most people use them, refer back to my earlier Beginning OmniFocus posts on them.

As a technology-based manager, however, my need for Contexts runs a bit counter to the ideal. I use Contexts throughout the day to focus myself depending on where I am, what I'm doing or who I am talking to. I touched on this point briefly in my Context post but today I'll go into a lot more depth.

I have the following Context types:

  • Team/Person Context - These are arranged hierarchically with team names defined as a folder and then team members rolling up to each team type. I have "Dev", "QA", "IT", "Management" and "Peers" with people defined as Contexts below each. If I have an item to cover in a QA team meeting, I'll put it in the general QA team context, but if I need to speak to a specific team member, I'll assign it to their individual Context. These are helpful when I'm in a hallway conversation with someone about a specific project and I have a few other things that they need to know about. Each item that I need to address with them is under their individual Context. Obviously this wouldn't work with huge teams but I work at a small company and this works out really well for me.
  • Stakeholder Context - These are also based on specific people but I keep them in a Stakeholder folder given the disparate teams they may belong to across the organization. These are tasks that I need to complete when speaking with or interacting with them directly (fact finding, spec resolutions, etc.)
  • Location-based Contexts - Work, Home, and Phone are the three that pertain here although things like Home and Phone can pertain to Home-based projects too. Here's where we start seeing the strength of the GTD Contexts. If I am at home and have some spare minutes to get my phone calls out of the way, it is useful to see them all listed in one Phone context.
  • Standing Meeting Contexts - I have created Contexts for weekly/monthly standing meetings. I add items to these when I know there are topics I need to cover in those meetings and don't want to lose track of them. These items become my agenda prior to the meeting.
  • Email/Computer - Any items that I need to research, emails that need replying to, websites that I need to read get filed here. So when I'm replying to email, irrespective of project, it happens when I'm taking care of my "Email/Computer" Context.
  • Management - This is another person-based Context which is a catch-all for anyone I need to deal with politically, cross-departmentally or otherwise. My boss is in this group as well as other SVPs across the organization. It also contains peers and people I might require to resolve organizational needs like HR and Finance.
  • IT Context - A person-based Context containing IT personnel who are pivotal to completion of projects or resolving issues that members of my teams might be having. These types of items can take time and a lot of back-and-forth to resolve so having them in a specific Context keeps me following up on them often enough to get taken care of.
  • Thinking - As I wrote a while back, this is a very untraditional Context in the GTD methodology but I use it to file away things that I need to lock the office door to think, whiteboard or brainstorm about. It doesn't get used that often but having this catch-all keeps it from getting lost in a sea of other tasks in more targetted Contexts.

As you learn after doing GTD for a while, Contexts are the single-most important construct in the GTD methodology. After you spend months looking at things in Project view, as long as you haven't ignored Contexts completely, something will click and you'll understand how incredibly useful they are and why, once you've used them, using a bog-standard list of "Things To Do" in the Reminders app just doesn't cut it anymore.

Well... Then What About Projects?

Projects obviously have their place but because GTD isn't a project management methodology and because I'm not a project manager in the strictest sense they take a backseat to Contexts when it comes to actually working on things. Projects still are necessary for me, however, so don't think that I threw the baby out with the bathwater. It is just that I think about them differently than in the typical GTD sense.

When a new project is announced, I create a Project for it in OmniFocus. It is basically a dropzone for new tasks before they get Contexts assigned to them. It also helps to set something up like this early on in the project lifecycle because you can do a full GTD "capture" about the project, cataloguing all of the things that you need to do to get the project off of the ground (things like assigning resources, checking project timelines for conflicting due dates, vacations etc.)

It is fine to add a project, give it a descriptive name (or a codename) and leave it empty until you can think of things to add to it. The typical project in GTD is one where you can define the goal and break it down into a series of actions but, at this point in a project lifecycle, that may be a waste of time. Given how little you know about what the completion state is, it's not really feasible yet. What will generally happen as the lifecycle moves forward is that sub-projects will present themselves -- ones that require discrete actions steps to complete -- and they will take up residence under each Project. I suppose you could say these capital-P "Projects" serve as overarching buckets into which many sub-projects will live, each with a singular, defined conclusion and all playing a part in marching the project towards completion.

The Project is also key when doing Reviews. They are a good place to take a focused look at all of the things you're on the hook for (the "what") related to a given project, regardless of Context (the "how" or "where").

Reviews Are Your Friend

Reviews are essential to the care-and-feeding of a typical GTD workflow. As I laid out in my previous article focusing specifically on Reviews, doing a full review can have the feel of a reset when things are getting a bit ragged around the edges. As you scan through your tasks, deleting and adding new items as needed, you get a more well-rounded view of your project and also give yourself space to think outside-the-box on items that may have been escaping your purview when wallowing in the trenches, day to day.

I generally cycle through a variety of review types. They all have their place and some are more important than others at different times in a project's lifecycle.

  • Project - Project-level reviews often happen in the other review cycles as well but, more specifically, they happen during project status meetings. These meetings present the ideal time to cross tasks off of the list and interact with individuals you have created Contexts for (developers, QA folks, stakeholders and project managers). You can even use the tasks outlined in your project as an agenda if called upon to do so, checking in with each contact and crossing things off of your list when you verify they're complete. It is a good time to go about adding tasks you will be responsible for as the project reveals itself over the intervening weeks or months. The worst thing that can happen is that you don't capture a critical item and the project ends up getting delayed because you didn't meet a responsibility. This can present an opportunity for a real life case of "GTD to the rescue". Between your trusted capture system and an approach to the review process that keeps things front-and-center, you can virtually eliminate this type of thing from taking you by surprise.
  • Daily - Every morning I check my "High Priority" perspective to see what is critical for a given day, but I also spin through the project view and get a sense of things that might be upcoming. If I get some time amidst the higher priority items, it's sometimes useful to cross some of these off the list as well before they become an issue.
  • Weekly - Punctuating the week, usually on Friday morning, I do a full weekly review of everything. All home and work Projects get examined and tweaked as necessary. It sounds like a lot but, if you've been doing your daily reviews, it usually only takes a few minutes.

As I mentioned in my Review article, deleting tasks is just as powerful as adding them. It becomes even more pivotal as you function in a managerial role. It also grows in importance simply because you're aiming at a moving target with development projects -- often the state is not completely known at the project's inception and, adding to the complication, it is also changing on a daily basis.

Like the saying goes, project management is like trying to shoot a bullet with a bullet. The best defense against being out of sync is to delete things that don't matter anymore and add things the second they reveal themselves. The Review is the single best time to do that.

In the Trenches

As you can see, all of these OmniFocus articles I write build on each other. They are all describing a comprehensive methodology that took a few years to arrive at and was adapted to serve my unique needs. As this website evolved, the feedback I was getting from readers led me to believe that perhaps my needs weren't all that unique.

Many of the GTD books and articles out there point you towards this ideal set up where we have example projects like "Mend the roof" and such. These types of projects have fairly well-defined action steps and the end result is clear -- a mended roof.

Software development is a messy business. Development projects don't appear, pre-formed, with a clear view from the first step to completion. Often, when new opportunities arise, the completion state isn't even known. In that case, having a flexible and adaptable system that allows us to manage the disparate pieces of the project for which we are responsible can mean the difference between "shipping" and an over-budget, delayed nightmare. It also keeps our finger on the pulse of the teams and stakeholders involved which is a key job of the manager.

That said, where software is concerned, there are only so many parts of the process which we can hope to control. Stakeholders often interact with clients who rarely feel the pressures of time and expense and for whom it is easy to make demands that exceed the bounds of both. Specifications can take longer than anticipated to complete which will, in turn, hinder your team's ability to generate technical requirements and test plans. Each step is a link in the chain and, as a technical manager, your job is often to simply put your team in the best possible position to succeed despite all of these issues.

Putting a workflow and methodology in place like the one described above is not the only way to do it, but it is the one I've arrived at that works the best for me. Hopefully you can find something in that heap of words that can help you too.

Hazel Rules for a Paperless Office

After reading the post yesterday about my paperless office, Twitter user @bhdicaire asked me if I could post some of the rules I use in both TextExpander and Hazel to keep my paperless office setup humming.

Here are a few:

This Hazel rule is a name-based rule to move files about my car service to a Car > Service directory.

This Hazel rule is a name-based rule to move files about my car service to a Car > Service directory.

This Hazel rule is a content-based rule to move files about my car service to a Car > Service directory.  Note that when I process files using content, I add other rules to rename the files as well.

This Hazel rule is a content-based rule to move files about my car service to a Car > Service directory.  Note that when I process files using content, I add other rules to rename the files as well.

Here are the file-renaming patterns for the step above.

Here are the file-renaming patterns for the step above.

Here is another content-based rule.  This one takes a scanned electric bill, evaluates it based on the string "PECO", renames it and moves it.

Here is another content-based rule.  This one takes a scanned electric bill, evaluates it based on the string "PECO", renames it and moves it.

This is a rule that uses part of the name ("taxes") but then makes sure they're mine before moving them to their final resting place. I'm sure this was for an edge case when I was scanning the hundreds of documents that eventually made up my paperless archive.

This is a rule that uses part of the name ("taxes") but then makes sure they're mine before moving them to their final resting place.  I'm sure this was for an edge case when I was scanning the hundreds of documents that eventually made up my paperless archive.


The rules are pretty simple. I don't have a lot of directories that things get filed into but it is key that you can find things easily once they're filed. Don't create folders that are too deeply nested or you'll run into trouble.

I have about 30-35 Hazel rules set up to handle almost all of the variations that come in via scanner. The rest are handled through two simple TextExpander rules that set up a file name based on month or day. I just modify them with keywords to help Hazel figure out where they go afterwards.

I hope this little excursion into my brain wasn't too terrifying.

My Paperless Office - One Month Later

A couple of months ago, after reading David Sparks' Paperless, I started concocting a plan to create a paperless office. If you want the quick version of this story, here it is: It took some elbow grease, money and planning but now I have a workflow that is nothing less than magical.

I started with a large filing cabinet of old papers. Insurance documents, car documents, bills, receipts, health insurance information, and other detritus were cluttering up its many overflowing folders, stuffed into drawers. The filing cabinet weighed a ton and I knew that some very old and unnecessary documents were lurking inside.

The plan was to reduce this mess to something that was simple to maintain, even though it would take no small effort to set up. The resulting workflow had to be backed up, secure and easy because if it took a lot of sweat to get files into the system, I knew it would fall into disuse and eventually abandoned completely.

The parts of the workflow that took shape were these:

  • Document scanner
  • Hazel rules
  • TextExpander
  • Shared folders
  • A Mac Mini
  • Knox
  • CrashPlan
  • Time Capsule

Workflow Overview

The basic idea was to be able to open my Macbook Air at my desk, open my document scanner and send the document digitally to a shared machine. At that point, the file would be appropriately named and filed in a nested folder on a secure (encrypted) drive volume which is then backed up in a verified backup system.

The keys to the system were to be simplicity, portability (using PDF), security (using Knox) and flexibility (using Hazel, shared folders and TextExpander).

The Scanner

For years I've procrastinated about creating a paperless office. One of the reasons was that I wasn't sure of what the best scanner technology was. Buying a scanner is expensive and, if you pick the wrong one, you're kind of stuck. Putting hours of thought into something that encompassed so many steps was something that was difficult to get my head around.

I decided that the scanner was the first piece of the puzzle I needed to put into place. After a lot of searching Amazon, taking MacSparky's recommendations into consideration and reading a lot of reviews I decided on the ScanSnap.

The basic functionality, after a few tweaks, is that you open the scanner lid, open the software on your machine, place your documents and hit the glowing blue button. At that point, the document is scanned and OCR'ed and dumped into a directory. It really couldn't be any easier.

Hazel rules

It's from this point that Hazel takes over.

I have two sets of Hazel rules. One set is monitoring the Scansnap folder on my Macbook Air and, when a file hits that directory, it bounces it immediately to the Mac Mini server. The other set of rules watch the destination "processing" folder on the Mac Mini and handles naming and "filing" the PDF files when they reach the network folder.

I scan a fairly limited amount of files on a regular basis -- electric bills, Internet bill, bank statements, car insurance etc. For each one of these types, I created a rule in Hazel that looks for specific text keywords in the document (supplied via the Scansnap OCR) and then names and moves the document to a nested subfolder like "Car Insurance".

One thing that it slightly unique with my setup is that these Hazel rules have the keyword "TEXT" in the rule title. This is to designate that this rule is processing the file based on the OCR text content. I also have rules that process files based on keywords in their title, and for these I use the obvious "TITLE" in the Hazel rule to easily find and modify them.

For an in-depth set of suggestions on file name schemes, watch the videos in MacSparky's Paperless. The upshot of all of this is that, once the files hit the action folder, it gets renamed and bounced to a requisite folder in a matter of seconds.

TextExpander

Sometimes there are one-off files that don't get picked up by Hazel. This is to be expected but you'd want your paperless system to encompass these files as well so, for these situations, I again look to Hazel and TextExpander.

In this case, I will scan the file and then rename it with a consistent date format, including the category keyword in the title as well. For instance, if I get some supplementary information about car insurance that isn't a bill, I name the file "2012-08-31 - car insurance supplement.pdf" and the Hazel rule that is scanning by TITLE will find "car insurance" and move the file to the right spot in the Knox volume. It's a quick and easy workaround to unique files and still preserves most of the automation.

A Mac Mini

The Mac Mini is a fairly new machine that acts as our home server for things like multimedia viewing and music listening etc. Its wired via HDMI directly into our Sony TV. I was a bit skeptical at first as to whether or not it was worth having a pricey machine hanging off of my TV but it has been amazing. I definitely recommend this approach if you're looking for a good multimedia solution in the living room.

Knox

Knox is software by Agilebits which creates an encrypted, secure file volume on your computer. It functions just like a drive when you're logged into your computer, but if you move the file volume around, it is a completely secure file which is basically impenetrable.

Since I wanted to have an online backup system, it was important to me that whatever got uploaded onto the internet wouldn't be readable by someone if they were able to hack into the backup cloud servers. Even if they got access, they'd just get a big blob of a file which was completely useless to them.

The encrypted Knox volume gets backed up on a nightly basis. Just to be safe, these files are backed up to my Time Capsule as well.

CrashPlan

After doing quite a bit of research, the best online backup system I was able to find that combined simplicity and features was Crashplan.

I don't really like the interface that much as I find it slightly confusing and inconsistent. The fact that it uses Java is a thorn in my side given Java's security and speed issues but the good outweighed the bad in this case. I have Crashplan running on the Mac Mini and it uploads the Knox volume on a nightly basis.

Given how important some of these documents are, I think the backup workflow which involves both local and cloud storage of encrypted data is good all around solution.

Caveats and Warnings

You'll need to keep some documents in paper form and have them handy at all times. For instance, the other day we lost electricity and I needed to call the utility company. Sadly, the bills containing the account number were safely tucked away in a machine which had no power.

It was a wake-up call that I might need to keep a rolling, "latest month" folder of files which get shredded at the end of the month as the new bills show up. I'm not quite sure how I'll do that yet but, for now, they are collecting dust as an unsightly pile on my desk.

The first thing I did after the power came back on was put all utility account numbers in 1Password. At least that's one particular problem that won't happen again.

The Magic

When the system works as I planned it, it is akin to magic. I get the mail, sort it into a pile which gets shredded immediately (credit card applications and such), gets recycled without shredding (circulars, junk mail) and then the bills and bank statements get fed into the scanner one by one.

The files hit the Action folder on the Macbook Air and get whisked away to the shared folder on the Mac Mini where Hazel intercepts them, renames them and files them.

Every day, these files are backed up via Time Capsule and then, several times a week, get backed up to Crashplan offsite.

The total amount of effort to get these documents into my system is the press of one glowing, blue button on the Scansnap. Amazing.