- Broschiertes Buch
- Merkliste
- Auf die Merkliste
- Bewerten Bewerten
- Teilen
- Produkt teilen
- Produkterinnerung
- Produkterinnerung
Discovering Requirements uses a set of simple, robust, and effective cognitive tools for building requirements. This book shows with worked examples how to build up an understanding of any problem. Other features include stakeholder analysis, goal modeling, context modeling, storytelling and scenario modeling, identifying risks and threats, describing rationales, defining terms in a project dictionary, and prioritizing using a complementary set of techniques. Chapters stand alone, with cross-references to topics in other chapters. Each includes tips providing brief and relevant guidance on…mehr
Andere Kunden interessierten sich auch für
- Joseph PhillipsSoftware Project Management for Dummies31,99 €
- Eldad EilamReversing31,99 €
- Richard JonesGarbage Collection82,99 €
- Cem KanerLessons Learned in Software Testing44,99 €
- Cem KanerTesting Computer Software89,99 €
- Gerald KotonyaRequirements Engineering102,99 €
- Markus VölterModel-Driven Software Development86,99 €
-
-
-
Discovering Requirements uses a set of simple, robust, and effective cognitive tools for building requirements. This book shows with worked examples how to build up an understanding of any problem. Other features include stakeholder analysis, goal modeling, context modeling, storytelling and scenario modeling, identifying risks and threats, describing rationales, defining terms in a project dictionary, and prioritizing using a complementary set of techniques. Chapters stand alone, with cross-references to topics in other chapters. Each includes tips providing brief and relevant guidance on putting techniques into practice.
"This book is not only of practical value. It's also a lot of fun to read." Michael Jackson, The Open University.
Do you need to know how to create good requirements?
Discovering Requirements offers a set of simple, robust, and effective cognitive tools for building requirements. Using worked examples throughout the text, it shows you how to develop an understanding of any problem, leading to questions such as:
What are you trying to achieve?
Who is involved, and how?
What do those people want? Do they agree?
How do you envisage this working?
What could go wrong?
Why are you making these decisions? What are you assuming?
The established author team of Ian Alexander and Ljerka Beus-Dukic answer these and related questions, using a set of complementary techniques, including stakeholder analysis, goal modelling, context modelling, storytelling and scenario modelling, identifying risks and threats, describing rationales, defining terms in a project dictionary, and prioritizing.
This easy to read guide is full of carefully-checked tips and tricks. Illustrated with worked examples, checklists, summaries, keywords and exercises, this book will encourage you to move closer to the real problems you're trying to solve. Guest boxes from other experts give you additional hints for your projects.
Invaluable for anyone specifying requirements including IT practitioners, engineers, developers, business analysts, test engineers, configuration managers, quality engineers and project managers.
A practical sourcebook for lecturers as well as students studying software engineering who want to learn about requirements work in industry.
Once you've read this book you will be ready to create good requirements!
Hinweis: Dieser Artikel kann nur an eine deutsche Lieferadresse ausgeliefert werden.
"This book is not only of practical value. It's also a lot of fun to read." Michael Jackson, The Open University.
Do you need to know how to create good requirements?
Discovering Requirements offers a set of simple, robust, and effective cognitive tools for building requirements. Using worked examples throughout the text, it shows you how to develop an understanding of any problem, leading to questions such as:
What are you trying to achieve?
Who is involved, and how?
What do those people want? Do they agree?
How do you envisage this working?
What could go wrong?
Why are you making these decisions? What are you assuming?
The established author team of Ian Alexander and Ljerka Beus-Dukic answer these and related questions, using a set of complementary techniques, including stakeholder analysis, goal modelling, context modelling, storytelling and scenario modelling, identifying risks and threats, describing rationales, defining terms in a project dictionary, and prioritizing.
This easy to read guide is full of carefully-checked tips and tricks. Illustrated with worked examples, checklists, summaries, keywords and exercises, this book will encourage you to move closer to the real problems you're trying to solve. Guest boxes from other experts give you additional hints for your projects.
Invaluable for anyone specifying requirements including IT practitioners, engineers, developers, business analysts, test engineers, configuration managers, quality engineers and project managers.
A practical sourcebook for lecturers as well as students studying software engineering who want to learn about requirements work in industry.
Once you've read this book you will be ready to create good requirements!
Hinweis: Dieser Artikel kann nur an eine deutsche Lieferadresse ausgeliefert werden.
Produktdetails
- Produktdetails
- Verlag: Wiley & Sons
- 1. Auflage
- Seitenzahl: 480
- Erscheinungstermin: 27. Februar 2009
- Englisch
- Abmessung: 235mm x 184mm x 29mm
- Gewicht: 874g
- ISBN-13: 9780470712405
- ISBN-10: 0470712406
- Artikelnr.: 25619951
- Verlag: Wiley & Sons
- 1. Auflage
- Seitenzahl: 480
- Erscheinungstermin: 27. Februar 2009
- Englisch
- Abmessung: 235mm x 184mm x 29mm
- Gewicht: 874g
- ISBN-13: 9780470712405
- ISBN-10: 0470712406
- Artikelnr.: 25619951
Ian Alexander consults and trains on requirements. He has co-authored 3 books including Writing Better Requirements (2002, Wiley), HTML 4 (1997, Addison-Wesley) and Scenarios, Stories, Use Cases (2004, Wiley), and has published many technical papers and popular articles, including regular contributions to the IEEE Software. He runs various requirements training courses for IET, JBA, DERA, QSS and UNICOM amongst others. Ljerka Beus-Dukic is a lecturer in software engineering and has taught Requirements Engineering for a number of years. Prior to joining academia, she worked in industry as a software engineer developing software for real-time applications. Ljerka is the author of many technical papers and was a contributor for the book (Powell D. (Ed.), A Generic Fault-Tolerant Architecture for Real-Time Dependable Systems, Kluwer Academic Publishers, 2001). She is on the programme committee for a number of conferences including ICCBSS and Euromicro and also worked on the EU funded GUARDS project. She has co-authored around 30 publications.
Acknowledgements xv
Foreword xvii
Part I: Discovering Requirement Elements 1
1 Introduction 3
1.1 Summary 4
1.2 Why You Should Read This Book 4
1.3 Simple but Not Easy 6
1.4 Discovered, Not Found 7
1.4.1 Many Different Situations 9
1.5 A Softer Process, at First 12
1.6 More than a List of 'The System Shalls' 16
1.6.1 A Network of Requirement Elements 16
1.6.2 Discovery as Search 18
1.7 A Minimum of Process: The Discovery Cycle 18
1.8 The Structure of this Book 20
1.8.1 Part I: Discovering Requirement Elements 21
1.8.2 Part II: Contexts for Discovery 22
1.9 Further Reading 22
1.9.1 Books on 'Softer' Approaches 22
1.9.2 Books on the Philosophical Background 23
1.9.3 Books on 'Harder' Approaches 24
2 Stakeholders 27
2.1 Summary 28
2.2 Discovering Stakeholders 28
2.2.1 Operational Stakeholders within 'The System' 30
2.2.2 Stakeholders in the Containing System and Wider Environment 30
2.3 Identifying Stakeholders 37
2.3.1 From your Sponsor or Client 37
2.3.2 With a Template such as the Onion Model 37
2.3.3 By Comparison with Similar Projects 40
2.3.4 By Analysing Context 40
2.4 Managing Your Stakeholders 41
2.4.1 Engaging with Stakeholders 41
2.4.2 Keeping Track of Stakeholders 42
2.4.3 Analysing Influences 42
2.4.4 Prioritising Stakeholders 43
2.4.5 Involving Stakeholders 45
2.4.6 The Integrated Project Team 45
2.5 Validating Your List of Stakeholders 45
2.5.1 Things To Check the Stakeholder Analysis Against 46
2.6 The Bare Minimum of Stakeholder Analysis 46
2.7 Next Steps: Requirements from Stakeholders 46
2.8 Exercise 49
2.9 Further Reading 49
3 Goals 51
3.1 Summary 52
3.2 Discovering Goals 52
3.2.1 Worked Example: Goals for a Spacecraft 54
3.2.2 Worked Example: Goals for a Restaurant 57
3.2.3 Worked Example: Tram Goals and Trade-offs 59
3.2.4 Finding Solutions to Goal Conflicts 62
3.2.5 Contexts for Discovering Goals 63
3.2.6 The Negative Side 65
3.3 Documenting Goals 68
3.3.1 Drawing Goal Diagrams 69
3.3.2 Other Ways of Documenting Goals 69
3.4 Validating Goals 71
3.4.1 Things To Check Goals Against 73
3.5 The Bare Minimum of Goals 73
3.6 Next Steps 73
3.7 Exercises 73
3.8 Further Reading 74
3.8.1 Goals 74
3.8.2 The Negative Side 74
3.8.3 The i¿ Goal Modelling Notation 74
4 Context, Interfaces, Scope 75
4.1 Summary 76
4.2 Introduction 76
4.3 A 'Soft Systems' Approach for Ill-Defined Boundaries 77
4.3.1 You are Part of the Soft System you are Observing 78
4.3.2 From Stakeholders to Boundaries 79
4.3.3 Identifying Interfaces 83
4.3.4 Documenting Interfaces 84
4.3.5 Validating your Choice of Boundary 86
4.4 Switching to a 'Hard Systems' Approach for Known Events 87
4.4.1 The Traditional Context Diagram 87
4.4.2 Scope as a List of Events 87
4.4.3 Expressing Event-handling Functions 89
4.4.4 Strengths and Weaknesses of Context Diagrams 92
4.4.5 Validating Interfaces and Events 93
4.4.6 Things To Check Context and Interfaces Against 95
4.5 The Bare Minimum of Context 95
4.6 Next Steps 95
4.7 Exercise 95
4.8 Further Reading 96
4.8.1 Soft Approaches 96
4.8.2 Event-Driven Approaches 96
4.8.3 Writing Requirements 96
5 Scenarios 97
5.1 Summary 98
5.2 Discovering Scenarios 98
5.2.1 Interviews, storytelling 99
5.2.2 Scenario Workshops 101
5.2.3 Discovering Negative Scenarios 107
5.3 Documenting Scenarios 114
5.3.1 Index Cards, User Stories 115
5.3.2 Storyboards 116
5.3.3 Operational Scenarios 118
5.3.4 Use Cases 119
5.4 Summary 124
5.5 Validating Scenarios 124
5.5.1 Scenario Walkthroughs 124
5.5.2 Animation, Simulation, Prototyping 126
5.5.3 Things To Check Scenarios Against 127
5.6 The Bare Minimum of Scenarios 127
5.7 Next Steps 127
5.8 Exercises 128
5.9 Further Reading 128
5.9.1 Storytelling 128
5.9.2 Alternative Scenario Approaches 128
5.9.3 Running Scenario Workshops 129
5.9.4 The Principle of Commensurate Care 129
6 Qualities and Constraints 131
6.1 Summary 132
6.2 What are Qualities and Constraints? 132
6.2.1 A Rich Mixture 132
6.2.2 Qualities that Govern Choices 132
6.2.3 Constraints that Matter to People 133
6.3 Discovering Qualities and Constraints 133
6.3.1 Using Goals to Discover Qualities and Constraints 134
6.3.2 Stakeholder Analysis to Discover Qualities and Constraints 136
6.3.3 Using a Checklist to Discover Qualities and Constraints 136
6.4 Documenting Qualities and Constraints 141
6.4.1 Constraints 142
6.4.2 Development (Process) Qualities 146
6.4.3 Usage (Product) Qualities 147
6.5 Validating Qualities and Constraints 157
6.5.1 Things To Check Qualities and Constraints Against 158
6.6 The Bare Minimum of Qualities and Constraints 159
6.7 Next Steps 159
6.8 Exercises 159
6.9 Further Reading 160
7 Rationale and Assumptions 161
7.1 Summary 162
7.2 The Value of Rationale 162
7.3 Discovering Rationale and Assumptions 163
7.3.1 Asking Why 164
7.3.2 Looking for the word 'will' in vision statements, plans, etc 165
7.3.3 Rationalising a Set of Requirements 166
7.3.4 Inverting Risks 168
7.4 Documenting Rationale 169
7.4.1 Justification Text Field 171
7.4.2 Lists of Assumptions, Risks, Issues and Decisions 172
7.4.3 Traceability to Goals, Assumptions, etc 173
7.4.4 Rationale Models 178
7.4.5 The Goal Structuring Notation (GSN) 182
7.5 Validating Rationale and Assumptions 183
7.5.1 Rationale Walkthrough 184
7.5.2 Analysis of Traceability 184
7.5.3 Things To Check Rationale and Assumptions Against 186
7.6 The Bare Minimum of Rationale and Assumptions 187
7.7 Next Steps 187
7.8 Exercise 187
7.9 Further Reading 187
7.9.1 Discovering Assumptions 187
7.9.2 Reasoning 188
7.9.3 Modelling Rationale 188
7.9.4 Tracing to Goals 188
7.9.5 Goal Structuring Notation (GSN) 188
7.9.6 Satisfaction Arguments 188
8 Definitions 189
8.1 Summary 190
8.2 Discovering Definitions 190
8.2.1 Synonyms 191
8.2.2 Homonyms 193
8.3 Constructing the Project Dictionary 194
8.3.1 Acronyms 195
8.3.2 Definitions and Designations 195
8.3.3 Roles (Operational Stakeholders) 199
8.3.4 Data Definitions 201
8.3.5 Constraints as Data 202
8.4 Validating the Project Dictionary 204
8.4.1 Validating Data Models 205
8.4.2 Things To Check Definitions Against 206
8.5 The Bare Minimum of Definitions 206
8.6 Next Steps 206
8.7 Exercise 206
8.8 Further Reading 206
8.8.1 Definitions and Designations 206
8.8.2 Data Modelling 207
9 Measurements 209
9.1 Summary 210
9.2 Discovering and Documenting Acceptance Criteria 211
9.2.1 Acceptance Criteria for Behavioural Requirements 212
9.2.2 Acceptance Criteria for Qualities 216
9.2.3 Acceptance Criteria for Constraints 218
9.2.4 Verification Method 219
9.3 Validating Acceptance Criteria 222
9.3.1 Testing from Day One 222
9.4 Measuring Quality of Service (QoS) 223
9.4.1 Example Service: Office Carpeting 224
9.4.2 Two Opposite Approaches 225
9.4.3 A Spectrum of Service Approaches 226
9.4.4 Worked Example: QoS Measures for Food Preparation Services 228
9.5 Validating QoS Measures 230
9.5.1 Qualities of a Good QoS Measure 230
9.5.2 Will your QoS Measures Work? 231
9.5.3 Common QoS Measures 232
9.5.4 Validating QoS with Negative Scenarios 232
9.5.5 Things To Check Measurements Against 233
9.6 The Bare Minimum of Measurement 233
9.7 Next Steps 233
9.8 Exercise 233
9.9 Further Reading 233
10 Priorities 235
10.1 Summary 236
10.2 Two Kinds of Priority 236
10.3 Input Priority 237
10.3.1 Discovering Input Priority 237
10.3.2 Documenting Input Priority 241
10.3.3 Validating Input Priority 242
10.4 Output Priority 243
10.4.1 Discovering Output Priority 243
10.4.2 Documenting Output Priority 251
10.4.3 Validating Output Priority 253
10.5 Things To Check Priority Against 254
10.6 The Bare Minimum of Priorities 255
10.7 Next Steps 255
10.8 Exercise 255
10.9 Further Reading 255
10.9.1 Triage 255
10.9.2 Input Priority 256
10.9.3 Boston Matrix 256
10.9.4 Review Process 256
10.9.5 Life Cycles 256
Part II: Discovery Contexts 257
11 Requirements from Individuals 259
11.1 Summary 260
11.2 Introduction 260
11.3 Interviews 261
11.3.1 Planning an Interview Campaign 261
11.3.2 Planning Each Interview 267
11.3.3 Documenting Interviews 268
11.3.4 Validating Interview Findings 273
11.4 Observation and 'Apprenticeship' 274
11.4.1 Making Observations 274
11.4.2 Being 'Talked Through' Operations 276
11.4.3 Documenting Observations 277
11.4.4 Validating Observations 280
11.5 The Bare Minimum from Individuals 280
11.6 Exercises 280
11.7 Further Reading 281
11.7.1 Interviewing 281
11.7.2 Using Video 281
11.7.3 Observation 282
11.7.4 Tacit Knowledge 282
11.7.5 Standard Types of Systems Analysis 282
11.7.6 Informal Modelling Techniques 282
11.7.7 Philosophy 282
12 Requirements from Groups 283
12.1 Summary 284
12.2 The Goal of Group Work 284
12.2.1 Unique Capabilities 284
12.2.2 Obstacles 285
12.2.3 Mediating Group Work (on one site or many) 285
12.3 Workshops 286
12.3.1 Define Workshop Mission 286
12.3.2 Workshop Planning 287
12.3.3 Workshop Rehearsal 289
12.3.4 Workshop Setup 290
12.3.5 Workshop Recording 299
12.3.6 Validating Workshop Findings 302
12.4 Group Media 305
12.4.1 Project Wall 305
12.4.2 Project Website 306
12.4.3 Project Wiki 307
12.4.4 Modelling Tool 308
12.4.5 Requirements Management Tool 309
12.4.6 Groupware and Working at a Distance 310
12.4.7 The Role of Group Media 312
12.5 The Bare Minimum from Groups 314
12.6 Next Steps 314
12.7 Exercise 314
12.8 Further Reading 315
12.8.1 Workshops 315
12.8.2 Working in Groups 315
13 Requirements from Things 317
13.1 Summary 318
13.2 Requirements Prototyping 318
13.2.1 Purpose 319
13.2.2 Techniques 319
13.3 Reverse Engineering 330
13.3.1 From an Existing Product 330
13.4 Requirements Reuse 337
13.4.1 Type 1: Naïve Reuse 337
13.4.2 Type 2: Standardisation 338
13.4.3 Type 3: Product Lines 338
13.4.4 Tool Support for Reuse 338
13.5 Validating Requirements from Things 340
13.6 The Bare Minimum from Things 340
13.7 Exercises 340
13.8 Further Reading 340
13.8.1 Prototyping 340
14 Trade-offs 343
14.1 Summary 344
14.2 Optioneering: The Engineering of Trade-offs 344
14.2.1 The Requirements-First Life-Cycle Myth 344
14.2.2 An Optioneering Life Cycle 345
14.2.3 The Optioneering Process 350
14.2.4 Selecting the Winning Option 352
14.2.5 Optioneering with PCA: A Worked Example 360
14.3 Validating your Trade-offs 367
14.4 The Bare Minimum of Trade-offs 367
14.5 Next Steps 367
14.6 Exercises 368
14.7 Further Reading 369
14.7.1 Trade-offs 369
14.7.2 Statistics 370
14.7.3 PCA 370
14.7.4 Weighting Approaches 370
14.7.5 Analytic Hierarchy Process (AHP) 370
14.7.6 Quality Function Deployment (QFD) 370
14.7.7 Questions, Options, Criteria (QOC) 371
15 Putting it all Together 373
15.1 Summary 374
15.2 After Discovery 374
15.2.1 Everything Depends on the Requirements 374
15.2.2 Principles for the Requirements Chef 375
15.3 The Right Process for your Project 376
15.3.1 Case Study: A Retail IT Project 377
15.3.2 Case Study: Transport Planning 379
15.3.3 Requirements-Driven Project Management 381
15.4 Organising the Requirements Specification 385
15.4.1 Template 385
15.4.2 Levels 385
15.4.3 Can Use Cases Do Everything? 386
15.4.4 Organising Product Functions 386
15.4.5 Traditional 'Shalls' 387
15.4.6 Relating Requirements of Different Types 388
15.4.7 Conflicting Needs for Requirement Organisation 390
15.4.8 The Benefit of Requirements (Traceability) Tools 390
15.4.9 An Alternative View: Competing Approaches 391
15.5 The Bare Minimum of Putting it all Together 394
15.6 Further Reading 394
15.6.1 Choosing and Tailoring Development Life Cycles 394
15.6.2 Managing Projects From Requirements 395
15.6.3 Classics for Inspiration and Reflection 395
15.6.4 A Look Ahead 396
Appendix A: Exercise Answers and Hints 397
Appendix B: Getting the Level Right 405
Appendix C: Tools for Requirements Discovery 411
Appendix D: Template 423
Bibliography 429
Glossary 433
Index 445
Foreword xvii
Part I: Discovering Requirement Elements 1
1 Introduction 3
1.1 Summary 4
1.2 Why You Should Read This Book 4
1.3 Simple but Not Easy 6
1.4 Discovered, Not Found 7
1.4.1 Many Different Situations 9
1.5 A Softer Process, at First 12
1.6 More than a List of 'The System Shalls' 16
1.6.1 A Network of Requirement Elements 16
1.6.2 Discovery as Search 18
1.7 A Minimum of Process: The Discovery Cycle 18
1.8 The Structure of this Book 20
1.8.1 Part I: Discovering Requirement Elements 21
1.8.2 Part II: Contexts for Discovery 22
1.9 Further Reading 22
1.9.1 Books on 'Softer' Approaches 22
1.9.2 Books on the Philosophical Background 23
1.9.3 Books on 'Harder' Approaches 24
2 Stakeholders 27
2.1 Summary 28
2.2 Discovering Stakeholders 28
2.2.1 Operational Stakeholders within 'The System' 30
2.2.2 Stakeholders in the Containing System and Wider Environment 30
2.3 Identifying Stakeholders 37
2.3.1 From your Sponsor or Client 37
2.3.2 With a Template such as the Onion Model 37
2.3.3 By Comparison with Similar Projects 40
2.3.4 By Analysing Context 40
2.4 Managing Your Stakeholders 41
2.4.1 Engaging with Stakeholders 41
2.4.2 Keeping Track of Stakeholders 42
2.4.3 Analysing Influences 42
2.4.4 Prioritising Stakeholders 43
2.4.5 Involving Stakeholders 45
2.4.6 The Integrated Project Team 45
2.5 Validating Your List of Stakeholders 45
2.5.1 Things To Check the Stakeholder Analysis Against 46
2.6 The Bare Minimum of Stakeholder Analysis 46
2.7 Next Steps: Requirements from Stakeholders 46
2.8 Exercise 49
2.9 Further Reading 49
3 Goals 51
3.1 Summary 52
3.2 Discovering Goals 52
3.2.1 Worked Example: Goals for a Spacecraft 54
3.2.2 Worked Example: Goals for a Restaurant 57
3.2.3 Worked Example: Tram Goals and Trade-offs 59
3.2.4 Finding Solutions to Goal Conflicts 62
3.2.5 Contexts for Discovering Goals 63
3.2.6 The Negative Side 65
3.3 Documenting Goals 68
3.3.1 Drawing Goal Diagrams 69
3.3.2 Other Ways of Documenting Goals 69
3.4 Validating Goals 71
3.4.1 Things To Check Goals Against 73
3.5 The Bare Minimum of Goals 73
3.6 Next Steps 73
3.7 Exercises 73
3.8 Further Reading 74
3.8.1 Goals 74
3.8.2 The Negative Side 74
3.8.3 The i¿ Goal Modelling Notation 74
4 Context, Interfaces, Scope 75
4.1 Summary 76
4.2 Introduction 76
4.3 A 'Soft Systems' Approach for Ill-Defined Boundaries 77
4.3.1 You are Part of the Soft System you are Observing 78
4.3.2 From Stakeholders to Boundaries 79
4.3.3 Identifying Interfaces 83
4.3.4 Documenting Interfaces 84
4.3.5 Validating your Choice of Boundary 86
4.4 Switching to a 'Hard Systems' Approach for Known Events 87
4.4.1 The Traditional Context Diagram 87
4.4.2 Scope as a List of Events 87
4.4.3 Expressing Event-handling Functions 89
4.4.4 Strengths and Weaknesses of Context Diagrams 92
4.4.5 Validating Interfaces and Events 93
4.4.6 Things To Check Context and Interfaces Against 95
4.5 The Bare Minimum of Context 95
4.6 Next Steps 95
4.7 Exercise 95
4.8 Further Reading 96
4.8.1 Soft Approaches 96
4.8.2 Event-Driven Approaches 96
4.8.3 Writing Requirements 96
5 Scenarios 97
5.1 Summary 98
5.2 Discovering Scenarios 98
5.2.1 Interviews, storytelling 99
5.2.2 Scenario Workshops 101
5.2.3 Discovering Negative Scenarios 107
5.3 Documenting Scenarios 114
5.3.1 Index Cards, User Stories 115
5.3.2 Storyboards 116
5.3.3 Operational Scenarios 118
5.3.4 Use Cases 119
5.4 Summary 124
5.5 Validating Scenarios 124
5.5.1 Scenario Walkthroughs 124
5.5.2 Animation, Simulation, Prototyping 126
5.5.3 Things To Check Scenarios Against 127
5.6 The Bare Minimum of Scenarios 127
5.7 Next Steps 127
5.8 Exercises 128
5.9 Further Reading 128
5.9.1 Storytelling 128
5.9.2 Alternative Scenario Approaches 128
5.9.3 Running Scenario Workshops 129
5.9.4 The Principle of Commensurate Care 129
6 Qualities and Constraints 131
6.1 Summary 132
6.2 What are Qualities and Constraints? 132
6.2.1 A Rich Mixture 132
6.2.2 Qualities that Govern Choices 132
6.2.3 Constraints that Matter to People 133
6.3 Discovering Qualities and Constraints 133
6.3.1 Using Goals to Discover Qualities and Constraints 134
6.3.2 Stakeholder Analysis to Discover Qualities and Constraints 136
6.3.3 Using a Checklist to Discover Qualities and Constraints 136
6.4 Documenting Qualities and Constraints 141
6.4.1 Constraints 142
6.4.2 Development (Process) Qualities 146
6.4.3 Usage (Product) Qualities 147
6.5 Validating Qualities and Constraints 157
6.5.1 Things To Check Qualities and Constraints Against 158
6.6 The Bare Minimum of Qualities and Constraints 159
6.7 Next Steps 159
6.8 Exercises 159
6.9 Further Reading 160
7 Rationale and Assumptions 161
7.1 Summary 162
7.2 The Value of Rationale 162
7.3 Discovering Rationale and Assumptions 163
7.3.1 Asking Why 164
7.3.2 Looking for the word 'will' in vision statements, plans, etc 165
7.3.3 Rationalising a Set of Requirements 166
7.3.4 Inverting Risks 168
7.4 Documenting Rationale 169
7.4.1 Justification Text Field 171
7.4.2 Lists of Assumptions, Risks, Issues and Decisions 172
7.4.3 Traceability to Goals, Assumptions, etc 173
7.4.4 Rationale Models 178
7.4.5 The Goal Structuring Notation (GSN) 182
7.5 Validating Rationale and Assumptions 183
7.5.1 Rationale Walkthrough 184
7.5.2 Analysis of Traceability 184
7.5.3 Things To Check Rationale and Assumptions Against 186
7.6 The Bare Minimum of Rationale and Assumptions 187
7.7 Next Steps 187
7.8 Exercise 187
7.9 Further Reading 187
7.9.1 Discovering Assumptions 187
7.9.2 Reasoning 188
7.9.3 Modelling Rationale 188
7.9.4 Tracing to Goals 188
7.9.5 Goal Structuring Notation (GSN) 188
7.9.6 Satisfaction Arguments 188
8 Definitions 189
8.1 Summary 190
8.2 Discovering Definitions 190
8.2.1 Synonyms 191
8.2.2 Homonyms 193
8.3 Constructing the Project Dictionary 194
8.3.1 Acronyms 195
8.3.2 Definitions and Designations 195
8.3.3 Roles (Operational Stakeholders) 199
8.3.4 Data Definitions 201
8.3.5 Constraints as Data 202
8.4 Validating the Project Dictionary 204
8.4.1 Validating Data Models 205
8.4.2 Things To Check Definitions Against 206
8.5 The Bare Minimum of Definitions 206
8.6 Next Steps 206
8.7 Exercise 206
8.8 Further Reading 206
8.8.1 Definitions and Designations 206
8.8.2 Data Modelling 207
9 Measurements 209
9.1 Summary 210
9.2 Discovering and Documenting Acceptance Criteria 211
9.2.1 Acceptance Criteria for Behavioural Requirements 212
9.2.2 Acceptance Criteria for Qualities 216
9.2.3 Acceptance Criteria for Constraints 218
9.2.4 Verification Method 219
9.3 Validating Acceptance Criteria 222
9.3.1 Testing from Day One 222
9.4 Measuring Quality of Service (QoS) 223
9.4.1 Example Service: Office Carpeting 224
9.4.2 Two Opposite Approaches 225
9.4.3 A Spectrum of Service Approaches 226
9.4.4 Worked Example: QoS Measures for Food Preparation Services 228
9.5 Validating QoS Measures 230
9.5.1 Qualities of a Good QoS Measure 230
9.5.2 Will your QoS Measures Work? 231
9.5.3 Common QoS Measures 232
9.5.4 Validating QoS with Negative Scenarios 232
9.5.5 Things To Check Measurements Against 233
9.6 The Bare Minimum of Measurement 233
9.7 Next Steps 233
9.8 Exercise 233
9.9 Further Reading 233
10 Priorities 235
10.1 Summary 236
10.2 Two Kinds of Priority 236
10.3 Input Priority 237
10.3.1 Discovering Input Priority 237
10.3.2 Documenting Input Priority 241
10.3.3 Validating Input Priority 242
10.4 Output Priority 243
10.4.1 Discovering Output Priority 243
10.4.2 Documenting Output Priority 251
10.4.3 Validating Output Priority 253
10.5 Things To Check Priority Against 254
10.6 The Bare Minimum of Priorities 255
10.7 Next Steps 255
10.8 Exercise 255
10.9 Further Reading 255
10.9.1 Triage 255
10.9.2 Input Priority 256
10.9.3 Boston Matrix 256
10.9.4 Review Process 256
10.9.5 Life Cycles 256
Part II: Discovery Contexts 257
11 Requirements from Individuals 259
11.1 Summary 260
11.2 Introduction 260
11.3 Interviews 261
11.3.1 Planning an Interview Campaign 261
11.3.2 Planning Each Interview 267
11.3.3 Documenting Interviews 268
11.3.4 Validating Interview Findings 273
11.4 Observation and 'Apprenticeship' 274
11.4.1 Making Observations 274
11.4.2 Being 'Talked Through' Operations 276
11.4.3 Documenting Observations 277
11.4.4 Validating Observations 280
11.5 The Bare Minimum from Individuals 280
11.6 Exercises 280
11.7 Further Reading 281
11.7.1 Interviewing 281
11.7.2 Using Video 281
11.7.3 Observation 282
11.7.4 Tacit Knowledge 282
11.7.5 Standard Types of Systems Analysis 282
11.7.6 Informal Modelling Techniques 282
11.7.7 Philosophy 282
12 Requirements from Groups 283
12.1 Summary 284
12.2 The Goal of Group Work 284
12.2.1 Unique Capabilities 284
12.2.2 Obstacles 285
12.2.3 Mediating Group Work (on one site or many) 285
12.3 Workshops 286
12.3.1 Define Workshop Mission 286
12.3.2 Workshop Planning 287
12.3.3 Workshop Rehearsal 289
12.3.4 Workshop Setup 290
12.3.5 Workshop Recording 299
12.3.6 Validating Workshop Findings 302
12.4 Group Media 305
12.4.1 Project Wall 305
12.4.2 Project Website 306
12.4.3 Project Wiki 307
12.4.4 Modelling Tool 308
12.4.5 Requirements Management Tool 309
12.4.6 Groupware and Working at a Distance 310
12.4.7 The Role of Group Media 312
12.5 The Bare Minimum from Groups 314
12.6 Next Steps 314
12.7 Exercise 314
12.8 Further Reading 315
12.8.1 Workshops 315
12.8.2 Working in Groups 315
13 Requirements from Things 317
13.1 Summary 318
13.2 Requirements Prototyping 318
13.2.1 Purpose 319
13.2.2 Techniques 319
13.3 Reverse Engineering 330
13.3.1 From an Existing Product 330
13.4 Requirements Reuse 337
13.4.1 Type 1: Naïve Reuse 337
13.4.2 Type 2: Standardisation 338
13.4.3 Type 3: Product Lines 338
13.4.4 Tool Support for Reuse 338
13.5 Validating Requirements from Things 340
13.6 The Bare Minimum from Things 340
13.7 Exercises 340
13.8 Further Reading 340
13.8.1 Prototyping 340
14 Trade-offs 343
14.1 Summary 344
14.2 Optioneering: The Engineering of Trade-offs 344
14.2.1 The Requirements-First Life-Cycle Myth 344
14.2.2 An Optioneering Life Cycle 345
14.2.3 The Optioneering Process 350
14.2.4 Selecting the Winning Option 352
14.2.5 Optioneering with PCA: A Worked Example 360
14.3 Validating your Trade-offs 367
14.4 The Bare Minimum of Trade-offs 367
14.5 Next Steps 367
14.6 Exercises 368
14.7 Further Reading 369
14.7.1 Trade-offs 369
14.7.2 Statistics 370
14.7.3 PCA 370
14.7.4 Weighting Approaches 370
14.7.5 Analytic Hierarchy Process (AHP) 370
14.7.6 Quality Function Deployment (QFD) 370
14.7.7 Questions, Options, Criteria (QOC) 371
15 Putting it all Together 373
15.1 Summary 374
15.2 After Discovery 374
15.2.1 Everything Depends on the Requirements 374
15.2.2 Principles for the Requirements Chef 375
15.3 The Right Process for your Project 376
15.3.1 Case Study: A Retail IT Project 377
15.3.2 Case Study: Transport Planning 379
15.3.3 Requirements-Driven Project Management 381
15.4 Organising the Requirements Specification 385
15.4.1 Template 385
15.4.2 Levels 385
15.4.3 Can Use Cases Do Everything? 386
15.4.4 Organising Product Functions 386
15.4.5 Traditional 'Shalls' 387
15.4.6 Relating Requirements of Different Types 388
15.4.7 Conflicting Needs for Requirement Organisation 390
15.4.8 The Benefit of Requirements (Traceability) Tools 390
15.4.9 An Alternative View: Competing Approaches 391
15.5 The Bare Minimum of Putting it all Together 394
15.6 Further Reading 394
15.6.1 Choosing and Tailoring Development Life Cycles 394
15.6.2 Managing Projects From Requirements 395
15.6.3 Classics for Inspiration and Reflection 395
15.6.4 A Look Ahead 396
Appendix A: Exercise Answers and Hints 397
Appendix B: Getting the Level Right 405
Appendix C: Tools for Requirements Discovery 411
Appendix D: Template 423
Bibliography 429
Glossary 433
Index 445
Acknowledgements xv
Foreword xvii
Part I: Discovering Requirement Elements 1
1 Introduction 3
1.1 Summary 4
1.2 Why You Should Read This Book 4
1.3 Simple but Not Easy 6
1.4 Discovered, Not Found 7
1.4.1 Many Different Situations 9
1.5 A Softer Process, at First 12
1.6 More than a List of 'The System Shalls' 16
1.6.1 A Network of Requirement Elements 16
1.6.2 Discovery as Search 18
1.7 A Minimum of Process: The Discovery Cycle 18
1.8 The Structure of this Book 20
1.8.1 Part I: Discovering Requirement Elements 21
1.8.2 Part II: Contexts for Discovery 22
1.9 Further Reading 22
1.9.1 Books on 'Softer' Approaches 22
1.9.2 Books on the Philosophical Background 23
1.9.3 Books on 'Harder' Approaches 24
2 Stakeholders 27
2.1 Summary 28
2.2 Discovering Stakeholders 28
2.2.1 Operational Stakeholders within 'The System' 30
2.2.2 Stakeholders in the Containing System and Wider Environment 30
2.3 Identifying Stakeholders 37
2.3.1 From your Sponsor or Client 37
2.3.2 With a Template such as the Onion Model 37
2.3.3 By Comparison with Similar Projects 40
2.3.4 By Analysing Context 40
2.4 Managing Your Stakeholders 41
2.4.1 Engaging with Stakeholders 41
2.4.2 Keeping Track of Stakeholders 42
2.4.3 Analysing Influences 42
2.4.4 Prioritising Stakeholders 43
2.4.5 Involving Stakeholders 45
2.4.6 The Integrated Project Team 45
2.5 Validating Your List of Stakeholders 45
2.5.1 Things To Check the Stakeholder Analysis Against 46
2.6 The Bare Minimum of Stakeholder Analysis 46
2.7 Next Steps: Requirements from Stakeholders 46
2.8 Exercise 49
2.9 Further Reading 49
3 Goals 51
3.1 Summary 52
3.2 Discovering Goals 52
3.2.1 Worked Example: Goals for a Spacecraft 54
3.2.2 Worked Example: Goals for a Restaurant 57
3.2.3 Worked Example: Tram Goals and Trade-offs 59
3.2.4 Finding Solutions to Goal Conflicts 62
3.2.5 Contexts for Discovering Goals 63
3.2.6 The Negative Side 65
3.3 Documenting Goals 68
3.3.1 Drawing Goal Diagrams 69
3.3.2 Other Ways of Documenting Goals 69
3.4 Validating Goals 71
3.4.1 Things To Check Goals Against 73
3.5 The Bare Minimum of Goals 73
3.6 Next Steps 73
3.7 Exercises 73
3.8 Further Reading 74
3.8.1 Goals 74
3.8.2 The Negative Side 74
3.8.3 The i¿ Goal Modelling Notation 74
4 Context, Interfaces, Scope 75
4.1 Summary 76
4.2 Introduction 76
4.3 A 'Soft Systems' Approach for Ill-Defined Boundaries 77
4.3.1 You are Part of the Soft System you are Observing 78
4.3.2 From Stakeholders to Boundaries 79
4.3.3 Identifying Interfaces 83
4.3.4 Documenting Interfaces 84
4.3.5 Validating your Choice of Boundary 86
4.4 Switching to a 'Hard Systems' Approach for Known Events 87
4.4.1 The Traditional Context Diagram 87
4.4.2 Scope as a List of Events 87
4.4.3 Expressing Event-handling Functions 89
4.4.4 Strengths and Weaknesses of Context Diagrams 92
4.4.5 Validating Interfaces and Events 93
4.4.6 Things To Check Context and Interfaces Against 95
4.5 The Bare Minimum of Context 95
4.6 Next Steps 95
4.7 Exercise 95
4.8 Further Reading 96
4.8.1 Soft Approaches 96
4.8.2 Event-Driven Approaches 96
4.8.3 Writing Requirements 96
5 Scenarios 97
5.1 Summary 98
5.2 Discovering Scenarios 98
5.2.1 Interviews, storytelling 99
5.2.2 Scenario Workshops 101
5.2.3 Discovering Negative Scenarios 107
5.3 Documenting Scenarios 114
5.3.1 Index Cards, User Stories 115
5.3.2 Storyboards 116
5.3.3 Operational Scenarios 118
5.3.4 Use Cases 119
5.4 Summary 124
5.5 Validating Scenarios 124
5.5.1 Scenario Walkthroughs 124
5.5.2 Animation, Simulation, Prototyping 126
5.5.3 Things To Check Scenarios Against 127
5.6 The Bare Minimum of Scenarios 127
5.7 Next Steps 127
5.8 Exercises 128
5.9 Further Reading 128
5.9.1 Storytelling 128
5.9.2 Alternative Scenario Approaches 128
5.9.3 Running Scenario Workshops 129
5.9.4 The Principle of Commensurate Care 129
6 Qualities and Constraints 131
6.1 Summary 132
6.2 What are Qualities and Constraints? 132
6.2.1 A Rich Mixture 132
6.2.2 Qualities that Govern Choices 132
6.2.3 Constraints that Matter to People 133
6.3 Discovering Qualities and Constraints 133
6.3.1 Using Goals to Discover Qualities and Constraints 134
6.3.2 Stakeholder Analysis to Discover Qualities and Constraints 136
6.3.3 Using a Checklist to Discover Qualities and Constraints 136
6.4 Documenting Qualities and Constraints 141
6.4.1 Constraints 142
6.4.2 Development (Process) Qualities 146
6.4.3 Usage (Product) Qualities 147
6.5 Validating Qualities and Constraints 157
6.5.1 Things To Check Qualities and Constraints Against 158
6.6 The Bare Minimum of Qualities and Constraints 159
6.7 Next Steps 159
6.8 Exercises 159
6.9 Further Reading 160
7 Rationale and Assumptions 161
7.1 Summary 162
7.2 The Value of Rationale 162
7.3 Discovering Rationale and Assumptions 163
7.3.1 Asking Why 164
7.3.2 Looking for the word 'will' in vision statements, plans, etc 165
7.3.3 Rationalising a Set of Requirements 166
7.3.4 Inverting Risks 168
7.4 Documenting Rationale 169
7.4.1 Justification Text Field 171
7.4.2 Lists of Assumptions, Risks, Issues and Decisions 172
7.4.3 Traceability to Goals, Assumptions, etc 173
7.4.4 Rationale Models 178
7.4.5 The Goal Structuring Notation (GSN) 182
7.5 Validating Rationale and Assumptions 183
7.5.1 Rationale Walkthrough 184
7.5.2 Analysis of Traceability 184
7.5.3 Things To Check Rationale and Assumptions Against 186
7.6 The Bare Minimum of Rationale and Assumptions 187
7.7 Next Steps 187
7.8 Exercise 187
7.9 Further Reading 187
7.9.1 Discovering Assumptions 187
7.9.2 Reasoning 188
7.9.3 Modelling Rationale 188
7.9.4 Tracing to Goals 188
7.9.5 Goal Structuring Notation (GSN) 188
7.9.6 Satisfaction Arguments 188
8 Definitions 189
8.1 Summary 190
8.2 Discovering Definitions 190
8.2.1 Synonyms 191
8.2.2 Homonyms 193
8.3 Constructing the Project Dictionary 194
8.3.1 Acronyms 195
8.3.2 Definitions and Designations 195
8.3.3 Roles (Operational Stakeholders) 199
8.3.4 Data Definitions 201
8.3.5 Constraints as Data 202
8.4 Validating the Project Dictionary 204
8.4.1 Validating Data Models 205
8.4.2 Things To Check Definitions Against 206
8.5 The Bare Minimum of Definitions 206
8.6 Next Steps 206
8.7 Exercise 206
8.8 Further Reading 206
8.8.1 Definitions and Designations 206
8.8.2 Data Modelling 207
9 Measurements 209
9.1 Summary 210
9.2 Discovering and Documenting Acceptance Criteria 211
9.2.1 Acceptance Criteria for Behavioural Requirements 212
9.2.2 Acceptance Criteria for Qualities 216
9.2.3 Acceptance Criteria for Constraints 218
9.2.4 Verification Method 219
9.3 Validating Acceptance Criteria 222
9.3.1 Testing from Day One 222
9.4 Measuring Quality of Service (QoS) 223
9.4.1 Example Service: Office Carpeting 224
9.4.2 Two Opposite Approaches 225
9.4.3 A Spectrum of Service Approaches 226
9.4.4 Worked Example: QoS Measures for Food Preparation Services 228
9.5 Validating QoS Measures 230
9.5.1 Qualities of a Good QoS Measure 230
9.5.2 Will your QoS Measures Work? 231
9.5.3 Common QoS Measures 232
9.5.4 Validating QoS with Negative Scenarios 232
9.5.5 Things To Check Measurements Against 233
9.6 The Bare Minimum of Measurement 233
9.7 Next Steps 233
9.8 Exercise 233
9.9 Further Reading 233
10 Priorities 235
10.1 Summary 236
10.2 Two Kinds of Priority 236
10.3 Input Priority 237
10.3.1 Discovering Input Priority 237
10.3.2 Documenting Input Priority 241
10.3.3 Validating Input Priority 242
10.4 Output Priority 243
10.4.1 Discovering Output Priority 243
10.4.2 Documenting Output Priority 251
10.4.3 Validating Output Priority 253
10.5 Things To Check Priority Against 254
10.6 The Bare Minimum of Priorities 255
10.7 Next Steps 255
10.8 Exercise 255
10.9 Further Reading 255
10.9.1 Triage 255
10.9.2 Input Priority 256
10.9.3 Boston Matrix 256
10.9.4 Review Process 256
10.9.5 Life Cycles 256
Part II: Discovery Contexts 257
11 Requirements from Individuals 259
11.1 Summary 260
11.2 Introduction 260
11.3 Interviews 261
11.3.1 Planning an Interview Campaign 261
11.3.2 Planning Each Interview 267
11.3.3 Documenting Interviews 268
11.3.4 Validating Interview Findings 273
11.4 Observation and 'Apprenticeship' 274
11.4.1 Making Observations 274
11.4.2 Being 'Talked Through' Operations 276
11.4.3 Documenting Observations 277
11.4.4 Validating Observations 280
11.5 The Bare Minimum from Individuals 280
11.6 Exercises 280
11.7 Further Reading 281
11.7.1 Interviewing 281
11.7.2 Using Video 281
11.7.3 Observation 282
11.7.4 Tacit Knowledge 282
11.7.5 Standard Types of Systems Analysis 282
11.7.6 Informal Modelling Techniques 282
11.7.7 Philosophy 282
12 Requirements from Groups 283
12.1 Summary 284
12.2 The Goal of Group Work 284
12.2.1 Unique Capabilities 284
12.2.2 Obstacles 285
12.2.3 Mediating Group Work (on one site or many) 285
12.3 Workshops 286
12.3.1 Define Workshop Mission 286
12.3.2 Workshop Planning 287
12.3.3 Workshop Rehearsal 289
12.3.4 Workshop Setup 290
12.3.5 Workshop Recording 299
12.3.6 Validating Workshop Findings 302
12.4 Group Media 305
12.4.1 Project Wall 305
12.4.2 Project Website 306
12.4.3 Project Wiki 307
12.4.4 Modelling Tool 308
12.4.5 Requirements Management Tool 309
12.4.6 Groupware and Working at a Distance 310
12.4.7 The Role of Group Media 312
12.5 The Bare Minimum from Groups 314
12.6 Next Steps 314
12.7 Exercise 314
12.8 Further Reading 315
12.8.1 Workshops 315
12.8.2 Working in Groups 315
13 Requirements from Things 317
13.1 Summary 318
13.2 Requirements Prototyping 318
13.2.1 Purpose 319
13.2.2 Techniques 319
13.3 Reverse Engineering 330
13.3.1 From an Existing Product 330
13.4 Requirements Reuse 337
13.4.1 Type 1: Naïve Reuse 337
13.4.2 Type 2: Standardisation 338
13.4.3 Type 3: Product Lines 338
13.4.4 Tool Support for Reuse 338
13.5 Validating Requirements from Things 340
13.6 The Bare Minimum from Things 340
13.7 Exercises 340
13.8 Further Reading 340
13.8.1 Prototyping 340
14 Trade-offs 343
14.1 Summary 344
14.2 Optioneering: The Engineering of Trade-offs 344
14.2.1 The Requirements-First Life-Cycle Myth 344
14.2.2 An Optioneering Life Cycle 345
14.2.3 The Optioneering Process 350
14.2.4 Selecting the Winning Option 352
14.2.5 Optioneering with PCA: A Worked Example 360
14.3 Validating your Trade-offs 367
14.4 The Bare Minimum of Trade-offs 367
14.5 Next Steps 367
14.6 Exercises 368
14.7 Further Reading 369
14.7.1 Trade-offs 369
14.7.2 Statistics 370
14.7.3 PCA 370
14.7.4 Weighting Approaches 370
14.7.5 Analytic Hierarchy Process (AHP) 370
14.7.6 Quality Function Deployment (QFD) 370
14.7.7 Questions, Options, Criteria (QOC) 371
15 Putting it all Together 373
15.1 Summary 374
15.2 After Discovery 374
15.2.1 Everything Depends on the Requirements 374
15.2.2 Principles for the Requirements Chef 375
15.3 The Right Process for your Project 376
15.3.1 Case Study: A Retail IT Project 377
15.3.2 Case Study: Transport Planning 379
15.3.3 Requirements-Driven Project Management 381
15.4 Organising the Requirements Specification 385
15.4.1 Template 385
15.4.2 Levels 385
15.4.3 Can Use Cases Do Everything? 386
15.4.4 Organising Product Functions 386
15.4.5 Traditional 'Shalls' 387
15.4.6 Relating Requirements of Different Types 388
15.4.7 Conflicting Needs for Requirement Organisation 390
15.4.8 The Benefit of Requirements (Traceability) Tools 390
15.4.9 An Alternative View: Competing Approaches 391
15.5 The Bare Minimum of Putting it all Together 394
15.6 Further Reading 394
15.6.1 Choosing and Tailoring Development Life Cycles 394
15.6.2 Managing Projects From Requirements 395
15.6.3 Classics for Inspiration and Reflection 395
15.6.4 A Look Ahead 396
Appendix A: Exercise Answers and Hints 397
Appendix B: Getting the Level Right 405
Appendix C: Tools for Requirements Discovery 411
Appendix D: Template 423
Bibliography 429
Glossary 433
Index 445
Foreword xvii
Part I: Discovering Requirement Elements 1
1 Introduction 3
1.1 Summary 4
1.2 Why You Should Read This Book 4
1.3 Simple but Not Easy 6
1.4 Discovered, Not Found 7
1.4.1 Many Different Situations 9
1.5 A Softer Process, at First 12
1.6 More than a List of 'The System Shalls' 16
1.6.1 A Network of Requirement Elements 16
1.6.2 Discovery as Search 18
1.7 A Minimum of Process: The Discovery Cycle 18
1.8 The Structure of this Book 20
1.8.1 Part I: Discovering Requirement Elements 21
1.8.2 Part II: Contexts for Discovery 22
1.9 Further Reading 22
1.9.1 Books on 'Softer' Approaches 22
1.9.2 Books on the Philosophical Background 23
1.9.3 Books on 'Harder' Approaches 24
2 Stakeholders 27
2.1 Summary 28
2.2 Discovering Stakeholders 28
2.2.1 Operational Stakeholders within 'The System' 30
2.2.2 Stakeholders in the Containing System and Wider Environment 30
2.3 Identifying Stakeholders 37
2.3.1 From your Sponsor or Client 37
2.3.2 With a Template such as the Onion Model 37
2.3.3 By Comparison with Similar Projects 40
2.3.4 By Analysing Context 40
2.4 Managing Your Stakeholders 41
2.4.1 Engaging with Stakeholders 41
2.4.2 Keeping Track of Stakeholders 42
2.4.3 Analysing Influences 42
2.4.4 Prioritising Stakeholders 43
2.4.5 Involving Stakeholders 45
2.4.6 The Integrated Project Team 45
2.5 Validating Your List of Stakeholders 45
2.5.1 Things To Check the Stakeholder Analysis Against 46
2.6 The Bare Minimum of Stakeholder Analysis 46
2.7 Next Steps: Requirements from Stakeholders 46
2.8 Exercise 49
2.9 Further Reading 49
3 Goals 51
3.1 Summary 52
3.2 Discovering Goals 52
3.2.1 Worked Example: Goals for a Spacecraft 54
3.2.2 Worked Example: Goals for a Restaurant 57
3.2.3 Worked Example: Tram Goals and Trade-offs 59
3.2.4 Finding Solutions to Goal Conflicts 62
3.2.5 Contexts for Discovering Goals 63
3.2.6 The Negative Side 65
3.3 Documenting Goals 68
3.3.1 Drawing Goal Diagrams 69
3.3.2 Other Ways of Documenting Goals 69
3.4 Validating Goals 71
3.4.1 Things To Check Goals Against 73
3.5 The Bare Minimum of Goals 73
3.6 Next Steps 73
3.7 Exercises 73
3.8 Further Reading 74
3.8.1 Goals 74
3.8.2 The Negative Side 74
3.8.3 The i¿ Goal Modelling Notation 74
4 Context, Interfaces, Scope 75
4.1 Summary 76
4.2 Introduction 76
4.3 A 'Soft Systems' Approach for Ill-Defined Boundaries 77
4.3.1 You are Part of the Soft System you are Observing 78
4.3.2 From Stakeholders to Boundaries 79
4.3.3 Identifying Interfaces 83
4.3.4 Documenting Interfaces 84
4.3.5 Validating your Choice of Boundary 86
4.4 Switching to a 'Hard Systems' Approach for Known Events 87
4.4.1 The Traditional Context Diagram 87
4.4.2 Scope as a List of Events 87
4.4.3 Expressing Event-handling Functions 89
4.4.4 Strengths and Weaknesses of Context Diagrams 92
4.4.5 Validating Interfaces and Events 93
4.4.6 Things To Check Context and Interfaces Against 95
4.5 The Bare Minimum of Context 95
4.6 Next Steps 95
4.7 Exercise 95
4.8 Further Reading 96
4.8.1 Soft Approaches 96
4.8.2 Event-Driven Approaches 96
4.8.3 Writing Requirements 96
5 Scenarios 97
5.1 Summary 98
5.2 Discovering Scenarios 98
5.2.1 Interviews, storytelling 99
5.2.2 Scenario Workshops 101
5.2.3 Discovering Negative Scenarios 107
5.3 Documenting Scenarios 114
5.3.1 Index Cards, User Stories 115
5.3.2 Storyboards 116
5.3.3 Operational Scenarios 118
5.3.4 Use Cases 119
5.4 Summary 124
5.5 Validating Scenarios 124
5.5.1 Scenario Walkthroughs 124
5.5.2 Animation, Simulation, Prototyping 126
5.5.3 Things To Check Scenarios Against 127
5.6 The Bare Minimum of Scenarios 127
5.7 Next Steps 127
5.8 Exercises 128
5.9 Further Reading 128
5.9.1 Storytelling 128
5.9.2 Alternative Scenario Approaches 128
5.9.3 Running Scenario Workshops 129
5.9.4 The Principle of Commensurate Care 129
6 Qualities and Constraints 131
6.1 Summary 132
6.2 What are Qualities and Constraints? 132
6.2.1 A Rich Mixture 132
6.2.2 Qualities that Govern Choices 132
6.2.3 Constraints that Matter to People 133
6.3 Discovering Qualities and Constraints 133
6.3.1 Using Goals to Discover Qualities and Constraints 134
6.3.2 Stakeholder Analysis to Discover Qualities and Constraints 136
6.3.3 Using a Checklist to Discover Qualities and Constraints 136
6.4 Documenting Qualities and Constraints 141
6.4.1 Constraints 142
6.4.2 Development (Process) Qualities 146
6.4.3 Usage (Product) Qualities 147
6.5 Validating Qualities and Constraints 157
6.5.1 Things To Check Qualities and Constraints Against 158
6.6 The Bare Minimum of Qualities and Constraints 159
6.7 Next Steps 159
6.8 Exercises 159
6.9 Further Reading 160
7 Rationale and Assumptions 161
7.1 Summary 162
7.2 The Value of Rationale 162
7.3 Discovering Rationale and Assumptions 163
7.3.1 Asking Why 164
7.3.2 Looking for the word 'will' in vision statements, plans, etc 165
7.3.3 Rationalising a Set of Requirements 166
7.3.4 Inverting Risks 168
7.4 Documenting Rationale 169
7.4.1 Justification Text Field 171
7.4.2 Lists of Assumptions, Risks, Issues and Decisions 172
7.4.3 Traceability to Goals, Assumptions, etc 173
7.4.4 Rationale Models 178
7.4.5 The Goal Structuring Notation (GSN) 182
7.5 Validating Rationale and Assumptions 183
7.5.1 Rationale Walkthrough 184
7.5.2 Analysis of Traceability 184
7.5.3 Things To Check Rationale and Assumptions Against 186
7.6 The Bare Minimum of Rationale and Assumptions 187
7.7 Next Steps 187
7.8 Exercise 187
7.9 Further Reading 187
7.9.1 Discovering Assumptions 187
7.9.2 Reasoning 188
7.9.3 Modelling Rationale 188
7.9.4 Tracing to Goals 188
7.9.5 Goal Structuring Notation (GSN) 188
7.9.6 Satisfaction Arguments 188
8 Definitions 189
8.1 Summary 190
8.2 Discovering Definitions 190
8.2.1 Synonyms 191
8.2.2 Homonyms 193
8.3 Constructing the Project Dictionary 194
8.3.1 Acronyms 195
8.3.2 Definitions and Designations 195
8.3.3 Roles (Operational Stakeholders) 199
8.3.4 Data Definitions 201
8.3.5 Constraints as Data 202
8.4 Validating the Project Dictionary 204
8.4.1 Validating Data Models 205
8.4.2 Things To Check Definitions Against 206
8.5 The Bare Minimum of Definitions 206
8.6 Next Steps 206
8.7 Exercise 206
8.8 Further Reading 206
8.8.1 Definitions and Designations 206
8.8.2 Data Modelling 207
9 Measurements 209
9.1 Summary 210
9.2 Discovering and Documenting Acceptance Criteria 211
9.2.1 Acceptance Criteria for Behavioural Requirements 212
9.2.2 Acceptance Criteria for Qualities 216
9.2.3 Acceptance Criteria for Constraints 218
9.2.4 Verification Method 219
9.3 Validating Acceptance Criteria 222
9.3.1 Testing from Day One 222
9.4 Measuring Quality of Service (QoS) 223
9.4.1 Example Service: Office Carpeting 224
9.4.2 Two Opposite Approaches 225
9.4.3 A Spectrum of Service Approaches 226
9.4.4 Worked Example: QoS Measures for Food Preparation Services 228
9.5 Validating QoS Measures 230
9.5.1 Qualities of a Good QoS Measure 230
9.5.2 Will your QoS Measures Work? 231
9.5.3 Common QoS Measures 232
9.5.4 Validating QoS with Negative Scenarios 232
9.5.5 Things To Check Measurements Against 233
9.6 The Bare Minimum of Measurement 233
9.7 Next Steps 233
9.8 Exercise 233
9.9 Further Reading 233
10 Priorities 235
10.1 Summary 236
10.2 Two Kinds of Priority 236
10.3 Input Priority 237
10.3.1 Discovering Input Priority 237
10.3.2 Documenting Input Priority 241
10.3.3 Validating Input Priority 242
10.4 Output Priority 243
10.4.1 Discovering Output Priority 243
10.4.2 Documenting Output Priority 251
10.4.3 Validating Output Priority 253
10.5 Things To Check Priority Against 254
10.6 The Bare Minimum of Priorities 255
10.7 Next Steps 255
10.8 Exercise 255
10.9 Further Reading 255
10.9.1 Triage 255
10.9.2 Input Priority 256
10.9.3 Boston Matrix 256
10.9.4 Review Process 256
10.9.5 Life Cycles 256
Part II: Discovery Contexts 257
11 Requirements from Individuals 259
11.1 Summary 260
11.2 Introduction 260
11.3 Interviews 261
11.3.1 Planning an Interview Campaign 261
11.3.2 Planning Each Interview 267
11.3.3 Documenting Interviews 268
11.3.4 Validating Interview Findings 273
11.4 Observation and 'Apprenticeship' 274
11.4.1 Making Observations 274
11.4.2 Being 'Talked Through' Operations 276
11.4.3 Documenting Observations 277
11.4.4 Validating Observations 280
11.5 The Bare Minimum from Individuals 280
11.6 Exercises 280
11.7 Further Reading 281
11.7.1 Interviewing 281
11.7.2 Using Video 281
11.7.3 Observation 282
11.7.4 Tacit Knowledge 282
11.7.5 Standard Types of Systems Analysis 282
11.7.6 Informal Modelling Techniques 282
11.7.7 Philosophy 282
12 Requirements from Groups 283
12.1 Summary 284
12.2 The Goal of Group Work 284
12.2.1 Unique Capabilities 284
12.2.2 Obstacles 285
12.2.3 Mediating Group Work (on one site or many) 285
12.3 Workshops 286
12.3.1 Define Workshop Mission 286
12.3.2 Workshop Planning 287
12.3.3 Workshop Rehearsal 289
12.3.4 Workshop Setup 290
12.3.5 Workshop Recording 299
12.3.6 Validating Workshop Findings 302
12.4 Group Media 305
12.4.1 Project Wall 305
12.4.2 Project Website 306
12.4.3 Project Wiki 307
12.4.4 Modelling Tool 308
12.4.5 Requirements Management Tool 309
12.4.6 Groupware and Working at a Distance 310
12.4.7 The Role of Group Media 312
12.5 The Bare Minimum from Groups 314
12.6 Next Steps 314
12.7 Exercise 314
12.8 Further Reading 315
12.8.1 Workshops 315
12.8.2 Working in Groups 315
13 Requirements from Things 317
13.1 Summary 318
13.2 Requirements Prototyping 318
13.2.1 Purpose 319
13.2.2 Techniques 319
13.3 Reverse Engineering 330
13.3.1 From an Existing Product 330
13.4 Requirements Reuse 337
13.4.1 Type 1: Naïve Reuse 337
13.4.2 Type 2: Standardisation 338
13.4.3 Type 3: Product Lines 338
13.4.4 Tool Support for Reuse 338
13.5 Validating Requirements from Things 340
13.6 The Bare Minimum from Things 340
13.7 Exercises 340
13.8 Further Reading 340
13.8.1 Prototyping 340
14 Trade-offs 343
14.1 Summary 344
14.2 Optioneering: The Engineering of Trade-offs 344
14.2.1 The Requirements-First Life-Cycle Myth 344
14.2.2 An Optioneering Life Cycle 345
14.2.3 The Optioneering Process 350
14.2.4 Selecting the Winning Option 352
14.2.5 Optioneering with PCA: A Worked Example 360
14.3 Validating your Trade-offs 367
14.4 The Bare Minimum of Trade-offs 367
14.5 Next Steps 367
14.6 Exercises 368
14.7 Further Reading 369
14.7.1 Trade-offs 369
14.7.2 Statistics 370
14.7.3 PCA 370
14.7.4 Weighting Approaches 370
14.7.5 Analytic Hierarchy Process (AHP) 370
14.7.6 Quality Function Deployment (QFD) 370
14.7.7 Questions, Options, Criteria (QOC) 371
15 Putting it all Together 373
15.1 Summary 374
15.2 After Discovery 374
15.2.1 Everything Depends on the Requirements 374
15.2.2 Principles for the Requirements Chef 375
15.3 The Right Process for your Project 376
15.3.1 Case Study: A Retail IT Project 377
15.3.2 Case Study: Transport Planning 379
15.3.3 Requirements-Driven Project Management 381
15.4 Organising the Requirements Specification 385
15.4.1 Template 385
15.4.2 Levels 385
15.4.3 Can Use Cases Do Everything? 386
15.4.4 Organising Product Functions 386
15.4.5 Traditional 'Shalls' 387
15.4.6 Relating Requirements of Different Types 388
15.4.7 Conflicting Needs for Requirement Organisation 390
15.4.8 The Benefit of Requirements (Traceability) Tools 390
15.4.9 An Alternative View: Competing Approaches 391
15.5 The Bare Minimum of Putting it all Together 394
15.6 Further Reading 394
15.6.1 Choosing and Tailoring Development Life Cycles 394
15.6.2 Managing Projects From Requirements 395
15.6.3 Classics for Inspiration and Reflection 395
15.6.4 A Look Ahead 396
Appendix A: Exercise Answers and Hints 397
Appendix B: Getting the Level Right 405
Appendix C: Tools for Requirements Discovery 411
Appendix D: Template 423
Bibliography 429
Glossary 433
Index 445