The best software books

Who picked these books? Meet our 27 experts.

27 authors created a book list connected to software, and here are their favorite software books.
Shepherd is reader supported. When you buy books, we may earn an affiliate commission

What type of software book?

Loading...
Loading...

Microsoft Secrets

By Michael A. Cusumano, Richard W. Selby,

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 the list on if you want to lead great software delivery teams.

Who am I?

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

Discover why each book is one of Michael's favorite books.

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.


Refactoring

By Martin Fowler,

Book cover of Refactoring: Improving the Design of Existing Code

Alexander Granin Author Of Functional Design and Architecture

From the list on domain modeling.

Who am I?

If someone had told me during my early professional years that I would become a strong advocate for functional programming and the author of a fundamental book on functional software engineering, I would have found it hard to believe. Was functional programming truly worth dedicating my life to? However, once I experienced the sheer beauty of functional programming, there was no turning back. I delved deep into Haskell and functional C++, and began writing articles, giving talks, and developing various technologies. I realized that I possessed a truly unique perspective on approaching software engineering in functional languages, and that there was a significant knowledge gap that needed to be filled for the benefit of all.

Alexander's book list on domain modeling

Discover why each book is one of Alexander's favorite books.

Why did Alexander love this book?

What does refactoring have to do with domain modeling in functional programming?

It turns out that the very essence of code improvement is closely tied to enhancing its capability to handle the intricacies of a specific domain. This implies that even when refactoring a domain-agnostic mechanism in our code, our objective is to address previously inaccessible aspects of the domain.

Another important aspect of refactoring is that functional languages make it more desirable and safer, thanks to core principles such as purity and immutability.

Although there might not be an abundance of books on domain modeling in functional programming, I firmly believe that Fowler's book can be immensely beneficial in this endeavor.

By Martin Fowler,

Why should I read it?

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

What is this book about?

Refactoring is about improving the design of existing code. It is the process of changing a software system in such a way that it does not alter the external behavior of the code, yet improves its internal structure. With refactoring you can even take a bad design and rework it into a good one. This book offers a thorough discussion of the principles of refactoring, including where to spot opportunities for refactoring, and how to set up the required tests. There is also a catalog of more than 40 proven refactorings with details as to when and why to use…


Book cover of 97 Things Every Software Architect Should Know

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

From the list on better understanding software architecture.

Who am I?

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

Discover why each book is one of Mark's favorite books.

Why did Mark love this book?

Imagine sitting in a room with 50 of the top software architects in the world and have each of them tell you some brief words of advice about being a software architect.

Welcome to “97 Things Every Software Architect Should Know”. Each 2-page spread features a top software architect offering their advice on some aspect of software architecture. From technical skills to soft skills, this book has it all.

This book is a must-read if you are a software architect, or even thinking about becoming one.

By Richard Monson-Haefel,

Why should I read it?

1 author picked 97 Things Every Software Architect Should Know as one of their favorite books, and they share why you should read it.

What is this book about?

Collective Wisdom from the Experts


The Clean Coder

By Robert C. Martin,

Book cover of The Clean Coder: A Code of Conduct for Professional Programmers

Jesse Liberty Author Of Git for Programmers: Master Git for effective implementation of version control for your programming projects

From the list on for creating great software.

Who am I?

I have been coding for over 30 years. I’ve seen some miserable interfaces, and some large programs that collapse under their own weight. Software was, at one point, notorious for being late, over budget, and unreliable. These books have helped turn the corner on these failings, and I have found each of them very valuable in my day-to-day programming. While you can learn technique and even languages online, the kind of insight found in these books is rare and worth spending time and money on.

Jesse's book list on for creating great software

Discover why each book is one of Jesse's favorite books.

Why did Jesse love this book?

Robert (Uncle Bob) Martin is the recognized go-to person for books on creating quality code. This is the first in a series of books that include The Clean Coder, Clean Architecture, and a number more. His advice and guidance in Clean Code have made a significant difference in my personal coding habits and best practices. This is an indispensable book for all programmers, no matter what they are coding or how much experience they have

By Robert C. Martin,

Why should I read it?

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

What is this book about?

Programmers who endure and succeed amidst swirling uncertainty and nonstop pressure share a common attribute: They care deeply about the practice of creating software. They treat it as a craft. They are professionals.



In The Clean Coder: A Code of Conduct for Professional Programmers, legendary software expert Robert C. Martin introduces the disciplines, techniques, tools, and practices of true software craftsmanship. This book is packed with practical advice-about everything from estimating and coding to refactoring and testing. It covers much more than technique: It is about attitude. Martin shows how to approach software development with honor, self-respect, and pride; work…


