May 13, 2009

Book Review: Dreaming In Code



Dreaming In Code: Two Dozen Programmers, Three Years, 4,732 Bugs, And One Quest For Transcendent Software

I found Dreaming In Code to be a fascinating book. On the surface it’s a narrative of a software development project, with some interesting industry history sprinkled throughout for context. But by telling it’s story, author Scott Rosenberg reveals two underlying truths about software development: producing quality, useful, non-trivial software applications is hard. And no team, no matter how good the members are, is immune to the inevitable setbacks and pitfalls.

Rosenberg, cofounder of the news and entertainment site Salon.com, does a great job detailing much of the early development of the Chandler Project, a “Note-to-Self Organizer”. The brainchild of Mitch Kapor (co-founder of Lotus Development Corp.), Chandler was intended to be the free, flexible, useable, everyman’s replacement for the expensive, corporate, stiff, hard to use Microsoft Outlook as a personal organization and communication tool.

“Chandler is an open source Note-to-Self Organizer. It features calendaring, task and note management and consists of a desktop application, web application and a free sharing and back-up service called Chandler Hub.
Our goal is to serve the way people actually work, independently and together, particularly in small groups, a market segment we believe is underserved. Our belief is that personal and collaborative information work is by nature iterative and that the existing binary Done/Not-Done, Read/Unread, Flagged/Unflagged paradigm in productivity software poorly accommodates the reality of how people work.”

Dreaming In Code is largely the story of how the grand vision of the birth of a new paradigm in personal organization software was slowly brought down to earth by the realities every programmer team faces, despite being helmed by a successful software visionary and staffed by some of the best and brightest in the industry. Faced with a lack of consistent direction, personality conflicts, time constraints, and sometimes simply biting off more than they could chew, the team struggled to find the success they were looking for.

Throughout the book, Rosenberg deftly helps the reader understand the motivation and principles that drove the team to try and create something new and different. To them, it wasn’t just a product, it was the beginning of a movement. But, there was no escaping the fact that it was also a software engineering project, lofty ambitions and altruistic motivations notwithstanding. We, through the author, are there in the meetings and celebrations, the good times and the frustrating times, riding the roller coaster along with everybody else.

Unfortunately, the book ends too soon. Rosenberg spends three years intimately involved with the project, but has to leave to publish it before the product is even close to being shipped. As a matter of fact, as the book comes to a close, we don’t even know if Chandler 1.0 ever shipped at all (it did). From the author’s blog:

It’s been close to six years since Mitch Kapor first announced plans for Chandler, and the application today is quite different from what was envisioned then. But it does fulfill at least a portion of the ambitious agenda Kapor set: It’s fully cross-platform, and, from the user side, it takes a very flexible approach to data. The program was once positioned as a calendar with email and task capabilities, and it’s still got those features, but it’s now presented as a notebook program — it’s “The Note-To-Self Organizer.” You store information free-form and then can organize it according to now/later/done triaging, turn items into tasks and schedule them on the calendar, group data in multiple collections, and share it across the web via the Hub server. I’m looking forward to experimenting more with it.

Aside from the missing end to the story, which can be found online anyway, the book is a great read.

The book jacket says that Dreaming In Code is “Not just for technophiles but for anyone captivated by the drama of invention.” I don’t think anybody who’s not at least somewhat related to software project management would find much interest in it. For those of us who are, though, it’s highly recommended.