Chapter 27. The Laws of Software Architecture, Revisited
Way back in Chapter 1, we described the three laws of software architecture:
-
Everything in software architecture is a trade-off.
-
Why is more important than how.
-
Most architecture decisions aren’t binary but rather exist on a spectrum between extremes.
Just about every example in this book has illustrated these laws, which points to their origin story. When we wrote the first edition, we hoped to find numerous things that seemed universally true about software architecture and codify them as laws. To our surprise, we ended up identifying just two laws in the first edition, then uncovered one more while writing the second. True to our original intent, these three laws seem pretty universal and inform many important perspectives for working software architects.
In this brief chapter, we’ll revisit these laws in light of the examples we’ve shown and point out some nuances about trade-off analysis.
First Law: Everything in Software Architecture Is a Trade-Off
Our first law is one of the defining characteristics of software architecture—everything is a trade-off. Many people think that the job of a software architect is to find silver bullet solutions to sticky problems and become a hero, but that rarely happens. (Architects rarely get credit for good decisions, but always get blamed for bad ones.) No, the real job of software architecture is analyzing trade-offs.
We believe, for a couple of reasons, that every architect ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access