Book cover of The Quest for Software Requirements

Karl Wiegers Author Of Software Requirements

From the list on defining software requirements.

Who am I?

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

Discover why each book is one of Karl's favorite books.

Why did Karl love this book?

Most discussions about requirements focus on functionality, which is what the users most obviously observe in a software system. However, user satisfaction also depends heavily on nonfunctional requirements, such as various quality characteristics the system exhibits: usability, availability, reliability, security, scalability, maintainability, and others.

The Quest for Software Requirements is the only book that focuses on nonfunctional requirements. It provides many questions a business analyst could ask during requirements elicitation to understand the stakeholders’ expectations for those all-important quality attributes. That’s an often-neglected aspect of requirements exploration that frequently leads to deficiencies that can be expensive to correct later in development or after the product is released. This book can help you avoid those unpleasant outcomes.

By Roxanne E. Miller,

Why should I read it?

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

What is this book about?

Overlooked or poorly defined nonfunctional software requirements are widely recognized to be among the most expensive and difficult errors to correct after a softward system has been implemented. This book presents over 2,000 suggested questions to help master the elicitation of these hard-to-identify, yet vital, requirements. Its proven step-by-step techniques, insightful tips and tools, easy-to-use checklists, examples of nonfunctional requirements, and requirements-gathering questions, will assist the reader in developing and installing software requirements.


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

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

From the list on better understanding software architecture.

Who am I?

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

Discover why each book is one of Mark's favorite books.

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…


Lessons Learned in Software Testing

By Cem Kaner, James Bach, Bret Pettichord

Book cover of Lessons Learned in Software Testing: A Context-Driven Approach

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

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

Who am I?

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

Discover why each book is one of Markus' favorite books.

Why did Markus love this book?

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

The authors of this book summarize their decades of experience in software testing in over 100 lessons they learned. Follow them along different aspects of the tester’s job, as they re-tell various stories collected over the years with some clear guidance to surviving and testing project.

These software testing industry leaders have some timely contextual advice in here – whether you work as a tester on an agile team or in a more traditional fashion.

By Cem Kaner, James Bach, Bret Pettichord

Why should I read it?

1 author picked Lessons Learned in Software Testing as one of their favorite books, and they share why you should read it.

What is this book about?

Decades of software testing experience condensed into the most important lessons learned.

The world's leading software testing experts lend you their wisdom and years of experience to help you avoid the most common mistakes in testing software. Each lesson is an assertion related to software testing, followed by an explanation or example that shows you the how, when, and why of the testing lesson. More than just tips, tricks, and pitfalls to avoid, Lessons Learned in Software Testing speeds you through the critical testing phase of the software development project without the extensive trial and error it normally takes to…


97 Things Every Java Programmer Should Know

By Kevlin Henney, Trisha Gee,

Book cover of 97 Things Every Java Programmer Should Know: Collective Wisdom from the Experts

Jeanne Boyarsky Author Of OCP Oracle Certified Professional Java SE 17 Developer Study Guide: Exam 1Z0-829

From the list on becoming a better Java developer.

Who am I?

I’ve always enjoyed mentoring folks whether new or experienced in programming. Whether it is teaching an intern or a high school robotics student, or onboarding an experienced Java developer, it brings me joy to see people learn. I also love to read. Being able to recommend some of my favorite books can help even more people absorb all of this information.

Jeanne's book list on becoming a better Java developer

Discover why each book is one of Jeanne's favorite books.

Why did Jeanne love this book?

When trying to become a better Java developer, there is so much to learn.

97 Things covers, well 97, of them in a series of brief essays. What’s cool is that the essays were written by different people so you get lots of points of view on what is important. Topics range from language (comments, fat jars) to the ecosystem (benchmarking, frequent releases) to the language-agnostic (definition of done and breaking down problems.)

Note that two of these are mine. The book is thin at just over 200 pieces. And since each “thing” is short, it’s easy to read on the go.

By Kevlin Henney, Trisha Gee,

Why should I read it?

1 author picked 97 Things Every Java Programmer Should Know as one of their favorite books, and they share why you should read it.

What is this book about?

If you want to push your Java skills to the next level, this book provides expert advice from Java leaders and practitioners. You'll be encouraged to look at problems in new ways, take broader responsibility for your work, stretch yourself by learning new techniques, and become as good at the entire craft of development as you possibly can

