Fans pick 100 books like 97 Things Every Software Architect Should Know

By Richard Monson-Haefel,

Here are 100 books that 97 Things Every Software Architect Should Know fans have personally recommended if you like 97 Things Every Software Architect Should Know. Shepherd is a community of 12,000+ authors and super readers sharing their favorite books with the world.

When you buy books, we may earn a commission that helps keep our lights on (or join the rebellion as a member).

Book cover of The Software Architect Elevator: Redefining the Architect's Role in the Digital Enterprise

Mark Richards Author Of Fundamentals of Software Architecture: An Engineering Approach

From my list on better understanding software architecture.

Why am I passionate about this?

I’ve been a software architect for a very long time. I love hard problems, and I’m very passionate about collaborating with others to find the right solution to them. Software architecture is a challenging, multi-faceted discipline with very few resources to help you make the right decisions. That’s why I’m recommending these books on software architecture. These books helped me become a more effective software architect, and I hope they can help you become more effective as well.

Mark's book list on better understanding software architecture

Mark Richards Why did Mark love this book?

It is my belief that half of being an effective software architect is mastering people skills.

However soft they are, these skills are the hardest to master. This book focuses on the communication and soft skills necessary to become an effective architect, and it does it superbly. The author’s elevator metaphor is perfect in that it emphasizes the fact that communication must exist on all levels within the organization, and the skills needed at each level differ.

I personally found this book very useful in honing my communication skills as a software architect.

By Gregor Hohpe,

Why should I read it?

1 author picked The Software Architect Elevator as one of their favorite books, and they share why you should read it.

What is this book about?

As the digital economy changes the rules of the game for enterprises, the role of software and IT architects is also transforming. Rather than focus on technical decisions alone, architects and senior technologists need to combine organizational and technical knowledge to effect change in their company's structure and processes. To accomplish that, they need to connect the IT engine room to the penthouse, where the business strategy is defined.

In this guide, author Gregor Hohpe shares real-world advice and hard-learned lessons from actual IT transformations. His anecdotes help architects, senior developers, and other IT professionals prepare for a more complex…


Book cover of A Practical Guide to Enterprise Architecture

Mark Richards Author Of Fundamentals of Software Architecture: An Engineering Approach

From my list on better understanding software architecture.

Why am I passionate about this?

I’ve been a software architect for a very long time. I love hard problems, and I’m very passionate about collaborating with others to find the right solution to them. Software architecture is a challenging, multi-faceted discipline with very few resources to help you make the right decisions. That’s why I’m recommending these books on software architecture. These books helped me become a more effective software architect, and I hope they can help you become more effective as well.

Mark's book list on better understanding software architecture

Mark Richards Why did Mark love this book?

This book was very influential in my career as a software architect because it was the first “technical” book I read that finally focused on the people and leadership skills of being an architect.

It was also the first book I read that made me start to think more about the intersection of agile and architecture, something they also devote an entire chapter to. While a bit outdated in today’s world, the authors hit the nail on the head with the still-relevant chapters on thought leadership, agility, and software architecture modeling.   

By James McGovern, Scott W. Ambler, Michael E. Stevens , James Linn , Vikas Sharan , Elias K. Jo

Why should I read it?

1 author picked A Practical Guide to Enterprise Architecture as one of their favorite books, and they share why you should read it.

What is this book about?

In A Practical Guide to Enterprise Architecture, six leading experts present indispensable technical, process, and business insight into every aspect of enterprise architecture. You'll find start-to-finish guidance for architecting effective system, software, and service-oriented architectures; using product lines to streamline enterprise software design; leveraging powerful agile modeling techniques; extending the Unified Process to the full software lifecycle; architecting presentation tiers and user experience; and driving the technical direction of the entire enterprise. For every working architect and every IT professional who wants to become one.


Book cover of Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions

Mark Richards Author Of Fundamentals of Software Architecture: An Engineering Approach

From my list on better understanding software architecture.

Why am I passionate about this?

I’ve been a software architect for a very long time. I love hard problems, and I’m very passionate about collaborating with others to find the right solution to them. Software architecture is a challenging, multi-faceted discipline with very few resources to help you make the right decisions. That’s why I’m recommending these books on software architecture. These books helped me become a more effective software architect, and I hope they can help you become more effective as well.

Mark's book list on better understanding software architecture

Mark Richards Why did Mark love this book?

Although first published in 2004, this book continues to be my primary reference for anything related to messaging, event processing, and integration architecture.

The patterns described in this book are still highly relevant today, and are explained in a clear and concise manner that makes each one easy to understand and implement. Because you will encounter these patterns everywhere, this timeless book is a must-read book to better recognize and understand these patterns. 

