I have just finished reading The Software Architect Elevator by Gregor Hohpe. It is rare these days for me to read a book from cover to cover. This was a welcome exception.
Very well written. Engaging throughout with many useful insights into what architecture is and what it means to be an IT architect in today’s corporate world.
I have read many other books on IT Architecture, but this book’s chapter “Is this Architecture?” gives the best demonstration I have seen as to what is and is not architecture in IT. The difference between Architecture and Design are decisions!
Architecture happens at all levels; if you’re deciding on whether to have two classes or three you have a design. It’s only when you capture the decisions driving that design that your design becomes architecture.
The same if you’re deciding whether to have two systems or three - you have a design. It’s only when you capture the decisions driving that design…
Architecture includes three elements:
- The design;
- The decisions driving that design (including alternatives and a rationale for the selected option)
- The context (requirements, constraints and environment) in which those decisions were made.
Gregor states there are no good or bad architectures - just fit-for-purpose, or not fit-for-purpose.
What is Architecture is just one insight to be found in the book. There are many others: “Principles drive decisions”, “All meaningful decisions have downsides”, “A system’s structure is simply a means to achieve a desired behaviour” (it’s actually what happens on the lines between the boxes that is more interesting). The list goes on.
I particularly like Gregor’s stated principle of “You can avoid my review, but you cannot get a free pass”. A neat way to deal with the requests for a rubber stamp architectural review.
I also like the way Gregor links our world of IT Architecture to The Matrix. I see these films with a new light now. The Oracle explains to Neo that he’s already made his decision and must now understand it as we can’t see past the decisions we don’t understand. Neo must understand these decisions on his journey to uncover the nature of the fake world of the Matrix and how he can control it. There’s so much architecture in The Matrix that I had not seen before.
Gregor even at one point draws a fun visual comparison between Vint Cerf (one of the key architects of the Internet) and The Matrix Architect.
I hope this book becomes the bible for IT architects like many other books have become the bible for their domains - right back to “The C Programming Language” by K&R, “Design Patterns” by the Gang of Four and “Enterprise Integration Patterns” by Hohpe & Woolf.