Fundamentals of Software Architecture: An Engineering Approach

by: Mark Richards (0)

Salary surveys worldwide regularly place software architect in the top 10 best jobs, yet no real guide exists to help developers become architects. Until now. This book provides the first comprehensive overview of software architecture’s many aspects. Aspiring and existing architects alike will examine architectural characteristics, architectural patterns, component determination, diagramming and presenting architecture, evolutionary architecture, and many other topics.

Mark Richards and Neal Ford—hands-on practitioners who have taught software architecture classes professionally for years—focus on architecture principles that apply across all technology stacks. You’ll explore software architecture in a modern light, taking into account all the innovations of the past decade.

This book examines:

  • Architecture patterns: The technical basis for many architectural decisions
  • Components: Identification, coupling, cohesion, partitioning, and granularity
  • Soft skills: Effective team management, meetings, negotiation, presentations, and more
  • Modernity: Engineering practices and operational approaches that have changed radically in the past few years
  • Architecture as an engineering discipline: Repeatable results, metrics, and concrete valuations that add rigor to software architecture.

The Quotes

Everything in software architecture is a trade-off. First Law of Software Architecture

All architectures become iterative because of unknown unknowns, Agile just recognizes this and does it sooner.

Why is more important than how. Second Law of Software Architecture

The Reviews

Like other reviewers mentioned, the images were illegible. However I returned mine for a replacement and got a "2020-06-12: Second Release" version which fixed the images.

I'm not sure if it's the fact that I got burned by Building Evolutionary Architectures, co-authored by Neal Ford, or my previous experience with other "fundamentals" books which tended to be rather useless - my expectations were fairly low of this one but I'm glad I went ahead and read it.The book starts off by discussing what software architecture is, what the job entails, what the common misconceptions are and then for the remainder of the book covers both the technical and soft skills required for a person to become a good architect - how to maintain the technical know-how required by the job, what types of knowledge to focus on, how to detect, discuss and document the architecture, the reasons behind it and the trade-offs it entails, how to interact with your colleagues, both on the developer and the business side, how to resolve conflicts, nurture and promote constructive collaboration etc. So, as you can see, the authors try to cover a lot of ground without going too deep (and waking Durin's Bane) - and they do it successfully.That being said, the book isn't perfect, some chapters could have used more feedback, especially the event-driven architecture one, which felt a bit dated and like it came from someone who didn't have firsthand experience with it recently. Also, I can't really say that I truly discovered something new within its pages - which isn't necessarily a bad thing if, like here, the summary of the things you know is presented in such a way it actually reinforces the existing knowledge.

Excellent structure that contrasts simple to complex, older to newer and tradeoffs between architectural styles. Recommended for both startup culture (where every dev impacts everything, include solution architecture) and enterprise culture (to bring clarity to discussion of strategy), as well as to those new and those that have been doing software architecture before it was thing (and that was before "it was thing" was a thing).

Good content. However the print, especially the picture quality and the book size really don't justify the price. This book should be priced in the twenties and not forties.

First, I'd like to reinforce what others have said. Not sure what's going on with O'Reilly but the illustrations are terrible. They're obviously making some very short sighted decisions which will make me think twice before I buy another of their books.I was pretty disappointed with the book but in hindsight I should have expected what I read. It's very broad and very high level, but I was also surprised about how much of it was just opinion and how many of those opinions I didn't agree with. The book reminded me of how little Science there is in Computer Science.It's probably only good for coming across a few buzzwords you didn't know about (assuming that's a goal).

I read this book as an Associate SE and I gained a ton of knowledge. This book is extremely well written. I enjoyed the order in which the topics were presented. It began with an explanation of the four pillars in software architecture. By doing so readers gain immediate value within the first few pages. I particularly enjoyed the advocation for a domain partitioned folder structure as opposed to a technically partitioned folder structure, especially for front end developers. I believe navigating the code base should very much resemble navigating the UI. This is not only cool for readability, but it inherently increases cohesion. A huge win for such a low cost.After getting the foundations laid the authors explain different architecture styles. The part I found to be most useful was the charts they provided which give star ratings to highlight the strength and weaknesses of each architecture. This illustrates that architecture styles should be chosen for specific solutions and not trends. I gained the skills necessary to begin to think like an architect. It included breadth of knowledge which, as the book will tell you, is much more important than depth of knowledge for an architect. Then the authors decided to dive back in and elaborate a bit more on the foundations learned at the beginning. It suggested ADRs, another quick win for low costs. They also spoke about risks storming and offered friendly advice on finding balance within the teams.All in all, an amazing book. And at the end, the authors even presented tons of short answer questions to challenge readers and really take the lesson home.

Excellent overview of different architectures and enable one to ask more questions, the right questions, and the right keywords to look up for further exploration and self study.There are no implementation details but a good idea of the structure, action, pros and cons.So this book won't teach you how to implement messaging or Domain Driven Design, for example, but will give you an idea about how to identify whether and where they are needed, and why.A solid step up for those who know how all the parts work and now would like to know, how to know, which parts will be appropriate in different situations.

A masterpiece! , the best book to start creating a software architecture mindset

This book gives a great thought framework for reflecting on your current product and planning the next one from architectural stance.had to read this book twice, because some chapters were pretty dense on confusing CS terms

The book content is as described. However, the book itself was moderately damaged. In fact, 3 out of 4 O'Reilly books I've order this week were cosmetically damaged.

good content, but delivering is so late

The media could not be loaded.  I just get the book by today, and I get nervous about the unclear picture print.

The book is what it says: fundamentals... "just enough" of software architecture. Full of good advice for someone who already has some tech lead and design experience, but looking to move up in the hierarchy. General direction is more on breadth (architects) rather than on depth (developers). See picture for recommended study environment.

I refreshed my memories and ideas. Learned about new tools, books, and techniques. Nothing revolutionary here.The book will not make you architects. Hard work will.

Excellent quality at HALF the cost of the name brand vacuum seal bags.

I'm glad that I found this pack of 3 in the small size. They vacuum as well as top brands.

They do what they're supposed to do, keep your meats sealed. It's on the "thinner side", but again, it seals your food.

Rolls were larger than I thought.

Like. Yes !

Haven't used the product yet but it looks like it's going to be a good product

sometimes sealing process doesn't work properly


Works to expand the cup holder but needs a ‘brace’ of some sort to hold up the extra holder when extended

I have a 2003 chevy Tahoe and this does not expand big enough at the base/bottom to fit my cup holder. It’s a GREAT IDEA AND PRODUCT. It would be helpful to know what year auto it DOES fit. I gave mine to my neighbor with that has a 2020 Tahoe and 3 kids and they LOVE it😉

Cute but smaller than my Cup holders up front. Perfect for the ones in back door

Exactly what it was supposed to be


Bought this for my 2021 Kia SportageWhen placed into the cup hold there’s a gapWhich beats the whole purpose of these.Cute design (sunflower)But overall not satisfied with the sizing

Perfect for my truck.

Perfect cup holder

The book has the right balance to talk and explain about architecture and the role of the architectAs an architect it was a good read

The book is what it says: fundamentals... "just enough" of software architecture. Full of good advice for someone who already has some tech lead and design experience, but looking to move up in the hierarchy. General direction is more on breadth (architects) rather than on depth (developers). See picture for recommended study environment.

The book content is as described. However, the book itself was moderately damaged. In fact, 3 out of 4 O'Reilly books I've order this week were cosmetically damaged.

Fundamentals of Software Architecture: An Engineering Approach
⭐ 4.6 💛 658
kindle: $36.57
paperback: $31.94
Buy the Book