Edited by Kevlin Henney and Trisha Gee, 97 Things Every Java Programmer Should Know reflects lifetimes of experience writing Java software and living with the process of software development. Great programmers share their collected wisdom to help you rethink Java practices, whether…


Ship It!

By Jared Richardson, William A Gwaltney,

Book cover of Ship It!: A Practical Guide to Successful Software Projects

Mike McQuaid Author Of Git in Practice

From the list on becoming a great open source software engineer.

Who am I?

I’ve been a professional software engineer and maintaining open-source software for 16 years. My work on open source has been heavily informed by industry best practises and my work on proprietary software has been heavily informed by open source best practises. Without these books, I’d be a worse engineer on many dimensions. Some of them may feel antiquated but all are still full of relevant wisdom for every open-source (and proprietary) software engineer today.

Mike's book list on becoming a great open source software engineer

Discover why each book is one of Mike's favorite books.

Why did Mike love this book?

Another book that predates GitHub but provides a lot of actionable advice today that’s been mostly ignored across much of our industry.

Hard problems like “why isn’t my software project reliable?” are tackled head-on and addressed here. It was an early nudge for me to automate as much as possible in software projects and not ignore difficult problems with project organisation in favour of “fun” technical tasks.

By Jared Richardson, William A Gwaltney,

Why should I read it?

1 author picked Ship It! as one of their favorite books, and they share why you should read it.

What is this book about?

"Ship It!" is a collection of tips that show the tools and techniques a successful project team has to use, and how to use them well. You'll get quick, easy-to-follow advice on modern practices: which to use, and when they should be applied. This book avoids current fashion trends and marketing hype; instead, readers find page after page of solid advice, all tried and tested in the real world. Aimed at beginning to intermediate programmers, "Ship It!" will show you: which tools help, and which don't, how to keep a project moving, approaches to scheduling that work, how to build…


Erlang Programming

By Francesco Cesarini, Simon Thompson,

Book cover of Erlang Programming: A Concurrent Approach to Software Development

Philipp Fehre Author Of JavaScript Domain-Driven Design

From the list on learning from programming classics.

Who am I?

Computers have fascinated me since my childhood, having fond memories of my dad's ZX81, but even so I played around I was never truly captured by the programming until I recognized it as a way of writing rather than raw engineering. Through my studies of media sciences I found my fascination with how language can shape perception, and through my work in developer advocacy, I found how communities are shaped as well. Now I am fascinated with how different programming languages can shape thinking, having had the opportunity to solve problems at large companies in nonmainstream languages.

Philipp's book list on learning from programming classics

Discover why each book is one of Philipp's favorite books.

Why did Philipp love this book?

Distributed systems are everywhere now, but long before there were telephony switches, and Erlang was built to make those work.

Reading this book gave me not only an understanding about Erlang, but the language and understanding to talk and think about systems which are distributed from the beginning, not as an afterthought. For me personally Erlang/OTP is the DSL for dystributed system and the patterns implemented have applications every time I think about distributed systems now.

By Francesco Cesarini, Simon Thompson,

Why should I read it?

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

What is this book about?

A Concurrent Approach to Software Development


Rapid Development

By Steve McConnell,

Book cover of Rapid Development: Taming Wild Software Schedules

Karl Wiegers Author Of Software Development Pearls: Lessons from Fifty Years of Software Experience

From the list on lessons about software development.

Who am I?

I first learned to program in college in 1970. Since then I’ve spent much time as a software developer, manager, tester, process improvement leader, consultant, trainer, author, and, of course, a user. I quickly learned that I didn’t have time to make all the mistakes that every software developer before me had already made. My training and writing career has involved sharing what I and others have learned with audiences to help them quickly become more effective software development team members, regardless of their project role. This book distills insights and observations both from my own experience and from what I’ve heard from thousands of students and consulting clients.

Karl's book list on lessons about software development

Discover why each book is one of Karl's favorite books.

Why did Karl love this book?

One way to craft lessons learned is in the form of recommended best practices (or, as I prefer, “good practices”). Best practices represent collected and distilled wisdom from many observers, many projects, and many years of experience. Rapid Development includes 27 best practices for software development, with one chapter devoted to each. Although the book was published more than 25 years ago, most of these are still relevant. Indeed, several of them have been incorporated into routine contemporary practices: evolutionary delivery, designing for change, timebox development, and requirements scrubbing. Techniques such as inspections, miniature milestones, principled negotiation, and reuse are perennially pertinent.

By Steve McConnell,

