dotProject vs Basecamp

All of the normal disclaimers apply here: I am a core member of the dotProject team and have been for 3+ years in addition to using it for quite a while prior to that.

Update:  As of April 2008, nearly all operations have been moved away from Basecamp in favor of Highrise, also from 37signals and dotProject has been replaced by web2project.

Update: As of January 2009, all operations have been switched out of Highrise and into web2project. That's right, we have a module for web2project – called Skyscraper – that performs all of Highrise's CRM-like functionality tied directly to strong project management principles. We're hoping to release a beta in April 2009.

One of the questions I get most often is:

Which is better: dotProject or Basecamp?

Well, to be honest with you… neither. I believe that although they're both called "project management tools", they have fundamentally difference uses, strengths, and weaknesses. And I use both regularly and on a daily basis.

Since Basecamp is the visiting team here, I'll look at it first:

Basecamp is great. It's pretty and it's easy to use. I personally love the UI in its responsiveness, usefulness, and general streamlined look and feel. In addition, it is the father of Ruby On Rails and that alone deserves a huge acknowledgement. If you're not familiar with it, check it out and you'll be amazed at how useful it is and how productive you can be. Regardless, this has been the single biggest driver for its popularity.

In terms of functionality, the features it has are simple, straightforward and work basically as expected. It is ideal for the "brain dump" sort of things that you get from meetings, calls, etc. It is a quick and easy place to compile all of your notes and break them down into basic groupings. For many people this is the extent of what they need to do.

For a bit more functionality, you can even expand upon those items by assigning them to people and creating milestones. Combine that with their Writeboards and Chat and you have something that starts to look like the killer app for Project Management. But I believe this is also where the functionality doesn't quite cover the gap. Once you have these aspects, the next logical thing is "how do I log time against these?" The other downside is the fact that tasks are either "Done" or "Not Done". Regardless of what you think of percent complete, not having this can make task tracking difficult.

dotProject, on the other hand, approaches the whole problem from a more traditional Project Management point of view namely: Projects and Tasks. In dotProject, you can assign tasks to multiple people who can then log their time against the task. In addition, they can mark a task as a particular percent complete. You can see someone's tasks, due dates, etc on a simple Todo list and it's the first screen they see after logging in.

To add extra information to a task, you can assign a number of links, attach Files, and even log Notes against the Task or Project via the Journal module. In terms of making sure all the information is there, I don't believe there's a better solution.

Admittedly, in terms of UI, dotProject needs some work. Unfortunately, getting that point has taken a large amount of time and effort. It's still on the agenda, but other things had to come first.

So since each have differing strengths and weaknesses, here is how I use them:

  • When on a call or in a meeting, etc, I log all notes into Basecamp or paper if a computer is not available. This serves as a quick brain dump and will eventually become a secondary archive.
  • Next, I create them in dotProject with their corresponding deadlines, estimates, and (most importantly) dependencies.
  • For small tasks that are expected to be short – such as "Call So and So" – they don't make it into dotProject at all or are included in a "Misc Admin" task attached to the project.
  • On a day to day basis, I review Basecamp to establish priorities and make sure that things are moving along as expected.
  • After I am satisfied with the schedule, I assign the tasks to the right people. dotProject notifies them and sends a link to the task.
  • I and everyone else log time against the task until it is considered complete. Some customers have access to view this information, some don't.
  • Once the task is complete in dotProject, I mark it complete in Basecamp.

In terms of workflow, it's certainly not perfect but it ensures that all items are captured, everything (eventually) gets done, and time can be tracked and accounted for as necessary. More importantly, it uses each of the applications' strengths and works around their weaknesses. Even their "weaknesses" are really just tradeoffs in terms of design and usage goals. If you come from a formal Project Management school of thought, then dotProject is going to be closer to what you envision as a tool. If you come from less strict school of thought, then Basecamp is probably your tool. The interesting thing is determining when – and if – your organization needs to move from one to the other