Who needs an Architect? More than 10 years after the classic paper written by Martin Fowler, we still try to find the definition of software architecture and the role of an architect. Simon Brown, as an independent consultant working on architecture stuffs since a long time, brings his extensive experience to answer these questions in a pragmatic way.
Books on architecture are numerous but most of them are very academic in nature and clearly lacks real-world advice. Software Architecture for Developers feels like a breeze of freshness in the architecture literacy. Agile methodologies definitively change how we develop software but they often don’t explicitly talk about how much design is necessary. So, Big Design Up Front is now replaced with No Architecture at all. Is such a good thing? Probably not. Simon Brown explains why there is no conflict between agile and “lightweight” architecture and the consequences of not doing any design up front. Simon Brown uses stories of prior experiences as evidences: a lot of practical advices.
Despite some truly good points, the ideas are not new. The main contribution of this book is the C4 System (context, containers, components and classes), an approach to create a number of diagrams at varying levels of abstraction. Most of these diagram don’t use the UML notation because “it’s not something that many people seem enthusiastic about learning these days”.
The biggest drawback of the book is its presentation style. How could a book of 250 pages be organized in 70 chapters? This reflects a self-published book very disorganized with many repetitions.
If you are not already a big fan of his blog Coding The Architecture (most of the book is based on previous posts), and aspire to be a technical leader, you should read this book to learn real-world tips to deliver successful products in an agile way.