INBOX Project Development Setup
Since we started INBOX in 2003, we got to try many different tools to manage our projects and develop Web sites. We did a lot of trial and errors but we ultimately found the perfect setup for us: Basecamp and Springloops.
People reading this blog already know I’m a 37signals evangelist, so no surprises that we are using Basecamp at INBOX. But really, I’m more of a “what’s-the-best-tool-to-get-things-done” evangelist. What do we want to accomplish, what do we need ? Then let’s find the best tool to do it. This is why we use Basecamp and Springloops. And you know what the best thing is ? Springloops can talk to Basecamp!So what are those tools ? Well first, let me remind my readers of what we do at INBOX. We are a Web development company building Web sites and Web applications based on Open Source technologies. So we live on the Web. It’s our turf, our playground, our passion! But to do the job right, we need the right tools.
Managing a project
First, we need to manage projects. There are a million project management tools out there. From the simple tasks management software to the full blown Microsoft Project beast, you have a gazilion options, and you can pay from 1$ to a million $. But most of these tools don’t focus on what’s really important in managing a project: communication. For sure, if you work alone, you don’t need to bother yourself about communication. But as soon as you start to dream of something bigger for your commpany, you need to start working with other people. And what’s they key when working with other people ? Communication! The rest is nearly irrelevant.
So Basecamp does communication beautifully! Everything is done to make the user experience quick and easy so we can focus on communicating to other people in the team: sending messages, creating milestone, todo list, writeboard, etc…
Manage code
And then comes Springloops. But what is it ? I briefly discussed this in a recent post. But, as they say themselves:
Springloops is a unique source code management tool focused on web development teams. It allows you to code in parallel and share your code safely concentrated on results, not on lost changes or overwritten files. You get rapid collaboration in protected space. Thanks to the project management perspective it serves the getting things done attitude. Moreover, Springloops reduces repeatable activities in your day-to-day work. It makes great things simple.
Translated into geeky talk: Springloops is an SVN service but with great added features like a neat interface, pretty changesets, great code browser, easily review of changes, instant preview, etc. And the feature that saved us many hours every week are the deployment servers. For every project we have, we setup a development and a production server. On the dev server, we enable the Autp-Update feature, which will automatically deploy every changes after each commit. So basically, a developer fix a bug then commits it. His change gets automatically deployed on the dev server. The developer can then confirm that the bug is fixed, and then, via Springloops, he select Update to revision X on the production server and hits the Now button. Changes will then be deployed on the production server.
Linking both!
Great, but how about the integration between both ? That’s another great part! Ok, so we have a project in Basecamp:
- We create Milestones (the different steps we need to reach in this project
- For each Milestone, we create Todo lists
- In each Todo lists, we create todo items which we can assign to someone and we can set a due date (both optionals)
An example Todo list could be:

Then, because we have a corresponding project on Springloops, linked to its Basecamp project, when we go in Springloops and look at the To-Do tab for this very project, we can now see this:

The todo list we created in Basecamp is now in Springloops. And each item has a specific number associated to it. So, the developer fix a bug and in his commit message, he can use something like:
Fixed todo:49408491
Springloops will detect that this commit is linked to item 49408491 and will fetch the description of this item and use it as the log message:

Moreover, Springloops will also check this todo item as completed on Basecamp, so you don’t actually need to mark it as checked yourself.

Development Roundup
Optionally, you can also configure Springloops to create a new message in Basecamp on every commit, daily or weekly. I think daily is a good setup. So, everyday, a message will be posted on Basecamp with the summary of what was committed. You can even notify people in the project if you want. To set this up, in Springloops, go in the Log tab and click on top right on Message log to Basecamp:
In conclusion
So, really, Basecamp and Springloops are a great combination for us. It streamlines the process, everything is tracked, everything is centralized. What would we do without these great tools!

Recent Comments