This German book “Knigge für Softwarearchitekten” by Peter Hruschka and Gernot Starke guides you through DOs and DON’Ts for software architects. The self-contained chapters make it an good to read and allow you to revisit a topic when you’re looking for advice in your day-to-day project.
Beware: when reading this book, you’ll be tempted to read more of the referenced literature.
The authors divide the book with 264 pages into 21 patterns and 14 anti-patterns that describe in a humorous way what to do and what to watch out for in today’s projects. I managed to get a free copy of the third edition when it was advertised on arc42.de.
The book’s focus is on modern style projects where software architects support development teams and pro-actively tackle the challenges of software architecture. The role of the software architect helps the team to mitigate risks before they occur, use retrospectives and reviews to find out what needs to change and communicate with different stakeholders to find out about the business drivers.
Software architecture needs to change as requirements become visible during development or requirements change. Good architectures need reviews and iterations to become useful and match the business needs. Therefore, architectures need to be designed and structured for change, but must not add accidental complexity by being too generic or configurable.
I was happy to see several references to Architecture Tradeoff Analysis Method (ATAM) for a structured approach both at the beginning of and during a software project to align stakeholder’s interests with the software’s architecture. Writing down the requirements and the decisions taken during a project is one of the best practices promoted by this book.
While the links in the book to other literature are relevant for today’s projects, I’m hoping for more recent references in a future edition of the book. As of today, no English translation of the book is available.
This book is a good read for both software developers and architects: it allows you to reflect on your (or your architect’s) behaviour, re-calibrate your inner compass, learn something new and fill your reading list for the upcoming months with the referenced literature.