June 19, 2021
Software Architecture is hard as well as writing a book about it. Eventually it's a well written position wich unofrtunately didn't give me as much value as I expected.
What I liked:
- Chapter about modules. This is a content that I was looking for - truly engineering way of looking at aspects like cohesion, coupling or connascence. Very interesting equations and quality metrics were provided.
- Accentuating over the entire book that there is no one perfect architecture - it's all about compromises and tradeoffs.
- The entire part about soft skills is plausible and pleasant to read. It consists of interesting (and sometimes funny!) tips for managing time, creating presentations, relationships with teams and many more. The best chapter from that area is about risk management (because it's the most engineering one!). I liked the idea of risk storming meeting and artifact called risk matrix.
What I didn't like:
- When the part of the book's name you're supposed to read consists of term "An Engineering Approach" you expect it to have a lot of engineering stuff inside (at least I expected that...). There were too few of these elements. The biggest part of the book is just a brief description of each architectural style which you can easily find literally everywhere.
- Strong separation of architect from the team. I notice that many organisations nowadays deliberately pick the path where the whole team is responsible for the architecture. Regardless of whether it is good or not, this book suggests only one path - there is a person named Sofware Architect who just coworks with teams. There were moments where I felt a bit uncomfortable with such strong seperation. I will recall the name of the book again - it's about Software Architecture and not about Software Architect role...
Finally, who is this book for?
If you're a Developer and your biggest dream is to become an Architect - go for it!
If you've never read before anything about Software Architecture - go for it!
However, if you're an experienced Developer (or already Architect) and you know the both soft skills fundamentals (it's all about communication with people, negotiating and tradeoffs) and technicals fundamentals (types of Software Architecture; fallacies of distributing computing) then don't expect too much from it.
What I liked:
- Chapter about modules. This is a content that I was looking for - truly engineering way of looking at aspects like cohesion, coupling or connascence. Very interesting equations and quality metrics were provided.
- Accentuating over the entire book that there is no one perfect architecture - it's all about compromises and tradeoffs.
- The entire part about soft skills is plausible and pleasant to read. It consists of interesting (and sometimes funny!) tips for managing time, creating presentations, relationships with teams and many more. The best chapter from that area is about risk management (because it's the most engineering one!). I liked the idea of risk storming meeting and artifact called risk matrix.
What I didn't like:
- When the part of the book's name you're supposed to read consists of term "An Engineering Approach" you expect it to have a lot of engineering stuff inside (at least I expected that...). There were too few of these elements. The biggest part of the book is just a brief description of each architectural style which you can easily find literally everywhere.
- Strong separation of architect from the team. I notice that many organisations nowadays deliberately pick the path where the whole team is responsible for the architecture. Regardless of whether it is good or not, this book suggests only one path - there is a person named Sofware Architect who just coworks with teams. There were moments where I felt a bit uncomfortable with such strong seperation. I will recall the name of the book again - it's about Software Architecture and not about Software Architect role...
Finally, who is this book for?
If you're a Developer and your biggest dream is to become an Architect - go for it!
If you've never read before anything about Software Architecture - go for it!
However, if you're an experienced Developer (or already Architect) and you know the both soft skills fundamentals (it's all about communication with people, negotiating and tradeoffs) and technicals fundamentals (types of Software Architecture; fallacies of distributing computing) then don't expect too much from it.