Discovering Requirements

From the Introduction:
Why You Should Read This Book

This book is about what you have to do to discover requirements, whatever kind of business you are in. There are plenty of books and tools designed to help you organise and manage your requirements once you have them, but actual coverage of the critical early stages – of discovery – is far patchier. The book looks in turn at all the basic elements of requirements, and then at how to discover them. Strangely enough, it seems to be the first book to do this systematically: few popular texts say much about basic requirement elements like goals, qualities, constraints and rationale; and while there’s plentiful coverage on use cases, practical advice on stakeholder analysis and trade-offs is sparse.

Requirements communicate needs from stakeholders to developers on a development project. A development project is a time-limited undertaking with a single purpose: to create the new thing – the product or service – that is named in its mission. So, if you are involved in a development project, whether as an engineer or developer, product manager or business analyst, team leader or project manager, and need to find out what your project should be doing, this book is for you. We hope the book will be helpful to marketing people, too: after all, marketing discovers requirements, even if it isn’t usually expressed in those words.

Words like “requirement” slip into and out of fashion. Terms like “systems analyst” have fallen into disuse; new ones like “business analyst” are becoming popular. In this book we have tried to focus on the essence of each activity. For instance, we consider different ways to tell the story of what a product should do: user stories, operational scenarios, use cases. All have their merits: but the basic element is the human one of storytelling. We have tried to make this book describe the unchanging core of the work of discovering business needs, so we hope you will find it helpful whatever methodology (and terminology) you prefer.

Because this book’s focus is purely practical, we also hope it will be useful to students and lecturers who want to learn about requirements work in industry. The book is arranged in chapters which we have tested as course materials for undergraduate software engineering students. We have included short exercises which could form the basis of tutorial or project work.

Every chapter describes how to apply its techniques to project situations, with practical tips and examples. We have tried hard not to assume prior knowledge on your part, though you will certainly get more from the book if you have project experience. If you are still a student, you will probably find some of the topics obscure until you start trying to discover requirements for yourself. We hope, however, that the examples and illustrations from our own experience will give you an idea of why each technique is useful in industry. We are aware that busy practitioners have many demands on their time. We have carefully organised this book to make it quick to use.

We believe that for any task, whether you are learning from a book or doing practical work on a project, you need to balance periods of action with periods of reflection. The chapters therefore contain “grey boxes” that encourage you to reflect on the main text – to read further; to understand the background of an idea or technique; to improve your own practice.

Discovering Requirements


(c) Ian Alexander 2009