The best books about 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.

I wrote...

Software Requirements

By Karl Wiegers, Joy Beatty,

Book cover of Software Requirements

What is my book about?

The award-winning Software Requirements is one of the most popular books in this domain. Coauthored with Joy Beatty, it comprehensively addresses the full spectrum of requirements development and management. It provides the broadest coverage of any requirements book.

This pragmatic book is based on my many years of personal experience with requirements as well as having consulted and taught at more than 100 companies. It provides dozens of practical techniques, templates, and work aids for requirements elicitation, analysis, specification, validation, and management. Many real-life stories illustrate how these techniques have been applied effectively. The topics covered also include business rules, data requirements, visual modeling, nonfunctional requirements, and requirements reuse. Other chapters address how to handle requirements on agile, enhancement, data analytics, embedded systems, outsourced, and packaged-solution projects.

The books I picked & why

Shepherd is readers supported. When you buy through links on our website, we may earn an affiliate commission. This is how we fund this project for readers and authors (learn more).

Mastering the Requirements Process: Getting Requirements Right

By Suzanne Robertson, James Robertson,

Book cover of Mastering the Requirements Process: Getting Requirements Right

Why this book?

Suzanne and James Robertson have been writing insightful books on software requirements for many years. This book covers all the important topics, including understanding the real problem, different techniques for exploring solutions, and numerous ways to communicate requirements effectively. I especially like their treatment of quality attribute requirements and defining “fit criteria” to judge whether a solution adequately addresses them.

The book includes a comprehensive requirements specification template to guide writing a rigorous and complete specification on projects for which that is valuable. I also appreciate their use of visual models both to communicate with the reader and to guide the reader in communicating requirements to project stakeholders. I do prefer my book Software Requirements, but this is an excellent choice as well by two authorities in the field.

Requirements by Collaboration: Workshops for Defining Needs

By Ellen Gottesdiener,

Book cover of Requirements by Collaboration: Workshops for Defining Needs

Why 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.

The Quest for Software Requirements

By Roxanne E. Miller,

Book cover of The Quest for Software Requirements

Why 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.

Use Cases: Requirements in Context

By Daryl Kulak, Eamonn Guiney,

Book cover of Use Cases: Requirements in Context

Why this book?

I recognized the value of use cases the first time I used them successfully on a project. Some years later I developed a 1-day training course on use cases. I read four of the most popular use case books then available, cover to cover, one right after the other. Use Cases: Requirements in Context did the best job of presenting a practical approach to applying the use case technique. 

Shifting the requirements focus from system features to a usage-centric viewpoint provides many benefits, and use cases are the best way I’ve found to approach that. They provide an organizational structure for grouping related information relating to how users will interact with the system to perform tasks. This book describes a solid way to apply the use case technique.

User Stories Applied: For Agile Software Development

By Mike Cohn,

Book cover of User Stories Applied: For Agile Software Development

Why 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.

5 book lists we think you will like!

Interested in software, project management, and agile software development?

5,215 authors have recommended their favorite books and what they love about them. Browse their picks for the best books about software, project management, and agile software development.

Software Explore 19 books about software
Project Management Explore 5 books about project management
Agile Software Development Explore 6 books about agile software development

And, 3 books we think you will enjoy!

We think you will like 201 Principles of Software Development, Clean Code: A Handbook of Agile Software Craftsmanship, and User Story Mapping if you like this list.