How I keep track of TODO items

I came to a realization this morning. I am a programmer. I am not a professional emailer. When I want to get work done, I open XCode, I do not open my email. For this reason, it makes literally no sense for me to keep my tasks in a browser window. From now on, I’m keeping all my tasks in a TODO file with the project, where they belong.

Read-on for some history and analysis of my project management habits.

Over the past couple of years, my employment has changed dramatically for the first time in about ten years. Before that time, my todo list had largely been governed by a project manager whose job it was (at least partially) to keep track of my status on the project and make sure that my tasks remaining weren’t going to take longer than the time remaining for the project. (Thus, it was in their interest to keep track of what I was working on, and what tasks remained.) There were all kinds of shared files over the years that helped to keep track of this, the last few years, the PMs were fond of using burn downs, but the point is that my tasks (at least high-level) were usually in a spreadsheet somewhere. If I wasn’t sure what to work on next, (rare, since we also had regular project meetings), I could always check the spreadsheet. The end result is that I rarely kept track of my own tasks (other than on a very “minutia” way, and when I did, it was usually in the code, marking TODO items with comments where I knew that tasks remained). Occasionally, usually on a larger project, when there were things I knew I didn’t want to forget, and nobody else cared about, I would keep a single file in my home directory on my local machine, and that would remind me what was next.

Oh, and I did try and keep emails in my inbox that were still “action items”, a practice that I still continue, although my inbox is considerably more out of control than it has been at the best of times. I don’t really recommend this, but for “business” tasks, I don’t (currently) have a better place.

Anyway, I eventually left that job, and I have to say that suddenly working without real project management (at least on the level I was used to) was both freeing, as well scary in the same way that I imagine walking a tightrope without a net to be scary. At my new job, there was one guy who sort of acted as a PM, but he was more of a client liaison. It was definitely part of my job to keep track of tasks remaining on a project, although we had software to help with that task. Specifically, we used the excellent Pivotal Tracker. Now, I got used to it, but there was something that always felt not quite right about using Pivotal to track my tasks. It felt like a lot of overhead without a lot of benefit (although it’s possible that the benefit was not necessarily for me, it was more for my employers, who could keep track of workload, and how much folks were actually getting done). But of course I wasn’t really doing anything else, so it was absolutely indispensable at the time. You definitely have to keep track of your tasks SOMEWHERE.

Eventually, I left that job too, and now that I’m all out on my own, I have more need for project management than ever before! In the short term, I ended up keeping my high-level tasks in GMail. Google has a “tasks” widget that integrates with your gmail browser window, so at least it was always there when I checked my email. This is okay, but really falls down when you want to assign a lot of sub-tasks, as the widget doesn’t allow you to collapse tasks in any way.

Do a little googling, and you’ll see that there are literally hundreds of software products for project management. So I decided to try out a couple of the free ones, and I won’t list them here, because frankly, they weren’t all that great. In fact, until today, I had been still halfheartedly using them. I had also been halfheartedly keeping TODO files (simple .txt files, typically just named TODO) in all my projects. The TODO files were updated more frequently, mostly because I saw them every day. In fact, for one project, Oppo-Citrus, I had tasks spread out over FOUR places, the TODO file, one of those web-based pieces of PM software, google tasks, and a google doc I had started a long time ago, when I was brainstorming the project with a friend. Obviously, this situation was out of control, but I hadn’t realized it.

I came to my big realization this morning. I spent some time consolidating all my Oppo-Citrus TODO items into that one file, and boy does it feel good. I’m sticking with filesystem TODOs until I have a good reason (probably related to collaboration) not to. Furthermore, keeping my TODO on the filesystem means that my tasks are versioned with git. This means I get things like history and versioning for my task list basically “for free”.

(It’s worth noting that, for the client project I’m working on, we are also using a web-based solution, BaseCamp. It’s okay. I’d used basecamp before, and it’s good for keeping track of project communication, but its task management is only a small step up from google tasks. I still have a TODO file for that project, and there is one other programming collaborator on the project, and he uses the TODO file too. It’s been working out great — with version control, you can always see who added or removed tasks from the TODO — and that’s been another reason I think TODO files are the way to go.)

One Response to “How I keep track of TODO items”

  1. Žiga Says:

    I have to say I had the exact similar situation with the TODOs. :)

    Now, I have one global daily TODO text file (with DONE history keeping) for all projects and I copy from project TODO files into it every morning.

    I also use Clear for handy on-the-spot task input. Stuff, that I complete usually really soon, or move to the daily TODO soon.

    We have some good experience with Asana for keeping track of tasks for a whole team.

    Same thing on the inbox. :)

    Cheers!
    Žiga