Why should I read it?

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

What is this book about?

Corporate and commercial software-development teams all want solutions for one important problem-how to get their high-pressure development schedules under control. In RAPID DEVELOPMENT, author Steve McConnell addresses that concern head-on with overall strategies, specific best practices, and valuable tips that help shrink and control development schedules and keep projects moving. Inside, you'll find:





A rapid-development strategy that can be applied to any project and the best practices to make that strategy work
Candid discussions of great and not-so-great rapid-development practices-estimation, prototyping, forced overtime, motivation, teamwork, rapid-development languages, risk management, and many others
A list of classic mistakes to avoid for…


Book cover of Quality Software Management, Volume 1: Systems Thinking

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

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

Who am I?

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

Discover why each book is one of Markus' favorite books.

Why did Markus love this book?

Gerald M. – Jerry – Weinberg is my most-often quoted author.

Having spent more than 50 years in the software world, Jerry was able to write in a timeless manner about the lessons he learned. Over the years, he collected more and more stories he survived from, including all aspects that brings software from an idea to a product that everyone can use.

In this first volume in his Quality Software Management series, he will extend your perspective with Causal-Loop Diagrams and thereby introduce you to the world of Thinking in Systems.

The takeaways from his stories are fostered in easy-to-remember laws and principles that he gives you as a free takeaway summary in the end as well. Extend your perspective on managing for quality rather than staying oblivious.

By Gerald M. Weinberg,

Why should I read it?

1 author picked Quality Software Management, Volume 1 as one of their favorite books, and they share why you should read it.

What is this book about?

In this first volume of the Quality Software Management series, Gerald M. Weinberg tackles the first requirement for developing quality software: learning to think correctly -- about problems, solutions, and quality itself.

Guidelines on management are introduced to stimulate the kind of thinking needed.


Computers Ltd.

By David Harel,

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

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

From the list on computer science without coding.

Who am I?

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

Discover why each book is one of Martin's favorite books.

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…


Software Security

By Gary McGraw,

Book cover of Software Security: Building Security in

Nancy R. Mead Author Of Cyber Security Engineering: A Practical Approach for Systems and Software Assurance

From the list on software security engineering.

Who am I?

As a kid, I used to do all the math problems in my textbooks just for fun, even if they weren’t part of a homework assignment. My grandchildren cringe when I tell them this. I am a researcher and educator in secure software engineering and have enjoyed a productive career in software development and management, software engineering and software security research, and software and secure software engineering education.  

Nancy's book list on software security engineering

Discover why each book is one of Nancy's favorite books.

Why did Nancy love this book?

Gary McGraw has been an advocate for the importance of developing secure software during the more than 15 years that I have known him, and before that! He has written a number of books, but this one captures his philosophy on how to develop secure software. It’s an excellent resource for practitioners and management.

By Gary McGraw,

Why should I read it?

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

What is this book about?

"When it comes to software security, the devil is in the details. This book tackles the details."
--Bruce Schneier, CTO and founder, Counterpane, and author of Beyond Fear and Secrets and Lies



"McGraw's book shows you how to make the 'culture of security' part of your development lifecycle."
--Howard A. Schmidt, Former White House Cyber Security Advisor



"McGraw is leading the charge in software security. His advice is as straightforward as it is actionable. If your business relies on software (and whose doesn't), buy this book and post it up on the lunchroom wall."
--Avi Rubin, Director of the NSF…


More Agile Testing

By Janet Gregory, Lisa Crispin,

Book cover of More Agile Testing: Learning Journeys for the Whole Team

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

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

Who am I?

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

Discover why each book is one of Markus' favorite books.

Why did Markus love this book?

The second book from Gregory and Crispin brought me up-to-date on the different trends in the Agile world, ten years after having delved into their first book.

How do you share the quality mindset in a DevOps culture? What about Design Thinking? With many more examples from the industry, the two authors made me curious about some of the things that I had ignored until I read their book.

By Janet Gregory, Lisa Crispin,

Why should I read it?

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

What is this book about?

Janet Gregory and Lisa Crispin pioneered the agile testing discipline with their previous work, Agile Testing. Now, in More Agile Testing, they reflect on all they've learned since. They address crucial emerging issues, share evolved agile practices, and cover key issues agile testers have asked to learn more about.

Packed with new examples from real teams, this insightful guide offers detailed information about adapting agile testing for your environment; learning from experience and continually improving your test processes; scaling agile testing across teams; and overcoming the pitfalls of automated testing. You'll find brand-new coverage of agile testing for the enterprise,…


