1. Introduction.
Why Do Requirements Matter?
Why Do You Need Good Requirements?
What Are Requirements for?
Who Are Requirements for?
What is a User?
What is a Developer?
What is a Requirements Engineer?
What is a Stakeholder?
What is a Customer?
Different Names for Requirements.
Different Types of Specification.
User Constraints.
System Constraints Do Not Belong in User Requirements.
Constraints: Costs and Benefits.
The Challenge of Writing Better Requirements.
Cross Some Rivers.
Allocate Enough Effort and Resources for Requirements.
Prepare for Change.
The Requirements Writing Process.
Identify the Stakeholders.
Gather the Requirements.
Organize the Requirements.
Check the Requirements.
Review & Baseline the Requirements.
2. Identifying the Stakeholders.
Different Types of Stakeholder.
Example: Stakeholders in a Space Telescope Project.
Your House Extension: A Simple Case?
A Practical Approach to Identifying Stakeholders.
Identify and Follow Leads.
Exercise 1: Listing the Stakeholders.
Identify the Key Roles and Interactions Between Them.
3. Gathering Requirements from Stakeholders.
Possible Techniques.
The Power of Why.
Exercise 2: Asking Why?
Interviews.
Plan Your Interviews.
Structured or Unstructured?
Record What Is Said -- Note-Taking, Audio, and Video.
Use Open Not Leading Questions.
Use Sketches and Diagrams to Clarify Requirements.
Use Models from Earlier Interviews.
Use Documents, Hardware Parts, Photographs.
Check Your Interpretations with the Users.
Show Users How They Will Benefit.
Workshops.
Advantages of Workshops.
Costs and Benefits of Workshops.
Workshop Room Layout.
Planning a Workshop.
A Co-Operative Approach.
Starting the Workshop.
Redrafting the Requirements -- In the Workshop.
Clean Up the Requirements -- After the Workshop.
Experiencing Life as a User.
Observing Users at Work.
Acting Out What Needs to Happen.
Prototypes.
Showing Simple Mock-Ups to Improve Requirements.
Screen Mock-Ups to Capture User Interface Requirements.
Stimulating Users to Say What They Want.
Recording Rapid Feedback When Demonstrating Prototypes.
4. Other Sources of Requirements.
Possible Sources.
Problem Reports.
Helpdesk and Support Team.
Trainers and Consultants.
Customer Suggestions and Complaints.
Improvements Made by Users.
Unintended Uses.
Comparable Products.
Old Designs and Specifications.
Badly Written Contracts.
Exercise 3: Extracting Requirements from Source Documents.
Exercise 4: Extracting Requirements from a Memo.
Getting Requirements for Mass-Market Products.
The Vital Role of the Marketing Department.
Turning Market Reports into Requirements.
User Requirements in Subsystem Projects.
Subsystems Inherit Requirements, Adding Few of Their Own.
5. Structuring the Requirements.
You Need Structure as Well as Text.
Breaking the Problem Down into Steps.
Write Down the Goal.
What is a Goal?
Write Down the Basic Steps.
Think about All the Timescales Involved.
Organizing Requirements into Scenarios.
Goals, Scenarios, Requirements.
Breaking Down the Goals.
Example: To Prepare to Treat Patients in a Major Incident.
Goals are Not System Objects.
Examples of Goal Decomposition.
Example: A Customer Billing System.
Example: Repeated Goals for an Engine Control System.
Exercise 5: A Structure for User Requirements.
Handling Exceptions.
What is an Exception?
Analyzing Exceptions.
Exercise 6: Could Anything Go Wrong Here?
Finding Out Where Exceptions Can Happen.
Exercise 7: Exceptions.
Creating a Structure That Caters for Exceptions.
Examples and Exercises in Requirement Structure.
Exercise 8: Creating a Heading Structure.
Exercise 9: The Right Document for Each Subject. Exercise 10: Wrongly Placed Requirements.
6. Requirements in Context.
The User Requirements Document.
Example Structure.
'Form Follows Function': Make the Document Structure Communicate Effectively.
Requirements Do Not Have to Be Arranged as Traditional Documents.
Organizing the Constraints.
What is a Constraint?
Requirements That Are Not Capabilities.
Safety Constraints.
Performance Constraints.
Where to Put Constraints.
Exercise 11: Writing Constraints.
Defining the Scope.
Agree on Exactly What to Include.
Identify Priorities.
Work Out What Can Be Afforded.
Make a Definite Decision.
Exercise 12: Restricting the Scope.
Requirement Attributes.
Status Information Is Essential.
Checklist: Recording Source, Status, & Associated Constraints.
Keeping Track of the Requirements.
The Importance of Traceability.
Forces of Change.
Risks to Projects.
Tracking Change.
7. Requirements Writing.
Quality, Not Perfection.
Sketch, Then Improve.
Anatomy of a Good Requirement.
Guidelines for Good Requirements.
Use Simple Direct Sentences.
Use a Limited Vocabulary.
Identify the Type of User Who Wants Each Requirement.
Focus on Stating Results.
Define Verifiable Criteria.
Don't Write Like This.
Avoid Ambiguity.
Don't Make Multiple Requirements.
Don't Build in Let-Out Clauses.
Don't Ramble.
Don't Design the System.
Don't Mix Requirements and Design.
Don't Mix Requirements and Plans.
Don't Speculate.
Don't Play on Ambiguous Requirements.
Don't Use Vague Undefinable Terms.
Don't Express Possibilities.
Avoid Wishful Thinking.
Exercise 13: Good Requirements.
Exercise 14: Writing Requirements for Familiar Domestic Systems.
Exercise 15: Ambiguous Requirements.
8. Checking and Reviewing.
Checking the Document Structure with Users.
Let Users Check the Document Structure.
Getting the Most Out of Walkthroughs and Inspections.
Stepping through the Scenarios Makes Them Real.
Make Clear the System Is Not Designed Yet.
Allow Space for Users to Speak.
After the Meeting -- Reorganize and Reissue.
Checking the Requirements.
Why Checking Matters.
Check Each Requirement.
Exercise 16: Checking Individual Requirements.
Check the Requirements as a Set.
Exercise 17: Checking a Set of Requirements.
Reviewing.
The Review Process.
Guidelines for Reviewing.
Success -- The Reviewed Document.
Exercise 18: Reviewing.
Summary.
A: Answers to Exercises.
Exercise 1: Listing the Stakeholders.
Exercise 2: Asking Why?
Exercise 3: Extracting Requirements from Source Documents.
Exercise 4: Extracting Requirements from a Memo.
Exercise 5: A structure for User Requirements.
Exercise 6: Could Anything Go Wrong Here?
Exercise 7: Exceptions.
Exercise 8: Creating a Heading Structure.
Exercise 9: The Right Document for Each Subject.
Exercise 10: Wrongly Placed Requirements.
Exercise 11: Writing Constraints.
Exercise 12: Restricting the Scope.
@AHEADS = Exercise 13: Good Requirements.
Exercise 14: Writing Requirements for Familiar Domestic Systems.
Exercise 15: Ambiguous Requirements.
Exercise 16: Checking Individual Requirements.
Exercise 17: Checking a Set of Requirements.
Exercise 18: Reviewing.
B: Further Reading.
Requirements Expression.
Requirements Engineering.
Scenarios and Use Cases.
User Involvement.
Systems Engineering.
Index. 0321131630T05292002