by Ian Alexander and Richard Stevens
Published by: Addison-Wesley, July 2002
ISBN 0-321-13163-0 (paper)
Buy it from Amazon.com
Buy it from Amazon.co.uk
Einkaufen von Amazon.de
I obviously can't review my own book, but here are both the Preface and Reviews by distinguished requirements engineers and book reviewers.
|
Suzanne Robertson, Jeremy Dick, Roland Aucoin, Roger Lever, Peter Hanschke, Michael Lutz Lawrence Pohlmann (INCOSE members only) ... and others... |
Requirements are essential
Requirements are the key to project success. We all know this, but we often forget – and pay the price. Many projects, both in industry and in the public sector, fail to do what is needed. They deliver late, over budget, and poor quality. Missing out on requirements is disastrous.
Who this book is for
Writing Better Requirements is designed as a short, convenient overview for practising systems engineers and others who find they need to write requirements. Because it is about practical techniques, it should be useful in many different kinds of system and software project. We aim to enable readers to write requirements good enough for successful systems to be specified, designed, and tested against them.
This book should also form a useful introduction for students who want to learn how to get started with requirements.
What this book does and does not cover
This book specifically focuses on how to discover and express requirements. It is not about system specification, nor how to make a design that meets user needs, nor even about how users should ensure their requirements are met.
Since users own the requirements, these must be expressed in a way users can understand. This book treats requirements as simple pieces of text, supported by operational scenarios and informal diagrams. Many attempts have been made to improve on these simple means, using more formal structures and notations with varying success. We have not tried to cover all these approaches.
To place requirements in context, the book must of course cover some aspects of the development process. Project management, verification, quality assurance, and the development life cycle are all closely linked with requirements – indeed each of these areas is meaningless in isolation. But in this book, we concentrate on the tasks of capturing and writing requirements. Each chapter contains exercises to help readers to practice their skills.
We recommend some good books for readers who want to go beyond writing good requirements to other aspects of systems and requirements engineering.
Getting the best from this book
This book is meant to be read in the order in which it is written, taking the reader through a disciplined process of identifying, gathering, organizing, and reviewing. This is vital for success.
Each chapter introduces a stage in the requirements process. Key terms are defined informally, explained, and illustrated with examples and exercises to develop the practical skills of good requirements writing.
These skills involve looking at problems, dealing with people, looking critically at what is being written, and reviewing requirements effectively. Reviewing is to some extent a separate skill and can be looked at separately; the others belong together in a more or less strict sequence.
Structure of this book
We begin by illustrating the importance of requirements. You may need this chapter to convince other people that they have a problem. Too many projects have poor requirements, and never recover. If you are already convinced, you can skip this introductory chapter.
We then show in a non-technical way how to define a problem, in close co-operation with the only people who know what the problem is, the users. The body of the book steps through the process, looking at:
Practical Exercises All the chapters in the body of the book contain practical exercises for the reader. These are designed to take about half an hour each. Some are sufficiently open-ended for more extended self-instruction, or student projects. We recommend that readers attempt each exercise, at least briefly, to get an actual feeling for the difficulties involved. At the back of the book are short answers to all the questions, with hints to the reader for more complete projects.
© Ian Alexander 2002
This book provides practical and detailed guidelines on how to write user requirements in a style that is understandable by business people and developers. The authors' approach to writing requirements addresses the "gulfs to be bridged" between: development and marketing, users and developers and staff and customers. They provide convincing examples of how even the simplest project has a complex set of stakeholders and how the requirements depend on identifying and involving these stakeholders. And the section on workshops is packed with hints on how to run a requirements workshop and get tangible input from all the stakeholders.
Scenarios are effectively used to identify, structure and link goals and requirements. Each goal is connected to a number of primary and exception scenarios and each scenario is made up of a number of atomic requirements.
The chapter on requirements writing gives advice on how to write good atomic requirements and also discusses common pitfalls like ambiguity, speculation and rambling and how to avoid them. Frequent exercises (along with sample answers) steer the reader to detailed consideration of the everyday problems of a requirements engineer.
I found the discussion of different names for requirements, constraints and goals to be a trifle confusing. But, to be fair, requirements engineering is an emerging discipline and terminology has not yet stabilised.
I recommend this book to anyone who would like a clear non-academic guide to what requirements writing is, or should be, all about and why it matters. The book is suitable for business people and developers. The authors have done what they set out to do; they have bridged the gap.
© Suzanne Robertson 2002
This is a very useful little book for anyone attempting to write technical
requirements. It at all times remains practical rather than theoretical. It
contains a small number of well chosen exercises, which makes it ideal as an
aid to teaching requirements writing, and yet sits comfortably beside the
keyboard as an ongoing reference for practitioners - especially with its
concise glossary of terms.
The book focuses on what is often the weakest area in requirements writing:
the expression and organisation of user requirements - those that come
before system requirements, and which describe more of the problem to be
solved than of the system that is to be the solution. It uses the concept of
scenarios as a means of obtaining and organising requirements. Indeed, the
book is itself structured almost as a mini scenario, in which stakeholders
are identified, interviewed; requirements documents are structured;
requirements statements are written; and all is reviewed.
Because the book is about writing requirements rather than managing them,
there are many topics it chooses not to cover in any detail. Examples are
requirements traceability and managing change in requirements. However,
there is an excellent annotated "further reading" list at the end, which has
the merit of not being too long.
The only criticism I have concerns the example requirements in the appendix.
I find it hard to identify the actual requirements from amongst the elements
of the scenarios. Examples in the book sometimes use the affirmative "shall"
to indicate a statement of requirement, sometimes just the present tense,
e.g. "The pilot controls the aircraft's angle of climb with one hand." In
the appendix, the word "shall" seems to be avoided completely, and, left
only with the present tense, it is difficult to distinguish scenario steps
from requirements. Are the statements "Call center operator tries to
disconfirm intrusion by calling householder" and "Alarm notifies failure to
call center" both requirements on the burglar alarm?
In summary, "Writing Better Requirements" should be on every requirements
engineer's desk (not shelf!) It could and should serve as a constant
reminder of some common sense principles that lead to a more effective
expression of requirements.
© Jeremy Dick 2002
The objective of this book is to provide a guide for new writers for improving written requirements. It introduces the importance of requirements, the audience of these requirements, the users of these requirements, the different names for and types of requirements, and the challenge of the actual requirement writing process.
This book delivers practical experiences and prudent, conservative guidelines for improved, documented requirements. The terms used are sufficiently generic to accommodate a wide range of reader application background. The book is also sufficiently focused and technical to provide the depth and foothold that new and inexperienced requirement documenters need.
Every project and product starts its life with the gathering and recording of requirements. The better the collection and clarity of the documented requirements, the better the product.
This is an easy book to read, well directed to the intended audience: new requirements writers. It gives several practical guidelines, and includes many real-life experiences as examples. The authors show requirements gathering happens in iterations, not all at once. They present many ways to approach and resolve issues. They use generic definitions and steps, but focus on achieving correct results. Overall the flow is very logical and has a good pace. The book is organized to reinforce the points in the exercises. It also contains many “best practices.”
The authors focus on "checklists, traceable requirements, quality (not perfection)," and checks and reviews—often missed or assumed in generating requirements but critical to project success. Section 5.5, "Exceptions," is an excellent topic to address, as it is often overlooked in requirements. I do caution on section 6.3, negotiating scope—one needs a lot of experience in metrics to resource and scope without design. In my work, I first get complete requirements, then do some design, then resource and negotiate scope to get construction approval. It is too difficult to do it in any other order.
The best description of the book is in the Foreword by Dr. Ralph Young: "Ian Alexander and Richard Stevens are interested in helping you to evolve requirements that meet the customer's needs. They have provided an approach that is based on experience and lessons learned from decades in 'the school of practical experience.'"
© Roland PJ Aucoin 2003
Back to Top
Requirements are a fundamental part of any project, however, that does not mean that this is a subject that has been so well documented that there is nothing left to learn. In fact many might suggest that writing requirements is not understood at all based on some so-called requirements documentation. That is where this book aims to help - writing better requirements.
Although it is not a large book (~150 pages) it does cover the subject in sufficient detail that you will undoubtedly learn something even if you think you know a bit about it to start with. The book itself is structured around capturing, organising, writing and reviewing requirements. Each topic is addressed in an engaging, clear and concise style and each chapter includes exercises to help reinforce the material. These questions have some suggested answers at the back of the book and this is a useful way of realising how little critical thinking is applied to even some apparently simple statements.
There is a lot of good commentary in this book and unless you have spent a great deal of time learning the ropes and improving continuously you will learn something new. This learning will be reinforced by the many examples of both the right way and the wrong way to produce requirements. For those people who are interested in this area it is a very useful book to have to hand. Before I started reading this book I thought I knew something about writing requirements - I definitely know more now.
© Roger N Lever 2003
Back to Top
Whether you are new to writing requirements or an old pro, this book is a must read. For novices, the authors provide a step-by-step methodology for writing requirements. For the pro, the layout of the requirements gathering and writing process is an excellent refresher. Do you want to achieve greater clarity when using common terms or improve the structure of your requirements document? This book has the required level of detail to help.
The first chapter covers the preliminaries and defines common terms such as user, customer, and different names used for requirements. It finishes with a description of requirements writing within the larger context of system development that is, unfortunately, buried in the text and treated too lightly. All too often, project teams do not really understand the discipline of requirements gathering and writing. This sometimes results in animosity from team members who mistakenly think their agendas conflict with that of the analysts and resent the amount of time these activities require. A separate chapter expanding upon the relationship between requirements and the rest of the development process would have helped readers understand that writing requirements is a crucial activity; it affects the entire project team as well as the quality of the product.
In subsequent chapters, the authors do a good job of describing a process for writing better requirements, providing useful techniques for each process step. The most difficult step in the requirements process is gathering proper, well-articulated requirements from stakeholders, and the techniques presented in the chapter on requirements gathering are particularly useful. Conducting interviews, holding workshops, and observing users at work are some of the techniques the authors identify and describe. In many cases users do not really know what their requirements are, so augmenting the interview or workshop with a prototype usually spurs their imagination. Regardless of the format interviewers chose for gathering requirements, the authors encourage them to keep asking the "Why?" question until the real requirement is revealed. Other useful questions are "So what?" and "Who cares?"
The exercises in these chapters are also well presented and well thought out -- every chapter has at least one exercise that assigns the reader tasks based on ideas and techniques covered in the text. For example, the exercises in Chapter 4 -- "Other Sources of Requirements" -- provide the reader with sample specifications. The task is to read the specification, extract statements from the text, and categorize these statements according to their type (User Requirements, System Specification, Design Elements, etc.). The first exercise identifies statements that need categorizing, and the second exercise is "free-form" -- the reader must pick out the statements for categorizing. Completing all of the exercises gives the user a practical way to learn and experience the process of gathering and writing requirements.
A chapter on how not to write requirements adds some humor to the book. For example, "The battery low warning lamp shall light up when the voltage drops below 3.6 volts, and the current workspace or input data shall be saved," is an example of including multiple requirements in one statement. (I don't think the two requirements are related, but you never know -- they just might be!) The example, "The fire alarm shall always be sounded when smoke is detected, unless the alarm is being tested or the engineer has suppressed the alarm," points out that "let-out" clauses, such as those that begin with "unless," can be dangerous. Actually, a fire alarm built to this requirement would be a real danger! (I am sure I have written a few laughable requirements in my lifetime, too.)
In addition to the few minor weaknesses I've cited, the authors include a single snippet of the European Space Agency's Software Development Standards but then do not reference it again. This left me frustrated. I felt they should either have provided more information and excerpts as an Appendix or simply not mentioned the standards at all.
Overall, however, I am confident that this book will help all who read it not only to improve their ability to write requirements but also to convey the importance of good requirements writing to other team members. I have found it particularly useful to give people examples of bad requirements. In our daily speech we use all sorts of constructs -- let-out clauses, wishful thinking, rambling, and so forth -- that we must avoid when writing requirements, and the examples this book provides are a great way to demonstrate the confusion they can cause.
As a product manager, I constantly write requirements documents; I know that I will use this book as a reference to gather and categorize them, and to lay them out clearly.
© Peter Hanschke 2003
Experience has shown that investment in the requirements process saves time,
money, and effort. Yet, development efforts consistently charge ahead without
making a sufficient investment in the requirements process. Project teams
are so intent on developing the technical solutions that they are unwilling to
take the time and effort to understand and meet real customer needs.
Those involved in the systems engineering process at any company may
find this book useful for learning how to draft requirements that will help
guarantee that users get the systems they need. The authors provide specific
guidelines for writing simple and clear requirements, organizing those
requirements into scenarios that help everyone get the features they want,
and reviewing the requirements to ensure that they ask for the right features
at the project’s outset.
© Michael J. Lutz 2003
From an Amazon list by jonas_s called 'Companions for your business success': "Reducing time-to-market parameters, through extracting clear goals and req. incorporated with your customer."
Writing Better Requirements has been adopted as the approved requirements reference by the Computer Systems Validation in Clinical Research (CR-CSV) Working Party in their Joint ACDM/PSI Guideline on Computer Systems Validation Clinical Research, 2nd Edition, 2004. This is an industry-specific set of advisory standards for computer systems used to support the research and development of pharmaceuticals. Since there is a safety and hence regulatory aspect to such work, it is essential that all aspects of the development environment be fit for purpose. The guideline covers Risk Management, User Requirements, and User Acceptance Testing (among other topics) for systems that collect, process and store critical evidence of drug effectiveness.
Writing Better Requirements
by Ian Alexander
Preface
It is that they can't see the problem.
G. K. Chesterton
Suzanne Robertson's Review
Jeremy Dick's Review
Sticky Minds Review by Roland PJ Aucoin
ACCU Review by Roger N Lever in C Vu
The Rational Edge Review by Peter Hanschke
IEEE Computer (March 2003) Review by Michael J. Lutz
Amazon Customer Review by J.A.D. Swan
DIY Requirements Analysis: a great primer, 25 Feb 2006
I bought this book as an introduction myself when planning a user-led approach
to web software design. I found it told me much of what I needed to know in
terms of what to do, how to do it and why it was being done. I immediately
bought copies for all my team. It is comprised of short sections and plain
language, and avoids putting pseudo-scientific rigidity on what is essentially a
structured human process. I now find it a useful book to give to 'lay' people in
our business who want to understand what a user requirements led design process
is all about.
Reviewer:
Mr. J. A. D. Swan "nlondongamer"
(london)
Amazon Customer List by Jonas_S
Adopted by Clinical Research Working Party
An RQNG List by mnotaro
(a little old-school, but some things - like writing good requirements - never
go out of style)