Domain-Driven Design

By Eric Evans,

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

Alexander Granin Author Of Functional Design and Architecture

From the list on domain modeling.

Who am I?

If someone had told me during my early professional years that I would become a strong advocate for functional programming and the author of a fundamental book on functional software engineering, I would have found it hard to believe. Was functional programming truly worth dedicating my life to? However, once I experienced the sheer beauty of functional programming, there was no turning back. I delved deep into Haskell and functional C++, and began writing articles, giving talks, and developing various technologies. I realized that I possessed a truly unique perspective on approaching software engineering in functional languages, and that there was a significant knowledge gap that needed to be filled for the benefit of all.

Alexander's book list on domain modeling

Discover why each book is one of Alexander's favorite books.

Why did Alexander love this book?

My journey in the world of software development has been arduous and challenging.

One of the common struggles we all face is the overwhelming number of solutions available, making it impossible to fully grasp everything at a deep level.

Just when I thought I had mastered an approach and felt competent in it, a new shiny approach would emerge, demanding my immediate attention. It often felt like a never-ending race to keep up with the ever-evolving field.

This constant pursuit of staying relevant as a software engineer can be frustrating, as it feels like we are always lagging behind the rapidly advancing world. I discovered that knowledge of specific technologies, frameworks, or libraries does not easily transfer across different technology stacks. They are too specific and lack universality. It was then that I turned my focus to more general principles of software engineering.

I realized that there are fundamental engineering…

By Eric Evans,

Why should I read it?

2 authors picked Domain-Driven Design as one of their favorite books, and they share why you should read it.

What is this book about?

Incorporate effective domain modeling into the software development process

Software design thought leader and founder of Domain Language, Eric Evans, provides a systematic approach to domain-driven design, presenting an extensive set of design best practices, experience-based techniques, and fundamental principles that facilitate the development of software projects facing complex domains. Intertwining system design and development practice, this book incorporates numerous examples based on actual projects to illustrate the application of domain-driven design to real-world software modeling and development.

Domain Model: Part I outlines the goals of domain-driven development, defines terms, and gives an overview of the implications of using the…


Contextual Design

By Karen Holtzblatt, Hugh Beyer,

Book cover of Contextual Design: Design for Life

Jeff Johnson Author Of Designing with the Mind in Mind: Simple Guide to Understanding User Interface Design Guidelines

From the list on making digital technology usable and useful.

Who am I?

I have been designing user interfaces since graduate school at Stanford, where I studied psychology and computer science. Over the five decades since then, I have designed many digital products and services, learning a lot about how to make them usable and useful. Two decades ago, I turned more towards sharing my knowledge and experience through writing (articles and books) and teaching (professionals and students). I’ve taught at Stanford University, Mills College, the University of Canterbury (New Zealand), the University of San Francisco, and at professional conferences and companies. Google invited me twice to speak in their Authors @ Google series, and ACM and SIGCHI have given me several awards.

Jeff's book list on making digital technology usable and useful

Discover why each book is one of Jeff's favorite books.

Why did Jeff love this book?

This book is the software industry’s “bible” on how to start software development projects. 

It explains how to conduct up-front user research, before design, prototyping, and coding start. User research, followed by analysis of your findings, is how you determine requirements and figure out what features or improvements are needed and which are most important. 

This book presents a collection of methods for doing that. You probably won’t need every method described this book on every project, but having Holtzblatt and Beyer’s toolkit of user-research and analysis methods available when needed is valuable. 

I read it several times, and now several of its methods are baked into my normal design process.

By Karen Holtzblatt, Hugh Beyer,

Why should I read it?

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

What is this book about?

Contextual Design: Design for Life, Second Edition, describes the core techniques needed to deliberately produce a compelling user experience. Contextual design was first invented in 1988 to drive a deep understanding of the user into the design process. It has been used in a wide variety of industries and taught in universities all over the world. Until now, the basic CD approach has needed little revision, but with the wide adoption of handheld devices, especially smartphones, the way technology is integrated into people's lives has fundamentally changed. Contextual Design V2.0 introduces both the classic CD techniques and the new techniques…


Book cover of User Stories Applied: For Agile Software Development

Karl Wiegers Author Of Software Requirements

From the list on defining software requirements.

Who am I?

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

Discover why each book is one of Karl's favorite books.

Why did Karl love this book?

