A comprehensive list of books on Software Architecture.
People in the software industry have long argued about a definition of architecture. Ralph Johnson famously defined
software architecture as "the important stuff (whatever that is)." I, subjectively, followed his definition while
deciding whether or not to include a specific book.
This is NOT a recommendation list. When I made this, I intended for a comprehensive list excluding low-profile books—see
inclusion criteria below. There was a simple reason behind that: I'm not a subject-matter expert on all these topics. In
fact, I not a subject-matter expert on even a single topic of these. More importantly, I don't know your experience
level nor your preferences. Some people prefer theoretical over practical books (I do). Others prefer foundational over
comprehensive books or dry over engaging books or art-based over engineering-based books. Some people even enjoy verbose
over concise books. Or and or and or.
How did I make this?
I thoroughly reviewed all books
tagged with software-architecture on Goodreads and applied
a simple algorithmic rules—see the inclusion criteria below. I don't think the list is perfectly comprehensive. Yet, I'm
planning to update it regularly to make it as comprehensive as possible.
What should I read?
Don't be overwhelmed by the number of books on each subject. Practically speaking, you are supposed to read a few books
on the subjects of your interest. Deciding what to read is your business. Personally, I start by reading a couple of
reviews on Goodreads and examine the book table of content, if available. When in doubt, I read more reviews over the
internet from blogs and the like. Alternatively, you may go with the Goodreads community preferences and start from the
top of each list if you don't have the time to read reviews.
Inclusion criteria
The book must be relevant to Software Architecture; and
The content is not obsolete.
It must be technology agnostic or applicable to a wide range of technologies; and
The book profile on Goodreads matches these rules:
An average rating of 3.5 or above; and
A total number of ratings equals 50 or above.
At least 5 written reviews.
A minimum length of 50 pages.
Sorting criteria
The books are sorted solely based on the number of written reviews. There are, however, other important factors
worth considering. For example, the average rating, the number of ratings, and the publishing date. Yet, I don't have an
idea to put all these factors in a reasonable mathematical formula. If you have
any, I'd love to hear what you've got in mind.
Thank you for this great list of software architecture books!
It would be great if you also enabled github pages for the repository with the "architect" theme?
Thanks for putting this list together. Although definitely an intimidating list. While I know this list is focused on Software itself, I recommend adding a section on team structure/ engineering management. For an organization to have all of the skills on the list, it would require teams of people and strong organization for it to work nicely.
I would first recommend "An Elegant Puzzle" by Will Larson. He has worked at several tech companies, currently at Stripe I believe. I'm not sure if this is the best book on Engineering management, it is just the most recent I have read that I quite enjoyed.
Again thank you, and I hope this suggestion is helpful!
The Cloud Service Evaluation Handbook: How to Choose the Right Service by Scott Feuless would be an excellent addition to the cloud engineering section. Subtle architecture or SLA decisions can dramatically impact pricing, performance, scalability, resilience and more.
SLAs should be the starting point for any cloud computing project - unfortunately they are usually an after thought or glossed over.