"Architects look at thousands of buildings during their training, and study critiques of those buildings written by masters. In contrast, most software developers only ever get to know a handful of large programs well — usually programs they wrote themselves — and never study the great programs of history. As a result, they repeat one another’s mistakes rather than building on one another’s successes. This book’s goal is to change that."
"How Buildings Learn: What Happens After They're Built " by Stewart Brand (of Whole Earth fame). Highly recommend it. I've lost track of how many copies (10?) I've given as gifts to friends.
TLDR: The bones of a building determine how adaptable it is to reskinning and structural change. If you don't have the right bones, you will have to tear the building down and it will not adapt over time. Adaptable systems have a backbone that lets them be stable during change.
Better title: "A must read for anyone involved in software development!"
I wonder if this will become required reading for CS students?
I haven't read the entire contents, but browsed through a few of the chapters. REALLY GREAT WORK! Very interesting lessons learned and just overall review of choices made with some of these apps. I'll definitely come back to this and finish reading.
Going to be pedantic and say that the NoSQL section is a bit off saying Dynamo-like systems "shard." This carries with it the connotation that the distributed aspects of the database are an afterthought or an add-on feature.
I was hooked on the section covering Berkeley DB design and will be recommending this to pretty much all the developer friends I know. I even put up with registering on Lulu to pay for the PDF version. I am so sick of registering for things and creating new accounts, although I saw it as a necessary evil in this case. Can federated identity get here any sooner?
Excellent. The book has a hacker's dedication too: "Dedicated to Brian Kernighan, who has taught us all so much; and to prisoners of conscience everywhere."
Excellent point.