A Reading List for a Young Software Architect

Lorenzo De Leon
3 min readNov 24, 2020

A colleague recently asked me for recommendations for what he should learn in order to become a software architect. He’s been a software developer for a few years and wanted to see if the architect role would be something he would be interested in. He asked for suggestions on what he could read. That request was the genesis of this article.

Fundamentals of Software Architecture: An Engineering Approach
Mark Richards, Neal Ford

This is a very good, easy to read overview and introduction to software architecture. If you’re only going to read one book on this list, it should probably be this one. Read this one first and then dive deeper with the other recommendations.

The Pragmatic Programmer
David Thomas, Andrew Hunt

This is usually the first book I recommend to anyone that is interested in software development (I recommend the updated 20th Anniversary Edition). This book really made a big impact on me. It teaches you how to be a better programmer. I believe that being a good developer is a prerequisite to being a good software architect. If you can’t construct the logic of a single module, it will be very difficult to construct the logic of an entire system.

Design Patterns: Elements of Reusable Object-Oriented Software
Erich Gamma, John Vlissides, Richard Helm, Ralph Johnson

A good software architecture should consist of a collection of software patterns and this is the original software pattern encyclopedia. Every software architect should be familiar with most, if not all of these patterns. I still use it as a reference.

Patterns of Enterprise Application Architecture
Martin Fowler

This is another software pattern encyclopedia, but it includes higher level patterns. While the GOF book includes patterns for the construction of individual software components, this book includes patterns for system construction.

Enterprise Integration Patterns
Gregor Hohpe, Bobby Woolf

This is yet another software pattern encyclopedia but this one is focused on system integration which is key to many enterprise solutions. It’s a little dated (e.g. Kafka is not included), but the patterns are still valid.

Just Enough Software Architecture: A Risk-driven Approach
George Fairbanks

Back in the very old days, we had to completely design our architecture before we could start coding. That could take months. It gave software architects a very bad name. Today, we understand that we just need just enough architecture to start software development. This book describes a good process for doing that.

Domain-Driven Design
Eric Evans

Domain-driven design has recently increased in popularity and deservingly so. Software architects need to work with domain experts to correctly design the correct software. To better work together they need to use a common ubiquitous language. This book is a bit dense but the definitive book on the topic.

Beyond Software Architecture
Luke Hohmann

Successful software architects must see beyond the technical dimensions of the architecture and embrace product management and understand overall business goals. This book does a great job of linking software architecture to these other important aspects.

I have quite a few more recommendations but these are probably a good start. There are also quite a few resources available online. I can include them in a future post. Please let me know if you’re interested.

--

--

Lorenzo De Leon

Geek, poet, wannabe musician, and anti-racist. Senior Principal at West Monore https://www.westmonroepartners.com