In his most recent Suitwatch column, Doc Searls again mentioned Stewart Brand's book How Buildings Learn, so this weekend I borrowed it from the Denver Public Library and read it. Fascinating. Although the book is ostensibly about buildings and how they change over time, I found lessons galore in there for any field that tries to create structures -- from software design (as Doc points out, we call it architecture) to philosophy (the successful worldviews change over time as people "inhabit" the system).
When we create structures, there is always the temptation (some call it "analysis paralysis") to create something perfect and unchanging in all respects. Brand labels this the "high style" approach. It is endemic in architecture, which worships the architect-genius who makes buildings that are works of art, not living, adaptive structures. High style buildings ignore the accumulated wisdom of vernacular building traditions (e.g., pitched roofs are better than flat roofs), which is one reason that high style buildings fail to fulfil their function ("If the roof doesn't leak, the architect hasn't been creative enough" -- Frank Lloyd Wright) and do not adapt well to the real needs of the occupants.
We find similar problems in software engineering, where the desire for a conceptually consistent and beautiful solution (say, OS/2 or Java or X.400) fails to provide the same flexibility that messier but structurally solid architectures provide (say, Perl or Linux or SMTP). I'd say that Jabber falls definitely on the simple, extensible, Low Road, vernacular side of the fence -- it isn't perfect, but the underlying structure (XML streams, three simple packet types corresponding to information push, presence broadcast, and request-response) is strong and the skeleton is so extensible that people can keep adding rooms onto the house in order to do the things they need to do.
To me, the analogy extends also to philosophies. In the introduction to Anarchy, State, and Utopia, Robert Nozick lampoons thinkers who seek to provide a perfect account of any phenomenon, since they inevitably must ignore a large number of facts that don't fit the theory. Using Brand's insights, we can say further that such thinkers must avoid contemplating the uses to which their ideas will be put. Typical high style thinkers seek to create a perfect philosophy from the get-go (rationalists such as Descartes and Spinoza comes to mind), and their philosophies do not adapt to changing times. Vernacular thinkers are more interested in putting together a strong outline and opening up the system to change and growth over time (Aristotle comes to mind, though his system was hijacked by high-style renovators in the later Middle Ages). Interestingly, Ayn Rand was (like the architect-hero of her novel The Fountainhead, and like her real-life hero Frank Lloyd Wright) an utter high-style modernist in this regard: she wanted to created a perfect, finished philosophy and loathed anyone who dared so much as change a comma. Unfortunately for her, the occupants of any philosophy tend to modify things over time in order to meet their needs, just as building occupants do. If the philosophy is a strong, open system in the first place, that kind of change over time makes organic sense; if not, the occupants abandon the worldview in favor of one that is more adaptable. It's a natural process of change over time, much as physical and intellectual architects resent it.
Next book: Crossing the Chasm by Geoffrey Moore. After that perhaps The Art of the Long View by Peter Schwartz (on scenario planning) or something by Christopher Alexander, such as A Pattern Language or The Timeless Way of Building.