Personal Kanban and Omnifocus - Part 2

This post follows from two previous posts:

After writing the first post about Kanban, I decided that having a list of on-hold, work-in-progress, and done projects in OmniOutliner wasn’t much better than having them in OmniFocus. It was a prettier list than before, but it was still a list.

After a bit of deliberation, I thought I might try mocking something up in Sinatra and deploy it locally using Pow.

It turned out not too shabby:

The drawing-board

Part 1: Filing the projects

The first part of this little operation is to collect data from OmniFocus and store is using jcache. I’m storing the following data-points:

Depending on how much detail you want in your display you could use more or less data.

This is all retrieved from OmniFocus - if you’re using a series of text files or a TaskPaper file or a Things database or whatever, you can presumably fetch all of this in your own various ways. The important thing is that at the end of the fetching, you have an array of projects in an easily-accessible form.

Part 2: Displaying the projects

Coming into this, I thought it would be tricky, but it turns out not to. I’m basically creating an html page on the fly. Here are some cool features:

Columns

The Backburner and Done columns are significantly different to the Work in Progress column. They’re about half the size, but the projects span the whole column (while I can fit four projects side-by-side in the WiP column). Since I don’t need a huge amount of detail in these tasks, they don’t take up much vertical space.

Work in Progress

The WiP column displays a number of “active” and “total” projects. If the number of active projects climbs above 5 (and it’s practically always above five, but none of us is perfect), it’s highlighted in red, to remind me that I shouldn’t have too many projects on my plate at any one time. The number of total projects is as low as possible, but some of these are things I’m waiting a week or more to do: it’s perfectly fine to shunt them to the back of my mind for now.

Task displays

Work-in-progress tasks tell me, at a glance:

The individual projects also link back to OmniFocus using a link of the form:

1
omnifocus:///task/<ID>

Remember how I stored the project ID? This is why.

Tasks are colour-coded depending on the folder they belong to.

Refresh

Since upgrading to MacRuby, I’ve had to build in a few workarounds for the foo.tasks bug. Unfortunately, this makes the refresh take about ten seconds to run its course. Refreshes occur every six hours or so (via launchd), but I can also force-refresh using the link in the top-right of the app’s window.

Remote access

I can access this window on my mac via http://kanban.dev, but I can also grab it on my iPad using some sort of advanced witchcraft from the folks at Pow. So I have a bookmark on my iPad that will serve me my projects when I’m AFK but hanging around home.

GitHub link

Here’s how it all works underneath the bonnet: GitHub linky.