Many agile projects employ user stories as a way to represent requirements rather than a more traditional approach combining use cases and functional requirements. I favor the latter approach for several reasons. Nonetheless, user stories are well established in the agile development world, and if you wish to learn about them, there’s no better author to read than Mike Cohn. Cohn describes how to craft user stories well and how they fit into the agile development process.

By Mike Cohn,

Why should I read it?

1 author picked User Stories Applied as one of their favorite books, and they share why you should read it.

What is this book about?

Thoroughly reviewed and eagerly anticipated by the agile community, User Stories Applied offers a requirements process that saves time, eliminates rework, and leads directly to better software.

The best way to build software that meets users' needs is to begin with "user stories": simple, clear, brief descriptions of functionality that will be valuable to real users. In User Stories Applied, Mike Cohn provides you with a front-to-back blueprint for writing these user stories and weaving them into your development lifecycle.

You'll learn what makes a great user story, and what makes a bad one. You'll discover practical ways to gather…


Investments Unlimited

By Helen Beal, Bill Bensing, Jason Cox, Michael Edenzon, John Willis

Book cover of Investments Unlimited: A Novel About DevOps, Security, Audit Compliance, and Thriving in the Digital Age

Tanya Janca Author Of Alice and Bob Learn Application Security

From the list on DevSecOps (it is just like DevOps, done securely).

Who am I?

I have worked in IT for over 25 years, creating and securing software. I am completely obsessed with ensuring that our software is more reliable, that its integrity can be trusted, and that it keeps our secrets safe. I am not only a computer scientist but an ethical hacker who works hard to create a dialogue between software developers and all of the people who work in our security industry. I am a teacher, a community leader, and a computer nerd who shares messages and lessons wherever she goes.

Tanya's book list on DevSecOps (it is just like DevOps, done securely)

Discover why each book is one of Tanya's favorite books.

Why did Tanya love this book?

This book is set in the same universe as The Phoenix Project and The Unicorn Project, but it's at a new company named investments unlimited.

It's also a fictitious story, but with all brand new characters, and brand new problems! In this book they cover security much more deeply than any of the other previous books, talking about how compliance and audit can work together with the information security and DevOps teams.

They talk about common problems that I have faced in many organizations, and a lot of the stories feel so familiar I wonder if the authors have followed me around throughout my career.

Although of course they save the day in the end, there are many parts of the book where we're not quite sure if they're going to make it or not with various characters learning to see things in new ways, so that they can make…

By Helen Beal, Bill Bensing, Jason Cox, Michael Edenzon, John Willis

Why should I read it?

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

What is this book about?

In the vein of the bestselling The Phoenix Project and The Unicorn Project, Investments Unlimited radically rethinks how organizations can handle the audit, compliance, and security of their software systems-even in highly regulated industries. By introducing concepts, tools, and ideas to reimagine governance, Investments Unlimited catalyzes a more humane way to enable high-velocity software delivery that is inherently more secure.

Investments Unlimited, Inc. has accomplished what many other firms in their industry have failed to do: they have successfully navigated the transition from legacy ways of working to the digital frontier. With the help of DevOps practices, Investments Unlimited delivers…


Book cover of Producing Open Source Software

Mike McQuaid Author Of Git in Practice

From the list on becoming a great open source software engineer.

Who am I?

I’ve been a professional software engineer and maintaining open-source software for 16 years. My work on open source has been heavily informed by industry best practises and my work on proprietary software has been heavily informed by open source best practises. Without these books, I’d be a worse engineer on many dimensions. Some of them may feel antiquated but all are still full of relevant wisdom for every open-source (and proprietary) software engineer today.

Mike's book list on becoming a great open source software engineer

Discover why each book is one of Mike's favorite books.

Why did Mike love this book?

This is from an older generation of open source development, pre-GitHub, but much of the advice here is still incredibly relevant and astute today, helping provide advice on the interpersonal as well as technical sides to open source development.

Many of the underlying principles from this book are what form my grounding as an open-source maintainer for the last 15 years.

By Karl Fogel,

Why should I read it?

1 author picked Producing Open Source Software as one of their favorite books, and they share why you should read it.

What is this book about?

The corporate market is now embracing free, "open source" software like never before, as evidenced by the recent success of the technologies underlying LAMP (Linux, Apache, MySQL, and PHP). Each is the result of a publicly collaborative process among numerous developers who volunteer their time and energy to create better software. The truth is, however, that the overwhelming majority of free software projects fail. To help you beat the odds, O'Reilly has put together Producing Open Source Software, a guide that recommends tried and true steps to help free software developers work together toward a common goal. Not just for…