Add to library
You don't have any lists yet. Create one in My Library.
Go to My LibraryAdd to library
You don't have any lists yet. Create one in My Library.
Go to My LibraryFundamentals of Software Architecture An Engineering Approach
- Language
- English
- Published in
- Publisher
- O'Reilly Media, Incorporated
- Pages
- 400
- ISBN
- 9781492043454
Subjects
Original edition details
Other editions (1)
No discussions yet for this book.
Delete Discussion
Are you sure you want to delete this discussion? This action cannot be undone.
Rating Sources
The book is widely praised for its comprehensive overview of software architecture fundamentals, offering a systematic and engineering-focused approach to the discipline. Reviewers particularly appreciated the in-depth chapter on modules, which delves into concepts like cohesion, coupling, and connascence with interesting equations and quality metrics. A recurring positive theme is the book's emphasis on the inherent nature of trade-offs and compromises in architectural decisions, encapsulated in its "First Law of Software Architecture." The inclusion of soft skills, such as communication, negotiation, time management, and risk management (including concepts like risk storming and risk matrices), is frequently highlighted as valuable and practical, providing concrete advice and fostering an architectural mindset. Many found the detailed review of various architectural styles, their rationale, strengths, weaknesses, and appropriate contexts to be highly informative and useful, serving as an excellent reference.
Despite its strengths, several reviewers expressed reservations. A common critique is that, despite its subtitle "An Engineering Approach," the book contains fewer deep engineering elements than expected, with a significant portion dedicated to high-level descriptions of architectural styles that can be found elsewhere. Some found the writing to be verbose and overly long, with extensive examples and explanations of simple concepts, leading to skimming. Another significant point of contention is the book's strong focus on the software architect as a distinct role, which some reviewers felt was outdated or not reflective of modern organizational structures where architecture responsibilities are distributed across teams. This perspective was seen as neglecting current trends like self-organizing teams and agile methodologies. Additionally, some technical concepts were perceived as unevenly explained or glossed over, with a lack of references for further reading in certain areas. The book was also noted by some as being heavily biased towards microservices, potentially limiting its relevance for those working with other paradigms.
Overall, the book is considered a valuable resource, particularly for those new to the field or aspiring to an architect role. It provides an excellent foundational understanding of software architecture, covering both technical principles and the essential soft skills required for effective practice. It is highly recommended for developers looking to transition into an architect position, as well as for architects who are newly promoted or seeking to consolidate their existing knowledge. While experienced architects might not discover many entirely new concepts, they may still find it a useful reference for reinforcing knowledge, understanding trade-offs, and gaining practical approaches to communicating and documenting architectural decisions. However, those seeking cutting-edge technical details, in-depth discussions of specific modern architectures beyond microservices, or a more concise read may find it less suitable.
No reviews yet. Be the first to review this book!
Delete Review
Are you sure you want to delete this review? This action cannot be undone.







