Third Edition Updates Software Architecture Classic for the Practitioner
by Scott Brookhart
As a software practitioner, software engineer, and system architect, I know that if there is one thing constant in the software industry, it's change. The award-winning second edition of Software Architecture in Practice was written 10 years ago, and there's been quite a bit of change (if not bytes of change) since then in software and software architectural concepts. After all, terms like "the cloud," "social media," and "big data" represented fledgling concepts in 2003.
Authors Len Bass, Paul Clements, and Rick Kazman have now updated their book. They didn't simply tack the new concepts onto the second edition. Instead, they gathered revision requests, along with the concepts that have matured over the past 10 years, and integrated them into a new structure that's more conducive to study, discussion, and learning. In effect, they practiced what they preach about software architecture in constructing a book about it.
The Architecture Tradeoff Analysis Method, described in the second edition, is still relevant and included in this edition, but a lightweight variation is also offered for smaller, less risky projects. Another example of the updates is the focus of each chapter on one of architecture's quality attributes: performance, security, and the "ilities," such as modifiability, availability, and interoperability. I also greatly appreciated this version's perspective on architecture as a business-driven process.
Software architects regularly encounter fuzzy ideas while developing or adapting architectures to meet requirements. To help sharpen the focus, the third edition offers discussion questions, recommendations for further reading on specific topics, and the always-appreciated experience-based guidance on software architecture questions.
The case studies are gone from the print version and are now on the publisher's website. Readability has improved, and it's easier to quickly find material when you're in the middle of a project, looking for some guidance but not wanting to take the time to read an entire book on a topic. Another nicety is the book's availability in an electronic version.
Software Architecture in Practice's second edition is often deemed the go-to source for understanding the architecture life cycle within the software development life cycle. I would challenge anyone who feels that the previous version is adequate to at least look at this revised version as being more readable and approachable. If you're just beginning as software architects and aren't completely familiar with the concepts, I strongly recommend adding it to your bookshelf or getting access to the electronic version.
Software architecture's importance to the development process is quite apparent and knowing how to get it right can be the difference between software that must be scrapped to accommodate change and software that readily adapts to it. With business-driven change coming at unexpected times to adjust to market pressures, everyone accountable for software architecture should have this book.
Scott Brookhart is a software engineer living in Austin, Texas. Contact him at firstname.lastname@example.org.