How can online collaboration tools like Basecamp support effective project management? That's one of the questions that came up at the values-based project management session I attended at Web of Change, led by Rob Purdie of Important Projects. I wanted to continue the conversation with Rob himself, and promised to blog our own project management workflow at Social Signal so that he could offer his comments and feedback on how to improve our approach.
Let me begin by saying this is very much a work in progress: we're still searching for the Holy Grail of optimized workflow, and feel like the tools we use now — particularly Basecamp — don't fully meet our needs. I'll address some of those limitations towards the end of this blog post, but let me begin with an overflow of what we use and how we use it.
Our main tools are:
- Basecamp: for project-related task management and client communications
- OmniPlan: for prospective project planning and gantt charting
- Remember the Milk: for internal task tracking
- iCal: for internal scheduling and time tracking
- Google spreadsheets: for capacity planning and docket review
This blog post will focus on how we use Basecamp, which is our main tool for managing the ongoing work of individual projects. The fact that we use so many other tools speaks to the issues we have with Basecamp — which is one of the issues I'm particularly keen to hear Rob address. We're also fans of — though not religious adherents to — David Allen's Getting Things Done methodology, which has influenced our approach to task management.
We set up a Basecamp site at the beginning of each client engagement. Some of the best practices on Basecamp set up that we are trying to adopt as our standard include:
- posting a welcome message to Basecamp that explains how to use the site (see VentureMarketing's Basecamp Welcome PDF, and their Basecamp client jumpstart, for another approach)
- presenting an overview of Basecamp at an early client meeting
- when clients e-mail us outside of Basecamp, redirecting them back to the Basecamp site, often by copying-and-pasting their messages into Basecamp
I add all our subcontractors to Basecamp as members of Social Signal, so that we can cover any technical issues without dragging the client into the Drupal abyss. We recognize that our clients don't always benefit from seeing how the sausages are made, and when it gets into some of the intricacies of module development or permissions configuration, we like to keep the excruciating details private so that clients aren't drawn too deeply into technical issues. Unfortunately, Basecamp only allows private communications among members of the same company, so we choose to treat all our subcontractors as members of Social Signal.
Structure and usage
We use messages for communications that require an action or response. This includes:
- communications with clients and client updates
- client requests (bug tracking, questions, etc.)
- internal discussions of how to handle tasks (marking these discussions private so they aren't visible to client)
We use writeboards for communications that are FYI only (though we may use messages to notify each other of a new writeboard).
We use task lists for items that require a "next action" (in GTD terms).
We have recently refined our use of messages to keep better track of all open loops. We respond to urgent messages as they come in, and at least once a week (and ideally every 2-3 days) we review all the messages in a given project space, and update status. We find that updating message status on a real-time basis is excessively time consuming and leads to duplication of effort.
Our message categories vary a bit by project but mostly reflect major categories of project activities (see screenshot — some items deleted to protect client privacy).
When we review a message we briefly note our response, action required, or action taken, even if it's already completed, for future reference.
We then edit the title of the original message to note the status of that message:
- QUEUED: the message requires an action or response. An item is only marked as "queued" when it has been added as a specific task or tasks in a to-do list. An item may be marked as "queued" even if we anticipate that it will prove too low-priority to address; however by adding it to our queue it can be reviewed with the client during our next review of outstanding tasks, and prioritized accordingly.
- CLOSED/RESOLVED: the message requested or required an action or response that has now been completed. We switched from marking items "resolved" to marking them "closed" because sometimes messages are closed because the team (including the client) decide that no further action is warranted, because the item is low priority or because the issue is not expected to recur. When an item is closed we ALWAYS leave a final comment noting the action or decision that led us to mark the message closed.
- NOTED: the message provided information that is needed by the team or client, but does not require direct action. When an item is noted it is usually placed in a writeboard we expect to refer to at a later date, e.g. a "think about for phase 2" writeboard or an "items to review before launch" writeboard.
Editing our message titles to reflect the status of each message gives us an at-a-glance view of which client issues have been addressed, and which need to be reviewed for action items.
We have recently shifted from using fewer, generic to-do lists (which we were trying to standardize across projects) to using a lot more to-do lists, each one corresponding to a set of related tasks. This reflects the GTD notion of grouping tasks by "contexts" or as "projects" consisting of multiple tasks.
By grouping related tasks we ensure that:
- related tasks at the same time, and can therefore consider a solution that might address multiple requirements or bugs at once
- tasks can be ordered in sequence or priority, so that a team member can quickly see which tasks must be completed in which order
- a team member can see who else is working on related tasks
- tasks don't get lost in long (20+ items) lists
When we had fewer categories we found that the very long lists of tasks under each made it hard to identify relationships or priorities; the shorter list of tasks makes this much easier.
We keep our to-do lists organized alphabetically; when we decide to prioritize a specific set of tasks as the next focus for our work, we move that to-do list to the top of the page and mark it "P1: to-do list name" (as in "priority 1").
Writeboards are our long-term storage area and collaboration space. We use writeboards for:
- to-dos that we are considering (often for a future phase) but haven't prioritized/organized yet
- reference information (like a description of our e-mail configuration)
- meeting notes
- personal notes that we might want to share with other members of the team, but which don't require an action from anyone (we may still use messages to notify the rest of the team that we have created a writeboard for them to look at)
Our experience with Basecamp has been shaped equally by the technology itself, and our diligence in using it. Of course, these aren't unrelated issues; if Basecamp really met all our needs, so that we could keep all our tasks organized in one place, I suspect we'd be much more consistent in using it.
We find that Basecamp works well for:
- collecting client and team correspondence in one place for future reference
- organizing project tasks, particularly site/softeware development tasks
- keeping track of our "someday" ideas in writeboards
- centralizing our project notes as writeboards
We find that Basecamp works poorly for:
- personal task management; we often transfer our basecamp tasks to Remember the Milk, where we each maintain an integrated personal "to do" list
- sensitive communications with other team members (due to lack of privacy settings)
- project planning (we use OmniPlan, then transfer milestones to Basecamp)
What we like about Basecamp:
- industry standard — most of our partners and subcontractors, and a few of our clients, have extensive experience with Basecamp
- nice-looking user interface
- client-friendly/intuitive to use
- e-mail notifications include full text of the message
- availability of 3rd party add-ons
What we need that we're not getting from Basecamp:
- deadlines for specific tasks, not just milestones
- priorities for tasks
- ability to assign one task to multiple people (though I recognize that could be a mixed blessing)
- ability to comment on a task
- bug tracking (could be addressed by ability to comment on a task)
- ability to make messages/to dos private when communicating with people outside our own company
Nice-to-haves would include:
- spreadsheets (as well as writeboards)
- personal calendaring
- ability to store project templates so we don't have to recreate all our categories from scratch each time
- option to automatically alphabetize categories
- option to keep message categories and to-do lists in sync (i.e. creating a new to-do list would create a new message category with the same name)
- tags in addition to categories
- better RSS output and/or an iGoogle widget that lets us interact with our tasks from our Google homepages (as Remember the Milk does)
One of my favorite compulsive activities these days is looking into Basecamp alternatives. So far my conclusion has been — to paraphrase Winston Churchill — that Basecamp is the worst possible project management tool, except for all the others. Here are some of the "others" I have looked into, or mean to look into; I'll try to come back to this post and annotate the list with the reasons we haven't moved to any of these:
Unfuddle — intriguing because it includes subversion and bug tracking
Clocking IT — a free basecamp alternative, but as far as I can see no built-in messaging. Time tracking, though.
Michael Silberman of EchoDitto put me onto Central Desktop as a somewhat pricier Basecamp alternative that includes many of our concerns about Basecamp. We're trying it out, and it looks promising, although I'm a bit disappointed in the look and feel (it's not nearly as pretty as Basecamp) and daunted by the prospect of moving our projects over. However the prospect of being able to assign deadlines to tasks (imagine that!!) probably outweighs every other issue.
Brian Benzinger's roundup of project management tools for developers provides quick takes on some of the above, plus many more.
In the course of my obsessing over Basecamp and project management workflow I've found a number of useful blog posts on other people's use of Basecamp and Basecamp alternatives. For some reason many of the blog posts I've come across are by friends in the non-profit tech sector; I'm not sure if that's because of Google's freaky habit of customizing search results, or because non-profit techies are somehow more obsessed with workflow (comments, anyone?) Here are some of the posts I've found helpful.
Sonny Cloward mapped his workflow, which hinges on Basecamp, Backpack and Mozilla Calendar.
Ruby Sinreich blogged her thoughts on Basecamp plus GTD, which includes creating virtual "people" who represent different contexts, so she can assign her tasks to contexts.
LifeDev reports on using Basecamp with GTD, in this case using to-do LISTS as contexts.
Jon Stahl provided an overview of collaboration practices at ONE/Northwest, which includes using Basecamp.
I'm going to take Central Desktop for a serious spin. I'm going to continue praying to the 37Signals gods for true Basecamp-Backpack integration, or to the Remember the Milk guys for Basecamp-RTM integration as an answer to their "how can we start charging for RTM?" quest. I'm going to try out Omni's forthcoming OmniFocus task manager.
And I'm going to resist the temptation to engineer an in-house Drupal solution to our project management wishlist. After all, our needs aren't THAT exotic, and there are an awful lot of people chasing the same vision. I'm trusting that one of them will get us much closer to a solution before long.
Meanwhile, I'm eager to hear from Rob Purdie and others about how we can improve our current Basecamp usage. In particular I'm curious to hear:
- how people use Basecamp as part of GTD
- best practices for to-do list structures and message categories
- best practices for managing privacy and disclosure among staff, clients and contractors
- advice on how to manage personal to-do lists within/alongside Basecamp
- how people cope with Basecamp's lack of task due dates
- experiences with Basecamp alternatives
- advice on encouraging good Basecamp habits among staff, clients and contractors
And if you've blogged your own project management approach or workflow, please let me know by sending an e-mail to alex [at] socialsignal [dot] com, or posting a comment here.