Why should you read about Software architecture? Who even cares in these Agile and DevOps times. Should you, for whatever reason, still be interested, this book is a good place to approach software architecture from its theory side.
Here comes a book I had on my reading list for decades: Software Architecture in Practice, by L. Bass, P. Clements, and R. Kazman. I should have read this one when I was a PhD student, but I guess I was too lazy by then. Having recently enjoyed Just enough software architecture and Clean Architecture, I took it upon myself and gave it a try, despite its price: EUR 24 on Amazon.
Ready for 650 pages about software architecture? Let’s go. Part I sets up key concepts: What it is, why it matters, and where it shows up. Part II dives into the many quality attributes (e.g., availability, modifiability, performances) that shape software architecture, whereas Part III explains how software architecture fits into development processes for larger and— less convincingly— smaller teams. Part IV looks at the context and discusses product-lines and economic concerns before Part V opens up on two new technologies: Cloud and crowdsourcing.
I believe this is the reference textbook in the field. The three authors (Len Bass, Paul Clements and Rick Kazman) are all leading researchers in Software Architecture. I know some of their work though I never worked directly on this.
I see it as a tour of software architecture: It is comprehensive and contains a load of references to research articles. The only thing I did not find is a chapter for developers, dealing with modules, dependencies, code layouts, etc. Something like day-to-day software architecture for the lay programmer. Conversely, I found it shallow on several topics, such as development processes and product-lines to name a few.
Overall it felt drawn-out and irrelevant. It focuses on “heavy processes” and targets larger systems with multiple teams distributed over the globe. I liked best the discussion of quality attributes and what patterns/styles/tactics help enforce them (cf. Part II). This I can use.
I think it deserves its status of the reference textbook. I would recommend it m master students or to those building a course. I would not recommend it to programmers though, except for those longing to architect the largest systems. To my fellow programmers, I recommend Clean architecture by R. Martin or Just enough software architecture by G. Fairbanks. I also found Software architecture for developers by S. Brown, but I haven’t read it, yet.