By Gregor Hohpe, Bobby Woolf,

Why should I read it?

1 author picked Enterprise Integration Patterns as one of their favorite books, and they share why you should read it.

What is this book about?

Enterprise Integration Patterns provides an invaluable catalog of sixty-five patterns, with real-world solutions that demonstrate the formidable of messaging and help you to design effective messaging solutions for your enterprise.

The authors also include examples covering a variety of different integration technologies, such as JMS, MSMQ, TIBCO ActiveEnterprise, Microsoft BizTalk, SOAP, and XSL. A case study describing a bond trading system illustrates the patterns in practice, and the book offers a look at emerging standards, as well as insights into what the future of enterprise integration might hold.

This book provides a consistent vocabulary and visual notation framework to describe…


Book cover of Just Enough Software Architecture: A Risk-Driven Approach

Mark Richards Author Of Fundamentals of Software Architecture: An Engineering Approach

From my list on better understanding software architecture.

Why am I passionate about this?

I’ve been a software architect for a very long time. I love hard problems, and I’m very passionate about collaborating with others to find the right solution to them. Software architecture is a challenging, multi-faceted discipline with very few resources to help you make the right decisions. That’s why I’m recommending these books on software architecture. These books helped me become a more effective software architect, and I hope they can help you become more effective as well.

Mark's book list on better understanding software architecture

Mark Richards Why did Mark love this book?

Why should you spend so much time working on the software architecture of a system? Does it really matter?

This book made me realize that not all systems need the same effort of software architecture to make them successful. If you’re building a doghouse, very little planning is needed—all you need is some wood, nails, a hammer, and a saw. If you are building a skyscraper, you need a significant amount of planning and architecture, or the building will collapse.

In this book the author also talks about risk-based architecture—determining how much architecture is needed based on risk, a perspective I found very helpful in my career as an architect. 

By George Fairbanks,

Why should I read it?

1 author picked Just Enough Software Architecture as one of their favorite books, and they share why you should read it.

What is this book about?

This is a practical guide for software developers, and different than other software architecture books. Here's why:

It teaches risk-driven architecting. There is no need for meticulous designs when risks are small, nor any excuse for sloppy designs when risks threaten your success. This book describes a way to do just enough architecture. It avoids the one-size-fits-all process tar pit with advice on how to tune your design effort based on the risks you face.

It democratizes architecture. This book seeks to make architecture relevant to all software developers. Developers need to understand how to use constraints as guiderails that…


Book cover of Computers Ltd.: What They Really Can't Do

Martin Erwig Author Of Once Upon an Algorithm: How Stories Explain Computing

From my list on computer science without coding.

Why am I passionate about this?

I’m a professor of computer science at Oregon State University. My research focus is on programming languages, but I also work on computer science education and outreach. I grew up in Germany and moved to the United States in 2000. Since computer science is a fairly new and not widely understood discipline, I am interested in explaining its core ideas to the general public. I believe that in order to attract a more diverse set of people to the field we should emphasize that coding is only a small part of computer science.

Martin's book list on computer science without coding

Martin Erwig Why did Martin love this book?

This book provides a brief introduction to the concept of algorithms before discussing the limitations of computation. Specifically, Harel explains undecidable problems (that is, problems for which no algorithm exists) and infeasible problems (that is, problems for which only algorithms are known that have an exponential runtime). I like this book (and its splendid title) because of its focus on the limitations of computation. Harel does a marvelous job in explaining two difficult topics about computation. The understanding of any scientific discipline requires the understanding of its limits, and the limits of computation are as significant as they are surprising.

By David Harel,

Why should I read it?

2 authors picked Computers Ltd. as one of their favorite books, and they share why you should read it.

What is this book about?

Computers are incredible. They are one of the most important inventions of the 20th century, dramatically and irrevocably changing the way we live. That is the good news. The bad news is that there are still major limitations to computers, serious problems that not even the most powerful computers can solve. The consequences of such limitations can be serious. Too often these limits get overlooked, in the quest for bigger, better, and more powerful computers. In Computers Ltd., David Harel, best-selling author of Algorithmics, explains and illustrates one of the most fundamental, yet under-exposed facets of computers - their inherent…


Book cover of The Imposter's Handbook: A CS Primer for Self-taught Developers

John Z. Sonmez Author Of Soft Skills: The Software Developer's Life Manual

From my list on fun for software developers.

Why am I passionate about this?

