My input on the audiobook Fundamentals of Software Architecture
Fundamentals of Software Architecture: An Engineering Approach is a book written by Mark Richards and Neal Ford. Both authors have a longtime track and history in software development and architecture. The paper version of the book contains 419 pages and audiobook one, about 13 hours. The audiobook has been crafted to cover all the topics without the need of having visuals and photos.
You can find the table of contents of the book here. Here is the list of chapters:
Chapter 1: Introduction
Chapter 2: Architectural Thinking
Chapter 3: Modularity
Chapter 4: Architecture Characteristics Defined
Chapter 5: Identifying Architecture Characteristics
Chapter 6: Measuring and Governing Architecture Characteristics
Chapter 7: Scope of Architecture Characteristics
Chapter 8: Component-Based Thinking
Chapter 9: Architecture Styles
Chapter 10: Layered Architecture Style
Chapter 11: Pipeline Architecture
Chapter 12: Microkernel Architecture
Chapter 13: Service-Based Architecture
Chapter 14: Event-Driven Architecture Style
Chapter 15: Space-Based Architecture
Chapter 16: Orchestration-Driven Service-Oriented Architecture
Chapter 17: Microservices Architecture
Chapter 18: Choosing the Appropriate Architecture Style
Chapter 19: Architecture Decisions
Chapter 20: Analyzing Architecture Risk
Chapter 21: Diagramming and Presenting Architecture
Chapter 22: Making Teams Effective
Chapter 23: Negotiation and Leadership Skills
Chapter 24: Developing a Career Path
The authors have listed different Architecture Styles from the very old ones to the new ones which have emerged in the past few years. Specific characteristics of each architectural style have been listed and pros, cons, strengths and weaknesses of each have been discussed too. At the end of each chapter, they rate each aspect of architectural style in terms of deplorability, testability, scalability, reliability and so on, and then reason about their rating. That’s of course opinionated but still so valuable to know and compare different ideas. I found listening to this part of the book so valuable because after being in software development industry for over two decades, I am no longer dealing with all those architectures that I have done in the past. It was so valuable to have an abstract and compact of important characteristics of each architecture to freshen the mind.
The book touches on other topics as well, like diagramming tools like C4 and ArchiMate, Architecture Decision Records (ADR), Negotiation Skills, Time Management, Fallacies of distributed computing etc.
Narration is quite good. The contents of the audiobook are mostly quite straight forward but I have to state that, I wonder if it will be quite helpful for new learners and beginners. If you are one on them, please leave me a comment and talk about your experience.