Many projects fail because developers fail to build the right thing. Developers of any kind of application should read this book.'
'A comprehensive solution to the requirements challenges faced by every development team. Full of insight and ideas all developers can learn from.'
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. This Second Edition of the popular text 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.
Topics covered include:
The five steps in problem analysis
Business modeling and system engineering
Techniques for eliciting requirements from customers and stakeholders
Establishing and managing project scope
Applying and refining use cases
Transitioning from requirements to design and implementation
Transitioning from use cases to test cases
Agile requirements methods
Preface to Second Edition.
Preface to First Edition.
1. The Requirements Problem.
2. Introduction to Requirements Management.
3. Requirements and the Software Lifecycle.
4. The Software Team.
TEAM SKILL ONE: ANALYZING THE PROBLEM.
5. The Five Steps in Problem Analysis.
6. Business Modeling.
7. Systems Engineering of Software-Intensive Systems.
TEAM SKILL TWO: UNDERSTANDING USER AND STAKEHOLDER NEEDS.
8. The Challenge of Requirements Elicitation.
9. The Features of a Product or System.
11. Requirements Workshop.
12. Brainstorming and Idea Reduction.
TEAM SKILL THREE: DEFINING THE SYSTEM.
14. A Use Case Primer.
15. Organizing Requirements Information.
16. The Vision Document.
17. Product Management.
TEAM SKILL FOUR: MANAGING SCOPE.
18. Establishing Project Scope.
19. Managing Your Customer.
TEAM SKILL FIVE: REFINING THE SYSTEM DEFINITION.
20. Software Requirements, A More Rigorous Look.
21. Refining the Use Cases.
22. Developing the Supplementary Specification.
23. On Ambiguity and Specificity.
24. Technical Methods for Specifying Requirements.
TEAM SKILL SIX: BUILDING THE RIGHT SYSTEM.
25. From Use Case to Implementation.
26. From Use Case to Test Case.
27. Tracing Requirements.
28. Managing Change.
29. Assessing Requirements Quality in Iterative Development.
30. Agile Requirements Methods.
31. Your Prescription for Requirements Management.