Despite the wealth of development knowledge, experience, and tools available today, a substantial percentage of software projects fail, often because requirements are not correctly determined and defined at the outset, or are not managed correctly as the project unfolds.
Managing Software Requirements focuses on this critical cause of failure and offers a practical, proven approach to building systems that meet customers' needs on time and within budget.
Using an approachable style, their own war stories and a comprehensive case study, the authors show how analysts and developers can effectively identify requirements by applying a variety of techniques, centered on the power of use cases.
The book illustrates proven techniques for determining, implementing, and validating requirements. It describes six vital Team Skills for managing requirements throughout the lifecycle of a project: Analyzing the Problem, Understanding User Needs, Defining the System, Managing Scope, Refining the System Definition, and Building the Right System.
Managing Software Requirements specifically addresses the ongoing challenge of managing change and describes a process for assuring that project scope is successfully defined and agreed upon by all stakeholders.
Review By: John Peltier 12/10/2005
"Managing Software Requirements, 2nd edition" discusses the role of requirements throughout the software development lifecycle (SDLC). It presents the concepts of software requirements from a broad perspective primarily organized for classroom presentation, and covers the material at a level appropriate for all stakeholders in the software development process. The book focuses on software requirements as they evolve through the SDLC, as opposed to the common academic assumption that they should be fixed after the design stage of the lifecycle. By approaching requirements as if they are expected to change, the material is more applicable to "real-world" development projects than if it followed the fixed-requirements assumption. The material is illustrated with an ongoing case study that illustrates the techniques presented in the context of a software development project.
A conversational style is used throughout to introduce the concepts of managing requirements. Techniques are described for requirements gathering, analysis, design, implementation, and testing. The focuses of its design, implementation and testing techniques on use cases. Though the text provides a brief introduction to use case notation and the Unified Modeling Language, some previous familiarity with UML is helpful.
"Managing Software Requirements, 2nd Edition" is presented from a broad perspective that is most appropriate for system analysts and for project managers, who are responsible for creating the original set of requirements for the system and for making decisions on the multitude of change opportunities provided to the team from every direction. The book presents examples of an array of methods that can be used to elicit and to document requirements, in an overview format designed to offer familiarity and basic procedures but not in-depth coverage. It is broken up into six main sections which cover individual skills that a software development team should master in order to "develop quality software—on time and on budget—that meets customers’ real needs" (p. 5). Of the six major sections, "Building the Right System" relates most directly to developers and to quality assurance personnel. This section discusses how the use case drives both the developers’ implementation and the quality assurance department’s testing, as well as requirements traceability and change management.
This new 2nd Edition offers two new chapters that end the book with a framework for adapting requirements techniques to the reader’s organization based on the level of detail it needs, and gives an example game plan for getting a project off the ground with step-by-step instructions.
All in all, this book provides a good framework in which to discuss the management of requirements, and can benefit development and quality assurance personnel by illustrating some of the influences on the requirements they are being asked to fulfill.
Review By: Michelle Carrier 12/10/2005
"Managing Software Requirements: A Use Case Approach" is full of information, methods, and tips, on how to conduct a project from initial vision to conception. If I had only one book for reference in conducting a project or establishing requirements rules, it would be this book. The content is clear, understandable, practical, and easily applicable to small companies and as well as large.
As QA analysts, we often come too late in the project, and during our tests, we ask ourselves, "Is it really what the user wants?" If you use the method presented in this book, the job is almost already done--the documentation (interviews, business modeling) is there to prove it. The authors give so many good tips on making requirements workshops and brainstorming productive for everyone.
According to the authors of "Managing Software Requirements: A Use Case Approach," 37 percent of project failures are caused by a lack of user input, incomplete requirements and specifications, or changes of requirements and specifications.
A large section of the book, divided into six team skills, is dedicated to the planning of a project. In this chunk of the book, the author explains how to analyze a problem, understand the users’ and stakeholders’ needs, define the system, manage the entire scope of the project, refine system definitions, and build the right system. The end of the book provides some tips on the selection of the requirements framework: Agile, eXtreme, robust, CMM, RUP, ISO. There are also useful templates for vision documents, use cases, interviews, and a complete concrete example used throughout the book, to concretize the book’s contents.