I've been working with my good friend Dave Woldrich on CardMeeting, a neat new way to do agile planning, brainstorming, and collaborating when you can't be physically together.

I've said for years that index cards, table, and a whiteboard are the best way I know to plan. The problem with them is that they don't work long distance. While I would prefer that everybody get together, that isn't always possible.

I've been hoping for someone to create a good tool for distributed index cards for some time. I even mentioned it in the Cards, Table, and Whiteboard blog entry. Nobody ever did, so finally I decided to take it on myself. I partnered up with my good friend Dave Woldrich (who also did the Fit for C++ port) and we just did it!

The coolest thing about this whole experience is how it's given me a chance to act as a customer to an agile project. (Dave is doing the programming; I'm acting as agile customer.) We started working about four or six weeks before the Agile 2006 conference. By relentlessly focusing on just the features that matter, we were able to get a working demo up and running in time for the conference. Six weeks of working in our spare time and we had a demoable release! (Okay, it didn't hurt that Dave's a wizard programmer, and he put in a lot of intense effort.)

Now it's a few weeks later and we have a full-blown alpha, complete with private CardMeetings, that is completely usable. Sure, it has some rough edges, but we're steadily improving. You can see from the News section on the CardMeeting home page how quickly things are changing.

This has been a neat experience for me and it's proven how well agile planning works when you are totally focused on releasing. I intend to keep a running diary of our experience in taking CardMeeting from concept to profitability, so watch this space.

As I said, CardMeeting is ready to use today. Create your own CardMeeting community at and let me know how it works for you.

If you liked this entry, check out my best writing and presentations, and consider subscribing to updates by email or RSS.