Personal Agile Task Management with OmniFocus

The Zenoss dev team uses Rally for project management. It's fine for planning the activities of the entire team, but as a personal task manager I find it pretty useless. Its interface is unwieldy, and it doesn't allow for more or less fine-grained tasks. Great to get a high-level view of an iteration; bad for any low-level organization.

Since I like OmniFocus for my own task management, I've developed a system that mirrors Rally at the highest level, but allows for much more versatility at a lower level (not, of course, restricted to Rally; should function perfectly well for any Agile project). OmniFocus and Rally sync up surprisingly well, as far as that goes, but OmniFocus lets me take those extra steps to get myself an actual task list for the day and switch priorities on an hourly basis.

First, the basic translations:

Agile ConceptOmniFocus Analogue
IterationProject Folder
User StoryProject

Now, the details. I've organized my project folders at the top level according to my various roles; under "Zenoss Developer" I have two folders, Current Iteration and Backlog. Since I don't use OmniFocus for project planning, just for task management in the foreseeable future (which usually doesn't include next iteration), there's no need to have folders for every iteration in the release.

When I break a project down, I put the resulting projects and tasks under the Backlog folder, in subfolders according to feature ("User Interface," etc.). I also have a single-action list called Tickets into which go actions representing tickets I need to fix. I try to include time estimates where appropriate.

After we finish our iteration planning, I modify the projects in the Backlog folder with any changes, then I drag those projects and tickets planned for the iteration into the Current Iteration folder. I then break down tasks into sub-tasks for the nitty-gritty stuff that's too small for Rally but for which I still want a reminder.

When I create a project based on a user story, I use a template prepopulated with the tasks associated with every user story—code review, running unit tests, communication with QA, etc. To this I add the tasks unique to the particular project. This cuts down on the drudgery of data entry while ensuring I don't forget anything. Contexts are all preset as well.

Now my iteration is easy to see (and manage) at a glance. I have a "Current Iteration" context focused on the project folder, so I'm not distracted or overwhelmed by the entire project at once. When priorities shift, I can change the order of the projects within the Current Iteration folder, or move things in and out of the Backlog folder.

When the iteration nears its end, I've already begun to do some of the planning needed for the next iteration simply by virtue of using OmniFocus in a way compatible with Rally. Anything left in Current Iteration gets split to the next iteration, and whatever's at the top of Backlog gets dragged into Current Iteration to fill in.

I don't worry too much about time estimates in OmniFocus, although I do make some attempt to populate the field just for the sake of keeping the information at hand. But generally I leave the reconciliation of my velocity with tasks to iteration planning in Rally.

Anyway, this little system works pretty well for me. While at a high level it mirrors Rally, I also get the benefits of sub-tasks and user story templates, as well as integration with non-Zenoss-related actions.

How do you reconcile your Agile project with personal task management? I'd love to hear your methods in the comments, OmniFocus or no.


Post a Comment