Fundamentals of Software Architecture book
First principles of software architecture: characteristics, components, integration, soft skills.
First principles of software architecture: characteristics, components, integration, soft skills.
why it matters
Most architecture books are about *patterns*. This one is about the underlying skill: how do you reason about architectural characteristics (scalability, security, evolvability), how do you trade them off, how do you communicate the decisions. Less about specific patterns, more about the practice itself.
key ideas
- Architecture characteristics aren't free; choosing performance often costs evolvability, etc.
- Architecture decision records (ADRs) as the unit of architectural communication
- Architecture styles (layered, microservices, event-driven, etc.) chosen based on which characteristics dominate
- Soft skills: negotiation, presentation, technical leadership are first-class architecture skills
who should read it
Senior engineers becoming architects, or staff engineers wanting vocabulary for architecture conversations. Pair with Hard Parts.