I love to expand my knowledge and learn not just about new technologies, but how things work. I find it fascinating to dig deep into computer programming, technology concepts, and really geek out on things. That’s why I love software development or programming books that aren’t just about some technology and how to do something, but rather books that really make you think and teach you not just programming skills but critical thinking about problem-solving skills. As a software developer for over 15 years and a person who teaches software developers, I have learned that if someone isn’t entertained, they aren’t learning. That’s why I put together a list of fun, entertaining and useful books.

John's book list on fun for software developers

John Z. Sonmez Why did John love this book?

Wow! This book is exactly what every programmer has always wanted to know or even felt guilty about not knowing and it’s all presented in an extremely simplified and fun way. 

This is one of those books where you get excited in the morning when you wake up because you know you are going to be able to read more in the book and you are hoping the book will never end.

It’s rare to find a big book that I enjoyed reading so much and felt so short. This book covers almost everything you ever wondered about computer science. After reading this book, I felt like I finally understood everything a programmer was supposed to know and I no longer felt that nagging feeling of being an imposter.

By Rob Conery,

Why should I read it?

1 author picked The Imposter's Handbook as one of their favorite books, and they share why you should read it.


Book cover of Code Complete: A Practical Handbook of Software Construction

Rod Stephens Author Of Beginning Software Engineering

From my list on making you a better software developer.

Why am I passionate about this?

During my career, I’ve worked on projects large and small (1 - 60+ people) in a wide variety of fields (like repair dispatch, ticket sales, and professional football coaching--the NFL kind not the FIFA kind). All of them, and particularly the big ones, were like antique clocks: they had lots of moving pieces and if any piece broke, the whole thing wouldn’t work. (Unfortunately, failed software projects don’t look nice on your mantelpiece.) In this list, I’ve tried to pick some books that you might not discover if you look only for programming books. Read those, too, but don’t ignore the more human-oriented dimensions of software development. Hopefully you’ll find these choices interesting and useful.

Rod's book list on making you a better software developer

Rod Stephens Why did Rod love this book?

Software engineering involves several phases such as requirements gathering, design, programming, testing, and deployment.

This book explains techniques that allow you to build quality and robustness into every phase of the process. It discusses design, classes, defensive programming, collaboration, refactoring, and more.

The book uses many examples in an assortment of languages but the concepts apply to any programming language. In fact, the main themes like building error detection into every step of the process generalize to even non-programming parts of the development process.

If you’re an experienced developer, you may have discovered some of this book’s ideas elsewhere or even on your own, but you only need to pick up one or two new tidbits to make the book worthwhile.

By Steve McConnell,

Why should I read it?

1 author picked Code Complete as one of their favorite books, and they share why you should read it.

What is this book about?

Widely considered one of the best practical guides to programming, Steve McConnell's original CODE COMPLETE has been helping developers write better software for more than a decade. Now this classic book has been fully updated and revised with leading-edge practices-and hundreds of new code samples-illustrating the art and science of software construction. Capturing the body of knowledge available from research, academia, and everyday commercial practice, McConnell synthesizes the most effective techniques and must-know principles into clear, pragmatic guidance. No matter what your experience level, development environment, or project size, this book will inform and stimulate your thinking-and help you build…


Book cover of Requirements by Collaboration: Workshops for Defining Needs

Karl Wiegers Author Of Software Requirements

From my list on defining software requirements.

Why am I passionate about this?

Defining and managing the requirements for a software system is hard! I’ve been interested in improving how projects handle their requirements for more than 35 years. I realized how important this was when I saw how many projects—including my own—struggled and failed when they neglected to build a solid foundation of well-understood and clearly communicated requirements. I’ve personally used nearly all of the techniques described in my book Software Requirements, and I got always better results when I applied those techniques. My books, articles, training courses, presentations, and videos on requirements have been helpful to thousands of business analysts worldwide for many years.

Karl's book list on defining software requirements

Karl Wiegers Why did Karl love this book?

Exploring requirements is more about communication than computing. Requirements elicitation often involves discussions between business analysts and user representatives or other project stakeholders in either one-on-one discussions or group workshops. Requirements by Collaboration presents a wealth of practical tools and techniques for planning and leading requirements development workshops. It’s packed full of useful tips, checklists, questions to ask, and activities to perform to make workshops effective and successful.

I especially like Gottesdiener’s “collaboration patterns,” eight techniques that a workshop facilitator can employ to help the group achieve its objectives. The pattern called Decide How to Decide is the first one that any group of collaborators should use: exactly how will we make decisions? If you expect to lead, or even participate in, requirements workshops, read this book first.

By Ellen Gottesdiener,

Why should I read it?

1 author picked Requirements by Collaboration as one of their favorite books, and they share why you should read it.

