Software Architecture Books

This article starts with selecting five essential books every software architect should read as part of their career journey. While these five books providing a combination of classic design & architecture knowledge, patterns, and best practices, documentation of software architecture, strategies & engineering practices to maintain systems in productions, the list continues at the end of the article.

Source: Addison-Wesley Professional Computing Series

Design Patterns: Elements of Reusable Object-Oriented Software

Purpose: Essential book to read object-oriented 23 design patterns applied by the majority of object-oriented languages (C++, Java), and frameworks (Spring framework). It helps to understand three categories of design patterns namely – you can’t miss these keywords in most of architecture & design discussions:

  • Creational (5) object creation: Abstract Factory, Builder, Factory Method, Prototype, Singleton
  • Structural (7) – composition of classes/objects: Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy
  • Behavioral (11) – interaction of classes/objects: Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Momento, Observer, State, Strategy, Template Method, Visitor

Author: Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
Date Released: 1994

Source: Addison-Wesley

Domain-Driven Design: Tackling Complexity in the Heart of Software

Purpose: Foundational book for building Model-driven Design and Microservices oriented architecture by building domain knowledge in designing complex software.

  • Building Domain Model: Ubiqutious Language, Model-driven Design, One Team – One Language
  • Model-driven Design: Isolating domain, Services & Domain Isolation, Modules, Modeling Paradigms, Life-cycle of domain object, Using the domain language
  • Refactoring and Strategic Design: Supple Design, Analysis Patterns, Bounded Context, Distillation, and Large-scale

Author: Eric Evans
Date Released: 2003

Software Systems
Source: Addison-Wesley

Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

Purpose: Must read the book to understand the essentials of software architecture – it combines knowledge from various sources (IEEE, SEI).

  • Introduces basic concepts of architecture, the role of the software architect, and stakeholders management
  • Viewpoints: Context, Functional, Information, Concurrency, Development, Deployment, and Operational viewpoints
  • Perspectives: Security, Performance and Scalability, Availability and Resilience, Evolution, Location, Development Resource, Internationalization

Author: Eoin Woods and Nick Rozanski
Date Released: 2005, 2011 (2nd edition)

Site Reliability
Source: Google

Site Reliability Engineering: How Google Runs Production Systems

Purpose: As the lifespan of software systems is majorly in production, this is a must-read book to apply modern and pragmatic site reliability engineering practices.

  • Understand the basics of site reliability engineering and difference from conventional practices
  • SRE Principles with patterns, behaviorus, and areas of concern related to SRE
  • SRE Practices with theory & practices on building large distributed systems
  • Google’s Management best practices for organizations

Author: Betsy Beyer, Jennifer Petoff, Niall Richard Murphy, Chris Jones
Date Released: 2016

Source: SEI

Software Architecture in Practice

Purpose: Classic and award-winning book (published by SEI) with basic concepts/context of architecture, architecture definition, architecture life cycle, and concepts like:

  • software quality attributes – availability, interoperability, modifiability, performance, security, testability, usability
  • architectural tactics & patterns – many useful tactics and patterns
  • designing & architecture evaluation, documenting architecture, management & governance

Authors: Len Bass, Paul Clements, and Rick Kazman
Date Released: 1994

Other Recommended Books

Book TitlePurpose & Usage
Patterns of Enterprise Application Architecture
– Martin Fowler
A classic collection of prevalent enterprise patterns including domain logic patterns, data source architectural patterns, object-relations patterns, web presentation patterns, distribution patterns, offline concurrent patterns, session state patters, and base patterns.
Software Architecture Patterns
– Mark Richards
It outlines common software architecture patterns prevalent in designing systems under consideration. Key patterns are:
– Layered architecture
– Event-driven architecture
– Microkernel architecture
– Microservices architecture
– Space-based architecture
Fundamentals of Software Architecture: An Engineering Approach
– Mark Richards, Neal Ford
Published by ThoughtWorks seasoned architects to explore principles of software architecture; examines the strengths and weaknesses of different architectural patterns. It discusses foundational elements like architectural thinking and component-based thinking plus architecture styles like layered, pipeline, microkernel, service-based, event-based, microservices, etc. It also has a section on soft skills and techniques required for software architects.
Building Evolutionary Architectures
– Neal Ford, Rebecca Parsons, Patrick Kua
Published by ThoughtWorks seasoned architects to support guided, incremental change across multiple dimensions. It discusses concepts like Fitness Functions, Engineering Incremental Change, Architectural Coupling, Evolutionary Data, Building Evolvable Architectures, and Evolutionary Architecture Pitfalls and Antipatterns.
Release It!: Design and Deploy Production-Ready Software
– Michael T. Nygard
For implementing production-ready software applying stability, capacity, general design, and operations patterns and anti-patterns. One of the most recommended books for maintaining production systems applying modern practices.
97 Things Every Software Architect Should Know
– Richard Monson-Haefel
Collective advice from more than four dozen architects offering advice on communication, eliminating complexity, empowering developers, and many more practical lessons they’ve learned from years of experience. Examples – Chances Are, Your Biggest Problem Isn’t Technical, Quantify, Stand-Up, Architects Mist Be Hands-On, Record Your Rationale, Don’t Control but Observe, etc.
Documenting Software Architectures: Views and Beyond
Provides detailed overview of architecture styles (decomposition, layered, generalization, etc.), architecture documentation essentials (context diagrams, variation points, interfaces, etc.), and architecture views for reviews.
The Software Architect Elevator
– Gregor Hohpe
This book is getting popular because of the modernized approach towards enabling architects to be successful in large-scale IT organizations.
It discusses the architect’s journey starting in IT engine room and progressing towards the organizational penthouse. Understanding architecture, communication, organizational structure, transformation, and living the life of change agents are key topics discussed.
The Phoenix Project (A Novel About IT, DevOps, and Helping Your Business Win)
– Gene Kim, Kevin Behr, and George Spafford
It has been recommended for business and IT executives to understand the growing complexity of IT programs. With a real-world example (code name Phoenix) in the writing style as Novel helps to connect with the use-case.
The Unicorn Project: A Novel about Developers, Digital Disruption, and Thriving in the Age of Data
– Gene Kim
It is considered to be a companion novel to The Phoenix Project (six years apart by the same author). It introduces the concept of five ideals:
– Locality and Simplicity
– Focus, Flow, and Joy
– Improvement of Daily Work
– Psychological Safety
– Customer Focus
Clean Architecture: A Craftsman’s Guide to Software Structure and Design
– Robert Martin
It starts with the differentiation between design and architecture. Programming paradigms (structured, object-oriented, and functional programming), Design Principles (SRP, OCP, LSP, ISP, DIP), Component Principles (Cohesion & Coupling), and Clean Architecture principles with case study have been discussed in detail.

Leave a Comment