It follows the progress of the first few years of the development of an Open Source project called Chandler. The project which was intended to take one year was just beginning to get its first features usable after about 3 years, and the project is still continuing now and still only has a very small subset of the original desired features.
There is a lot in here that other software developers will recognise from their own projects. I was particularly interested in Lisa Dusseault‘s involvement with WebDAV as I was developing a WebDAV server at around the same time as the events in this book were unfolding and her book about the WebDAV protocol was my bible at the start of the project.
The book covers a lot of material in a readable narrative way. For example,near the begining is a section on why programmer’s count from zero, and how this is responsible for quite a lot of bugs (of course I believe it is the non-programming humans who are at fault).
Along the way, the author takes a couple of chapters (Chapters nine and ten) off from the chronological flow to go back and discuss the history of software development, how we are having the same problems now as we were in the 60’s and how Fred Brooke’s Mythical Man Month is just as relevant today as it was when it was first written.
There is some discussion that perhaps the way we develop software now is never going to work, and there may be a science of software yet to be discovered, perhaps based more on a biological approach. The book suggests that in comparison to architecture we are still at the pryamid building stage of piling rocks on top of each other requiring enormous numbers of people and work, and that we are yet to discover the arch.
This was an easy book to read, very addictive making you want to read one more chapter… It has made me eager to go and investigate a few ideas, in particular to read up more about Smalltalk, from which the concept of OOP seems have originated. There is a quote from Alan Kay (inventor of Smalltalk) “I made up the term object-oriented… and I can tell you, I did not have C++ in mind“. I also plan to look into the programming language Squeak. Smalltalk seems to be of increasing significance to me since I am currently working with Objective-C on the Mac and Symbian C++ which both borrow concepts from Smalltalk, and understanding their origins may help me to understand them better and make better use of their features instead of trying to pretend they are another dialect of C++.
I would recommend this book to non-computer people as it will give them a better understanding of what it is we do as software developers. All technical terms and acronyms are discussed in an understandable way before they are used.
I would also recommend this book to software developers as it will make you think about your own projects and perhaps see a lot of similarities, and hopefully learn to do something about it.