April 26, 2007

Getting things done with Tracks

Author: Nathan Willis

I broke down and read Getting Things Done (GTD) in February (after letting the book sit unopened on the couch for a month). When I finished, I was determined to adopt the popular organizational method. I searched for a solid software tool to track projects and next actions, and found dozens of desktop-oriented applications to choose from. One of the GTD axioms is to collect all of your tasks, projects, and lists in one place; since I regularly use four PCs and laptops and a mobile phone, finding a GTD-aware tool that would run as a Web app was paramount. I settled on Tracks; it is open source, easy to use, and accessible from anywhere.

Tracks is a Ruby on Rails application. It comes bundled with the standalone Web server WEBrick so it can run as a locally accessed desktop application, but that is not mandatory. The project provides instructions for installing Tracks on a traditional Web server, too, be it a publicly addressed machine on your own network or an account on a shared hosting service. Installing on a Web hosting provider demands some extra reading, since you might not have full root access.

Installation and setup

The current stable release of Tracks is 1.043. It requires Ruby (the wiki recommends 1.8.2 or 1.8.4), Rails, and any SQL database with Ruby bindings. The WEBrick-based all-in-one packages for desktop access include Rails and SQLite. For server installation, the odds are that your Linux distribution has the prerequisites available through its package management system.

Once the prerequisites are installed, setting up Tracks itself is simple. There is a database template file that you need to modify in order to grant Tracks access to the SQL database and a few configuration options, but Tracks' installer will create its own database files. Once it is up and running, you can visit the app's signup page at http://127.0.0.1/signup (or at whatever URL you chose) and create the first user account.

By default this first user account is the Tracks administrator, and it alone has the power to add other users to the system. Unless you specifically grant user-creation privileges to other accounts, you can run Tracks on a public URL and not worry about evildoers adding themselves to your system. You can add multiple users if you wish, although as of this release different user accounts cannot share projects.

Getting started getting things done

The Tracks home page shows you all of your active contexts in the main column, with next actions for each nested underneath. The right-hand column lists your active projects, which you can click on to examine in depth, add actions, and attach notes. At the top of every page is a bright red box showing the number of next actions for whichever context or project you are looking at.

Adding a next action is always one click away, right at the top of the right-hand column. Every next action is editable wherever it is visible; simply click on the pencil icon and you can add notes, change the context or project to which the action is assigned, or change the due date (if there is one) via the pop-up calendar widget. Tracks automatically sorts all next actions by due date, color-coding them as the date approaches.

Tracks uses AJAX to modify pages on the fly, which gives it a responsiveness on par with a desktop app. You can drag and drop contexts and projects to rearrange them, you can collapse and expand nested menus, and adding or editing next actions is a breeze.

I find the simplicity of Tracks' interface design to be a strong point as well. GTD is all about efficiency, and Tracks puts the information you need front and center, but without looking boring. It is clean and straightforward.

Finally, Tracks provides a smorgasbord of RSS feeds. You can subscribe to feeds for each individual context or project, plus "all actions," "today's actions," "this week's actions," and "most recently added actions." In addition, each feed is available as plain text and in iCalendar format.

Nitpicks and conclusions

Tracks does have its weak spots, though. The biggest is that it does not implement a complete GTD methodology -- only the action list portion. For me, that is fine, but I know from examining other GTD apps that there are some users who want to integrate goal-setting, brainstorming, filing, calendaring, delegating, and more all into one program.

Some of these steps I don't see fitting into the scope of the project -- do we need another Web calendar client, for example? But the development team takes them all seriously, and has a healthy discussion of them on its bug tracker. Development is still heavy. Already the latest code in Subversion adds important features such as adding a next action via email.

The unavoidable down side of using a Web-based task manager, of course, is that you must be on a working network connection in order to use it.

I would really like to see some form of open standard for GTD information exchange. That would help with interoperability and migration between apps, but it is way beyond Tracks' scope.

Still, Tracks in its current form is good enough that I have actually continued to use it for three months and counting, which is a testament to its painlessness. After all, "getting organized" is a lot like "getting into shape" -- most people work at it with short-term success, but they start and stop a lot, changing methodologies frequently because because it is hard to find one that fits them.

Managing actions and projects is fast and easy with Tracks, which fits my workflow nicely. And for me the killer feature has always been accessibility from any location, which Tracks provides.