PART I BACKGROUND 1
CHAPTER 1 NTRODUCTION 3
The State of the Industry Today 3
The Need to Use Effective Requirements Practices 6
WhatIsa Process? 7
The Requirements Process 7
1-1 Process Integrates People,Tools,Procedures,and Methods 8
What Is the Requirements Process? 9
Benefits of a Process Approach 11
ContentsList of Figures 11
Pitfalls of Using a Process Approach 12
1-2 Benchmark Data on Improvements for CMM Level 3 Organizations 12
About This Book 14
Roles 14
KeyTerms 14
Foreword 15
A Requirements Taxonomy 16
1-3 Requirements Taxonomy 16
Preface 17
Systems and Software Engineers 17
Intended Audience 17
Recommended Mind-setfor Readers ofThis Book 18
The"Team,"the"Project,"and the"Project Manager" 18
Key References and Suggested Readings 19
Footnotes in This Book 19
Upcoming Topics 19
Key References and Suggested Readings 20
Summary 20
Acknowledgments 23
PART 11 RECOMMENDED REQUIREMENTS PRACTICES 25
CHAPTER 2 COMMIT TO THE APPROACH 27
What Do We Mean by Commitment? 28
2-1 Customer and Supplier Issues 29
How Can Commitment Be Attained and Maintained? 30
2-2 The Partnering Concept 31
2-3 Issue Resolution Ladder 34
2-4 Action Planning Worksheet 35
2-5 Sample Project Charter 36
Recommendations to Assist in Evolving the Partnering Approach 37
2-6 Benefits of Partnering 37
Involve Managers with Authority in the Partnering Workshop 38
Develop a Requirements Plan 38
2-7 Sample Table of Contents for a Requirements Plan 39
Utilize a Set of Mechanisms, Methods, Techniques, and Tools 40
Work Toward a Quality Culture 40
2-9 PRC Rules of Conduct 41
2-8 Advantages of Utilizing a Set of Mechanisms,Methods,Techniques,and Tools 41
Summary 42
Key References and Suggested Readings 42
CHAPTER 3 ESTABLISH AND UTILIZE A JOINT TEAM RESPONSIBLE FOR THE REQUIREMENTS 45
What Is a"Joint Team”? 46
What Does the Joint Team Do? 47
Who Should Be on the Joint Team? 48
How Is the Joint Team Created? 48
What Metrics Need to Be Created and Tracked? 49
How Often Should the Joint Team Meet? 49
Customer and Supplier Roles 50
Calculating Return on Investment (ROI) from Using Effective Requirements Practices 50
3-1 Calculating ROI from Effective Requirements Practices 51
Summary 53
3-2 Customer(Buyer)and Supplier Roles Throughout the System LifeCycle 53
Key References and Suggested Readings 54
CHAPTER 4 DEFINE THE REAL CUSTOMER NEEDS 57
Recommendations to Facilitate Getting to the Real Requirements 59
Invest More in the Requirements Process 60
4-1 Effect of Requirements Process Investment on Program Costs 62
Train PMs to Pay More Attention to the Requirements Process 62
Identifya Project Champion 63
DefinetheProjectVisionandScope 64
4-2 The Role of the Champion 64
Identify a Requirements Engineer and Utilize Domain Experts to Perform Requirements Engineering Tasks 65
4-3 Suggested Table of Contents for an OCD 66
4-4 Template for a Vision and Scope Document 73
Train Developers Not to Make Requirements Decisions andNotto GoldPlate 74
Utilizea VarietyofTechniques to Elicit Customerand UserRequirementsand Expectations 74
Use Cases 75
4-5 Example of a Use Case Diagram 76
TrainRequirementsEngineerstoWriteGoodRequirements 79
TheImpactofRequirementsErrors 79
TheImportanceofRequirementstoP rogram Costs 80
4-6 Types of Nonclerical Requirements Errors 80
4-7 RelativeCosttoFixanError 81
4-8 Relative Cost to Fix Requirements Defects When Discovered in Later Stages 81
4-9 Criteria of a Good Requirement 82
WhatIs a GoodRequirement? 82
Document the Rationalefor Each Requirement 84
Utilize Methods and Automated Tools to Analyze,Prioritize,and Track Requirements 85
4-10 CommerciaJ Requirements Tools,Vendors,and Web Sites 86
Approaches,Tools,andMethodsforPrioritizingRequirements 87
4-11 Sample Requirements Attribute Matrix 87
Collect Requirements from Multiple Viewpoints 89
4-12 The PREview Process 89
Pitfalls 90
Considerthe Useof Formal Methods When Appropriate 90
Summary 91
Key References and Suggested Readings 92
CHAPTER 5 USE AND CONTINUALLY IMPROVE A REQUIREMENTS PROCESS 97
What Is a Process? 98
How Is a Process Designed? 99
5-1 Process Flowchart Template 100
5-2 Process Description Template 101
Why Is a Requirements Process Needed? 103
5-3 The Rationale for Requirements Engineering 104
5-4 Industry Experience 105
5-5 Lessons Learned for Systems Success from Industry Experience 106
Goals of Requirements Engineers 107
5-6 Goals of Good Requirements Engineers 108
5-7 Before You Write Requirements 108
5-8 The Up-front Process 109
5-9 What Drives Requirements? 109
A Sample Requirements Process 110
5-10 SE-CMM PAs 111
5-11 Requirements Process Macro(high level) 112
5-12 Requirements Process Micro:Assess New/Changed Requirements and Control Changes 114
5-13 Requirements Process Micro:Understand Customer Needs and Expectations 115
5-14 Requirements Process Micro:Define and Allocate Requirements 116
5-15 Template for a Project Requirements Policy 119
How Can Organizations Create or Tailor a Requirements Process? 122
5-16 The Value of an Organizational Working Group 123
Tailoring of Processes 123
Web Support:An Organizational Process Asset Library 124
5-17 Sample Requirements Jump-start Kit 125
Summary 125
Key References and Suggested Readings 125
CHAPTER 6 ITERATE THE SYSTEM REQUIREMENTS AND ARCHITECTURE REPEATEDLY 131
The System Engineering Process 132
6-1 The System Engineering Process 133
Recommendations 134
Considerthe"Designability"of the System When Addressing the Requirements 134
Utilize a System Architecture Process 136
Allocate Requirements to Functional Partitions,Objects,People,or Support Elements to Support Synthesis ofSolutions 136
6-2 SA Process Flow 137
Consider Open Systems Standards 146
6-3 Iterative System Decomposition 146
6-4 Architecture Development Process Overview 147
6-5 TRM High-Level View 148
6-6 Distributed Computing Architecture Diagram 149
6-7 Detailed TRM 150
Guidelines for"Architecting" 151
6-8 Architecture Development Cycle 151
Another View 153
Key References and Suggested Readings 154
Summary 154
CHAPTER 7 USE A MECHANISM TO MAINTAIN PROJECT COMMUNICATION 159
Natural Human Tendency 160
Setting the Stage 160
A Proactive Approach to Achieve Effective Communication 161
An Example Mechanism 162
7-1 The Requirements Macroprocess 163
When Negativism Shows Up 164
Another Valuable Mechanism—Brown Bags 165
Guidelines for Effective Meetings 165
Guidelines for Effective E-mail Communication 167
7-2 Guidelines for Use of Graphics in E-mail Messages 170
The Value of a Common Vocabulary 172
The Use ofVertical Experts 173
A Final Recommendation 174
Summary 174
Avoid Multiple Locations 174
Key References and Suggested Readings 175
CHAPTER 8 SMELECT FAMLIAR METHODS AND MAINTAIN A SET OF WORK PRODUCTS 179
The Foundation for System Development 180
What Are the Candidate Methods and Techniques? 180
Which Methods and Techniques Are Best? 182
8-2 Relative Capability of Methods to Remove Various Types of Defects 184
8-1 Quality Method Effectiveness and Costs 184
8-3 Positive and Negative Factors That Influence Software Development Productivity 187
Use of Function Points for Software Estimation 189
Quality Function Deployment 190
What Comprises the Requirements Specification? 192
The Rationale for Prioritizing Requirements 193
8-4 Requirements Prioritization Checklist 195
Summary 195
Key References and Suggested Readings 196
CHAPTER 9 PERFORM REQUIREMENTS VERIFICATION AND VALIDATION 201
V V Terminology 202
V V Planning 203
The Importance of V V 203
9-1 Verification and Validation 203
9-2 Certain Words Flag Unverifiable Requirements 204
9-3 Examples of Unverifiable and Verifiable Requirements 205
9-4 Verification Planning Checklist 207
Verification Methods 207
9-5 Definition and Guidelines for Requirements Traceability 208
Using Traceability to Support Verification 208
V V Techniques 208
A Structured Approach to Testing 210
Pitfalls 211
Recommendations 211
Summary 213
Key References and Suggested Readings 214
CHAPTER 10 PROVIDE AN EFFECTIVE MECHANISM TO ACCOMMODATE REQUIREMENTS CHANGES 217
Why Such Emphasis? 218
Planning for Changes in Requirements 219
10-1 TCM Process Context Diagram 220
Requirements Leakage 221
The Recommended Mechanism 221
10-2 The Requirements Process Macro 222
10-3 Sources of Unofficial Requirements and Ways to Gain Control of Unofficial Requirements 223
Focus on What Counts! 224
How Much Can Requirements Change? 224
A Way to Deal with Requirements Creep Contractually 225
10-4 Other Recommendations to Control Requirements Changes 227
Other Recommendations 227
Summary 229
Key References and Suggested Readings 229
CHAPTER 11 PERFORM THE DEVELOPMENT EFFORT USING KNOWN,FAMILIAR PROVEN INDUSTRY,ORGANIZATIONAL,AND PROJECT BEST PRACTICES 231
What's All the Fuss? 233
What Can We Do About It? 234
Provide to the Development Team an Understanding of the Relevant Policies,Processes,and Procedures to Be Used 235
Recommendations 235
Utilize a Practical,Effective project Management Approach 235
11-1 Checklist for Project Start-up 236
11-2 The Ten Steps of Structured Project Management 238
11-3 The Myths of Software Project Management 239
11-4 Modern Process Approaches for Solving Conventional Problems 242
11-5 Evolution of Project Artifacts 243
Ensure That Selected Members of the Development Team Have Domain Knowledge 244
perform the Development Effort Using Known(Trained),Proven Processes,Mechanisms,Methods,Techniques,and Tools 244
11-6 Technologies Used on Successful and Unsuccessful Projects 246
Provide and Utilize Mechanisms to Foster Effective Communications Throughout the Development Team 247
Utilize Peer Reviews and Inspections to Remove Defects om Processes and Work Products 248
Ensure That Configuration ManagementIs Effective 250
Foster an Independent QA Role That Proactively Assists and Supports the Development Team and Provides Value to the Project 251
Ensure That Subcontractors Are Managed So That Their Contributions Are Effective 252
11-7 Subcontractor Management Key Practices 253
Use Appropriate,Useful Metrics to Manage the Project 255
11-8 Overview of the Seven Core Metrics 257
11-9 The Basic Parameters of an EV System 258
Ensure That a Systematic Approach to Involving the Customer in This Entire Effort Is Working 258
11-10 An Innovative Use of EV to Track Progress 259
Manage Processes Quantitatively.Also,Use a Defect Prevention (DP) Process,a Technology Change Management(TCM)Process,and a Process Change Management(PCM)Process.Perform Extensive Reinsertion and Reuse Throughout the Organization 261
Musings on Project Management 262
11-11 Musings on Project Management 263
Summary 265
Key References and Suggested Readings 266
PART Ⅲ WHAT TO DO NEXT 271
Common Issues 273
CHAPTER 12 HOW TO PROCEED 273
RequirementsasaKeyDrivertoAnySystems orSoftwareEffort 275
The Customer 275
Key Factors in Addressing These Issues 275
Financing Improvements in the Requirements Process 275
Metrics 276
Management Awareness and Expectations 276
Survival of the Fittest 276
Where to Start 277
TheDevelopment Team 277
12-1 Requirements Activities Checklist 279
How to Prioritize Needed Efforts 284
12-2 Guidelines for System Development Based on Requirements Considerations 286
12-3 How a Requirements Process Facilitates Effective Project Performance 288
Relationship of the Recommended Effective Requirements Practices to the CMM 289
12-4 Mapping of the Effective Requirements Practices to the SW-CMM 290
12-5 Bad Excuses Related to Requirements Definition and Management 291
ButI HaveSoManyThingstoDo... 291
What If We Are"Further Along"on Our Project? 293
Summary 293
Key References and Suggested Readings 294
Epilogue 299
List of Acronym s 301
Glossary 309
Credits 321
Bibliography 325
Author Index 345
Subject Index 349
List of Figures 349