Updated:
Updated: Architecture
Reading technical books is finally on the upswing again, and so are book lists. I have published my own architect bookshelf some three years ago. Looking back at that shelf I notice that some books are more than 20 years old with others like Design Patterns steadily inching up to the 30-year-mark. In a software world where we believe that we invented everything just last year (for many buzzwords that might be true), I decided to make a list of old^H^H^Hclassic books that I believe every architect should read.
20 BC: De architectura
The oldest book that is commonly listed in the context of architecture (IT or otherwise) is Vitruvius’ De architectura, published as Ten Books on Architecture. The works date back to about 20-30 BC and gives insight into the qualities of a good architect as well as many of the Roman architectural achievements. I admit that I only read a small portion of my copy, so I can’t really pronounce it required reading. I mention it mainly for your personal enjoyment / enrichment and to casually name-drop it in conversations, as I just did.
1975: The Mythical Man Month
Challenges on software projects are nothing new. Originally published almost half a century ago (a year before the launch of the VW Golf, to not leave this post void of car references), this classic by Fred Brooks is the source of the famous insight that “Adding manpower to a late software project makes it later”. Even the Anniversary Edition is now 30 years old, so you have little excuse for not having read it.
1977: A Pattern Language
Two decades before we talk about software architecture and design patterns, Christopher Alexander delivered the outside work that might have had the greatest impact on the practice of software architecture. Not having read the foreword of Design Patterns carefully, I appropriately stumbled upon A Pattern Language in interior design class. The aha moment came shortly after when I found this book to be rather similar in concept to Design Patterns.
As the title suggests, the book isn’t just a collection of patterns, but a language composed of patterns, something that many modern (technology) pattern books don’t get right. A decade earlier, Alexander published Notes on the Synthesis of Form, which apparent caught the attention of Ed Yourdon and Larry Constantine.
1978: Data and Reality
This great title from 1978 (the original RX-7 with a 100HP rotary engine launched that year) tackles the topic of modeling data, reminding us right from the start that data isn’t the reality, with one of my favorite quotes:
“Highways are not painted red and rivers do not have county lines run down the middle”.
The key point here is that the purpose of modeling (this can be data modeling or an architecture model that we draw) isn’t to represent reality, but to represent a useful interpretation of that reality. Following George Box’s mantra that “all models are wrong; some are useful”, we should not try to make the model “right” but rather to make it useful. Coloring highways differently from regular roads is useful, although it is “wrong”. The book is now in its 3rd edition from 2012.
1996: Software Architecture
Winding the clock almost two decades forward, we’ll arrive at the first defining book on software architecture, Mary Shaw and Dave Garlan’s Software Architecture: Perspectives on an Emerging Discipline from 1996. Amazon politely reminded me that I purchased this book in October 2002, when Bobby and I were writing Enterprise Integration Patterns. At that time, we were contemplating the differences between design patterns and architectural styles as introduced in Mary and Dave’s book. We finally got the answer when at a SATURN event in 2015 Mary told us that if they had been more familiar with the design patterns movement when they wrote the book, they would have likely called the styles “patterns” (their book derives from a paper from January 1994, roughly half a year before Design Patterns was published).
The book’s key elements that stand out and are most often cited are a) the positioning of software architecture as the evolution from high-level programming languages and abstract data types and b) a catalog of common architectural styles. It’s a relatively skinny book (264 pages), so it’s more than worth the 0.63 inches that it’ll take up on your physical bookshelf. What stands out to me even more than the book is Mary’s Keynote from SATURN 2015 on software engineering in Baltimore. You can watch the video recording on YouTube.
From the Amazon reviews, two snippets aptly capture the book as a valuable time capsule:
- “Great for telling your clueless boss what architecture is.”
- “If you are looking for the cutting edge software architecture principles then this is definitely not the book for you.”
1990: Are Your Lights On?
The 1990s blessed us with a group of prolific and insightful authors like Fred Brooks, Larry Constantine, Tom DeMarco, Gerald Weinberg, Ed Yourdon, and many others. These books took a critically important broader view at the context in which software architects operate, such as understanding problems, communicating with stakeholders, or structuring project teams (see my small collection on the left).
One of favorites is Are Your Lights On? by Gerald Weinberg, perhaps tied with his earlier title The Secrets of Consulting. Both books are entertaining and insightful.
2006: Enterprise Architecture as Strategy
If we saw one of the first defining books on software architecture in 1996, Enterprise Architecture made its stage (or bookshelf) debut 10 years later with Jeanne Ross, Peter Weill’s, and David Robertson’s Enterprise Architecture as Strategy. We find that the field of enterprise architecture is a mere 18 years old, which might explain the many debates around its exact scope, purpose, and relationship to business architecture, the latter appearing to be the most contentious (or at least most vocal one).
The most-cited artifact from the book (myself included) is a matrix showing the relationship between a business model and architectural choices. For example, a replicated business model (hotel chain, MacDonald’s) places more emphasis on a common application platform whereas a diverse business necessitates integration across diverse systems. I use this matrix to remind folks that the linkage between technical architecture and business strategy is much closer than they might think.
2002: The Design of Everyday Things
Architects are also designers and can learn a good bit from the real world (especially from Coffee Shops). One of my favorite, and quite accessible book on design is Don Norman’s The Design of Everyday Things, which boasts 43,000 ratings on Goodreads. After reading this book, you’ll never look at a door handle or a stove the same way, and perhaps at software as well.
Many More
Naturally, many more “must read” software architecture are near a quarter-century old, ranging from Design Patterns (1995) to Domain-Driven Design (2003) and even Enterprise Integration Patterns (2003). So, this list wasn’t aiming to be exhaustive, but rather to diversify the architect bookshelf a bit. Enjoy the read!