on 3 February 2000
This book lays the foundation for understanding the complexity of the problem, the "what". The book "Mastering the Requirements Process" gives you the "how" of a comprehensive requirements process (as Gerald Weinberg says in the forward to that book). For those in a rush, the book has very brief and useful "Helpful Hints & Variations" and "Summary" at the end of each chapter. It emphasises the importance of investigating and testing requirements at an early stage, rather than just noting down perceived requirements as if they were the gospel truth. It provides an introduction to the difficulty of capturing requirements and the fact that "the map is not the territory" i.e. don't confuse a model of reality with the real thing. Hence the importance of change control, as subsequent knowledge affects the written map of requirements. Requirements are subject to constant refinement and changes to strategy. The exploration of requirements is a journey to unravel ambiguity (an amusing example is given in the ambiguities within the nursery rhyme "Mary had a little lamb"). Examples are given of the "tools" used in the requirements elicitation process e.g. different types of questions, interviewing techniques, involving different users (including those who will lose out when the new system is operational), observing etc. All these help to reduce ambiguity and help handle conflict. All this may seem an expensive process but you are going to pay anyway. The choice is whether to have foresight and pay upfront and early (when it is cheaper) or to duck the issues and much later (many times over). On the downside, the examples (e.g. to typewriters) and book references rather date the book, but these are minor points.
on 4 April 1999
A number of simple methods for understanding and documenting requirementes are presented in this book. It is a straightforward, easy read that can immediately supplement your existing requirements analysis process. Each chapter's content lacks the filler that can commonly be found in books of technical nature. Also, each chapter concludes with a concise summary detailing all steps involved in implementing methods described in that chapter. It was very easy to read and understand the methods presented in this book and I would strongly recommend it to anyone looking for an excellent collection of tools for determining, understanding, and creating products that live up to user requirements.