The Software Requirements Memory Jogger: A Desktop Guide to Help Software and Business Teams Develop and Manage Requirements
This book, although small in size, is large in scope; namely, to provide a comprehensive reference for requirements activities in all sizes of software development projects. This sounds a tall order but the reader is in safe hands as the author succeeds handsomely.The book assumes that the reader has some experience of requirements specification of software development: it would not be suitable for a complete novice as the information contained is not only densely packed but the sheer variety of techniques contained means that it would be inadvisable to apply them all on a single project. To be fair, the author provides some excellent guidance on which techniques are best suited to which types of project.The book is split into the following sections:  * Stage Setting;* Elicitation;* Analysis;* Specification;* Validation;* Management;* Adapting Practices to Project Types.Stage Setting gives a straightforward about aligning the project with the business's objectives and links to project governance areas such as risk management.Elicitation gives a summary of how to define the requirements - starting by ensuring that all the stakeholders are identified prior to the requirements-gathering activity; missing stakeholders are a major cause of requirements being missed. The case study is especially useful here as the list of stakeholders is very comprehensive and would be a good checklist for potential missed stakeholders in your current project.The author also describes a simple mechanism for ranking stakeholder influence/importance to give the appropriate level of involvement.The elicitation chapter contains a succinct set of interview questions and details on how to run a focus group - information seldom seen in the popular requirements literature.The chapter on Analysis is the meat of the book: this contains the techniques for creating requirements models such as use cases, context diagrams, process maps and state diagrams among others. Most importantly, the book suggests which are the most appropriate models to use, dependent on the project's circumstances; namely if you are:* modeling the business;* scoping the project;* fleshing out the user requirements;* negotiating requirements priorities.The best parts of the chapter contain information that is hard to obtain in a single volume: namely, what kind of questions to ask the business community in order to derive a data model; the structure and documentation of business rules; and the role of business policies in shaping the requirements. The last category has recently become more important because of increasing legislative and regulatory compliance requirements such as SOX and Basel II.In addition, there is a detailed section on how to engage the stakeholders in a requirements prioritization exercise.The chapter on Specification is interesting, especially for those from the Agile community who may be less familiar with the material. The author carefully distinguishes between business requirements, user requirements and software requirements, and then explains where these could be documented. She also gives a good rule of thumb for cross-referencing Use Cases with functional requirements statements. This is useful for those that prefer to start with a high-level Use Case approach but sometimes need to convert to a formal software requirements specification - something the current reviewer has had to do recently.Visit agilier.com to see the remainder of this review in full. --Marcus Price Agiler.com