Dreaming in Code

Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software

There’s more to creating a successful open source application than just the coding.

The story basically starts off with Mich Kapor, the man who started Lotus Software (best known for Lotus 1-2-3, the spreadsheet everyone used between VisiCalc and Excel). Just before leaving, he created Agenda, a personal information manager that inspired the development of Chandler, the open source project that is the focus of this book.

While the story of Chandler (which at the time of writing is nearing its 0.7 release) is the main thread, Rosenberg also tells the story of how software is written; Keeping in mind, this involves quotes from Apocalypse Now and the re-telling of an ill-conceived Stonehenge recreation from the early 1980′s mockumentary This is SpinalTap, and you get the right idea: that this is a fun story about a depressing topic- namely, why is it that some very smart people are still running into the same kinds of problems IBM ran into nearly 30 years ago writing a mainframe operating system, covered in all its gory detail in the classic software text, The Mythical Man-Month.

As I was reviewing this book, I had just finished reviewing Code Craft, a serious book about how to write good software. Like Dreaming, it was a good read, but in Code Craft’s real-world examples, I could see a lot of the same things being done that Chandler’s developers where encountering.

Not to be confused, Dreaming is not about how to write programmes- there’s maybe 1-2 actual examples of code in it, if that; In fact, it does an excellent job explaining technical ideas, like the often-maligned Hungarian notation (and how its inventor bemoaned his idea being taken too literally by programme managers), as well as languages like Python (in which the upper layers of Chandler are written), and other topics like this history of re-usable software, to a non-technical reader.

See also  Taking Your iPhoneto the Max

While Chandler is an open-source project, what emerges from the story is that open-source alone will not make a project’s course any smoother. What does come out are the smart and funny quotes by some well-known open source advocates, such as Linux instigator Linus’ advice that “Nobody should start to undertake a large project.” (p. 174).

As the book goes on, we follow the early releases and changes in direction (moving from P2P to a server model among others) that cause long-time members, including Apple luminary Andy Hertzfeld, to move on. Then later on, the arrival of new applications like Google’s Gmail (which, together with its calendar, competes for a nitch that Chandler also aims to fill) brings into question the relevance of the whole project.

Interesting, the near-death of another early open-source star, Mozilla and it’s rebirth through the stripped-down Phoenix browser (re-named Firefox), provide an inspiration to Chandler’s people about how they might find their way again.

Near this point, starting in the chapter Methods, Rosenberg takes two chapters to look at the history of software development, particularly the problems with predicting how long something will take, starting with the troubled development of OS/360, the operating system for an IBM mainframe that formed the basis for The Mythical Man-Month– a classic on software engineering written in the 1970s. The quote from Vietnam war classic, Apocalypse Now, between the film’s two protagonists, (…my methods unsound? I don’t see…any method at all…”), serve to highlight the problems that seem to occur again and again in software development. Only later in the chapter, when they touch on recent projects.

See also  The Art of Scalability

For someone interested in software development– and despite one person’s comment that programmers don’t read books about software, this is probably a book that it would not hurt to read, not because it will help you avoid problems (history seems to indicate that’s not likely), but at least you’ll know that far smarter people didn’t do any better, and maybe you’ll even see yourself in some of these stories.

As a footnote, OS/360 did get done, and the 360 mainframes went on to be a bestseller (or at least as much of a bestseller a room-sized computer can be), and Mozilla, after they concentrated on Firefox, went on to enjoys critical praise and growing market share years after many pundits had declared the browser war over.