The Architecture of Open Source Applications is not a typical software development book but rather a wonderful collection of essays from the veterans. The editors did a great job by providing such a wide spectrum of programs and authors. From database systems to visualization toolkits, from mail transfer agents to multi-player online games, from continuous integration systems to cutting-edge web applications and then to audio processing systems, you’ll find experienced developers talking about the internals of their well-established code bases, used by millions of people and developers worldwide.
Some of the authors have been working on the same system for more than 30 years (e.g. Eric Allman on Sendmail) and it is definitely a pleasure to hear their perspectives spanning such a long time period. Every chapter provides a brief overview of the relevant software and then the authors try to justify the choices they made, sometimes stating their regrets with reasons and sometimes reflecting on how their intuitive decisions turned out to be great strategic advantages in the long run. In some chapters such as the one by Audrey Tang (SocialCalc), you’ll learn how it becomes possible to work together for a geographically distributed team of developers and what made Tang’s job easy when she joined the team one year after the initiation of project (hint: a well-prepared Wiki becomes much more important than you can imagine).
I think this book belongs to every developer’s library to be read and re-read. Time-honored lessons when told by insiders with the help of great editors provide us with an immense value in terms of technology, craftsmanship and community.