What is this book about?

"I spend much time helping organizations capture requirements and even more time helping them recover from not capturing requirements. Many of them have gone through some motions regarding requirements as if they were sleepworking. It's time to wake up and do it right-and this book is going to be their alarm clock."

- Jerry Weinberg, author of numerous books on productivity enhancement "In today's complex, fast-paced software development environment, collaboration-the intense peer-to-peer conversations that result in products, decisions, and knowledge sharing-is absolutely essential to success. But all too often, attempts to collaborate degenerate into agonizing meetings or ineffectual bull sessions.…


Book cover of Microsoft Secrets: How the World's Most Powerful Software Company Creates Technology, Shapes Markets and Manages People

Michael K. Levine Author Of People Over Process: Leadership for Agility

From my list on if you want to lead great software delivery teams.

Why am I passionate about this?

I’ve been doing large-scale software development at great US businesses from the introduction of the PC to the cloud explosion. From my earliest successes (online banking at US Bank in 1985!) to my biggest failures (Wells Fargo “Core” disaster in 2006), I’ve always sought better ways of doing things. These five books all were important to my learning and remain highly relevant, and I hope you find them useful as well. 

Michael's book list on if you want to lead great software delivery teams

Michael K. Levine Why did Michael love this book?

This book helped me set my initial approach to software development and I still periodically return to it for grounding.

An MIT project theorized that new-fangled PC software developers knew something mainframe and mini-computer makers didn’t. MIT’s research revealed something else entirely: Microsoft had uniquely effective ideas on how to build complex products in rapidly evolving competitive markets. Here is “agile” before it was put into the Manifesto in 2001, in a more complete form. Ever wonder where the idea of a team comprising functional specialists with overlapping roles, united by a common goal, came from? Or incremental feature evolution with periodic synchronization and constant testing? Early brilliance still of foundational relevance, in a coherent and engaging form.

By Michael A. Cusumano, Richard W. Selby,

Why should I read it?

1 author picked Microsoft Secrets as one of their favorite books, and they share why you should read it.

What is this book about?

Drawing on observation, interviews, and confidential data, the authors reveal Microsoft's product development, marketing, and organizational strategies.


Book cover of The Art of Agile Development

Markus Gärtner Author Of ATDD by Example: A Practical Guide to Acceptance Test-Driven Development

From my list on surviving the Agile world as a software tester.

Why am I passionate about this?

Markus Gärtner works as Organizational Design Consultant, Certified Scrum Trainer, and Agile Coach for it-agile GmbH, Hamburg, Germany. Markus, author of ATDD by Example - A Practical Guide to Acceptance Test-Driven Development, a student of the work of Jerry Weinberg, received the Most Influential Agile Testing Professional Person Award in 2013 and contributes to the Softwerkskammer, the German Software Craft movement. Markus regularly presents at Agile and testing conferences all over the globe, as well as dedicating himself to writing about agile software development, software craft, and software testing, foremost in an Agile context.

Markus' book list on surviving the Agile world as a software tester

Markus Gärtner Why did Markus love this book?

“Good agile testing is good context-driven testing applied in an agile context.”

I recall reading through the authors’ lessons on software testing at about the same time I dived into more agile topics. Lessons Learned in Software Testing helped me keep the connection towards more traditional contexts – more so since I was still working in a more traditional context.

With their more than 100 lessons some of them applied to me, others did not. I am sure, other readers will find the same in their context.

By James Shore, Shane Warden, Diana Larsen , Gitte Klitgaard

Why should I read it?

1 author picked The Art of Agile Development as one of their favorite books, and they share why you should read it.

What is this book about?

Most companies developing software employ something they call "Agile." But there's widespread misunderstanding of what Agile is and how to use it. If you want to improve your software development team's agility, this comprehensive guidebook's clear, concrete, and detailed guidance explains what to do and why, and when to make trade-offs.

In this thorough update of the classic Agile how-to guide, James Shore provides no-nonsense advice on Agile adoption, planning, development, delivery, and management taken from over two decades of Agile experience. He brings the latest ideas from Extreme Programming, Scrum, Lean, DevOps, and more into a cohesive whole. Learn…


Book cover of The Software Architect Elevator: Redefining the Architect's Role in the Digital Enterprise
Book cover of A Practical Guide to Enterprise Architecture
Book cover of Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions

Share your top 3 reads of 2024!

And get a beautiful page showing off your 3 favorite reads.

1,593

readers submitted
so far, will you?

5 book lists we think you will like!

Interested in software, architects, and computer science?

Software 61 books
Architects 21 books
Computer Science 35 books