Acknowledgements Preface Part I: Negotiating a Common
Understanding 1. Methodologies Aren't Enough 1.1
CASE, CAD, and the Cockroach Killer 1.2 Methods' Effects on Problems 1.3
Maps and Their Notation 1.4 Making Sure That Everyone Can Read the Map
1.5 Maps of Requirements Are Not Requirements 1.6 Helpful Hints and Variations
1.7 Summary 2. Ambiguity in Stating Requirements
2.1 Examples of Ambiguity 2.1.1 Missing requirements 2.1.2 Ambiguous
words 2.1.3 Introduced elements 2.2 Cost of Ambiguity 2.3 Exploring
to Remove Ambiguity 2.3.1 A picture of requirements 2.3.2 A model of
exploration 2.4 Helpful Hints and Variations 2.5 Summary 3.
Sources of Ambiguity 3.1 An Example: The Convergent Design
Processes Lecture 3.2 A Test for Attentiveness 3.3 The Clustering Heuristic 3.3.1
Observational and recall errors 3.3.2 Interpretation errors 3.3.3 Mixtures
of sources of error 3.3.4 Effects of human interaction 3.4 Problem Statement
Ambiguity 3.5 Helpful Hints and Variations 3.6 Summary 4.
The Tried but Untrue Use of Direct Questions 4.1 Decision Trees 4.1.1
Order of questions 4.1.2 Traversing the decision tree: an example 4.2
Results of an Ambiguity Poll 4.3 What Could Possibly Be Wrong? 4.4
Real Life Is More Real Than We Like to Think 4.5 Helpful Hints and Variations 4.6
Summary Part II: Ways to Get Started 5. Starting
Points 5.1 A Universal Starting Point 5.2 Universalizing
a Variety of Starting Points 5.2.1 Solution idea 5.2.2 Technology idea
5.2.3 Simile 5.2.4 Norm 5.2.5 Mockup 5.2.6 Name 5.3 The Can-Exist
Assumption 5.4 An Elevator Example 5.4.1 Naming our project 5.5
Helpful Hints and Variations 5.6 Summary 6. Context-Free
Questions 6.1 Context-Free Process Questions 6.2 Potential
Impact of a Context-Free Question 6.3 Context-Free Product Questions 6.4
Metaquestions 6.5 Advantages of Context-Free Questions 6.6 Helpful Hints
and Variations 6.7 Summary 7. Getting the Right People
Involved 7.1 Identifying the Right People 7.1.1 Customers
versus users 7.1.2 Why include the users? 7.1.3 The Railroad Paradox
7.1.4 The product can create users 7.1.5 Are losers users? 7.2 A User-Inclusion
Heuristic 7.2.1 Listing possible user constituencies 7.2.2 Pruning the
user list 7.3 Participation 7.3.1 Who participates? 7.3.2 When
do they participate? 7.3.3 How do we get their judgments? 7.4 Plan for
Capturing Users 7.5 Helpful Hints and Variations 7.6 Summary 8.
Making Meetings Work for Everybody 8.1 Meetings: Tools We Can't
Live With, or Without 8.1.1 A terrible, but typical, meeting 8.1.2 Meetings
as measurements 8.2 Participation and Safety 8.2.1 Establishing an
interruption policy 8.2.2 Setting time limits 8.2.3 Outlawing personal
attacks and put-downs 8.2.4 Reducing pressure 8.2.5 Allowing time to finish,
yet finishing on time 8.2.6 Handling related issues 8.2.7 Amending the
rules 8.3 Making It Safe Not to Attend a Meeting 8.3.1 Publishing
an agenda and sticking to it 8.3.2 Staying out of emergency mode 8.3.3
Handling people who don't belong 8.3.4 Including the right people 8.4
Designing the Meeting You Need 8.5 Helpful Hints and Variations 8.6 Summary 9.
Reducing Ambiguity from Start to Finish 9.1 Using the Memorization
Heuristic 9.2 Extending the Ambiguity Poll 9.3 "Mary had a little
lamb" Heuristic 9.4 Developing the "Mary conned the trader"
Heuristic 9.5 Applying the Heuristics to the Star Problem 9.6 Helpful
Hints and Variations 9.7 Summary Part III: Exploring
the Possibilities 10. Idea-Generation Meetings 10.1
A Typical Brainblizzard 10.2 First Part of the Brainstorm 10.2.1 Do
not allow criticism or debate 10.2.2 Let your imagination soar 10.2.3
Shoot for quantity 10.2.4 Mutate and combine ideas 10.3 Second Part
of the Brainstorm 10.3.1 Voting with a threshold 10.3.2 Voting with
campaign speeches 10.3.3 Blending ideas 10.3.4 Applying criteria
10.3.5 Scoring or ranking systems 10.4 Helpful Hints and Variations
10.5 Summary 11. Right-Brain Methods 11.1
Mapping Tools 11.1.1 Sketching 11.1.2 Sketching Wiggle Charts 11.2
Braindrawing 11.3 Right-Braining 11.4 Helpful Hints and Variations
11.5 Summary 12. The Project's Name 12.1
Working Titles, Nicknames, and Official Names 12.2 The Influence of Names 12.2.1
A naming demonstration 12.2.2 What naming accomplishes 12.3 The Naming
Heuristic 12.4 Helpful Hints and Variations 12.5 Summary 13.
Facilitating in the Face of Conflict 13.1 Handling Inessential
Conflicts 13.1.1 Wrong time, wrong project 13.1.2 Personality clashes
13.1.3 Indispensable people 13.1.4 Intergroup prejudice 13.1.5 Level differences 13.2
The Art of Being Fully Present 13.3 Handling Essential Conflicts 13.3.1
Reframing personality differences 13.3.2 Negotiating 13.3.3 Handling political
conflicts 13.4 Helpful Hints and Variations 13.5 Summary Part
IV: Clarifying Expectations 14. Functions 14.1 Defining
a function 14.1.1 Existence Function 14.1.2 Testing for a function 14.2
Capturing All and Only Functions 14.2.1 Capturing all potential functions
14.2.2 Understanding evident, hidden, and frill functions 14.2.3 Identifying
overlooked functions 14.2.4 Avoiding implied solutions 14.2.5 The "Get
It If You Can" List 14.3 Helpful Hints and Variations 14.4 Summary 15.
Attributes 15.1 Attribute Wish List 15.2 Transforming the
Wish List 15.2.1 Distinguishing between attributes and attribute details
15.2.2 Uncovering attribute ambiguity 15.2.3 Organizing the list 15.2.4
Discovering insights from the transformed list 15.3 Assigning Attributes
to Functions 15.3.1 How attributes can modify functions 15.3.2 Gaining
insights from the new function 15.4 Excluding Attributes 15.4.1 Categorizing
into must, want, and ignore attributes 15.4.2 Implicit versus explicit elimination
of attributes 15.5 Helpful Hints and Variations 15.6 Summary 16.
Constraints 16.1 Defining Constraints 16.2 Thinking of
Constraints as Boundaries 16.3 Testing the Constraints 16.3.1 Too strict?
16.3.2 Not strict enough? 16.3.3 Unclear? 16.3.4 Generating new ideas 16.4
Interrelated Constraints 16.5 Overconstraint 16.6 Psychology of Constraints 16.6.1
The tilt concept 16.6.2 Breaking constraints 16.6.3 The self-esteem bad-design
cycle 16.7 Constraint Produces Freedom 16.7.1 Standards 16.7.2
Languages and other tools 16.8 Helpful Hints and Variations 16.9 Summary
17. Preferences
17.1 Defining a Preference 17.1.1 An
example 17.1.2 The origin of preferences 17.2 Making Preferences Measurable 17.2.1
A reasonable approach to metrics 17.2.2 Making the preference measurable 17.3
Distinguishing Between Constraints and Preferences 17.3.1 Is meeting the
schedule a constraint? 17.4 Constrained Preferences 17.4.1 What's-it-worth?
graphs 17.4.2 When-do-you-need-it? graphs 17.5 Reframing Constraints
into Preferences 17.5.1 Trading off among preferences 17.5.2 Zeroth
Law of Product Development 17.6 Helpful Hints and Variations 17.7
Summary 18. Expectations 18.1 Reasons to
Limit Expectations 18.1.1 People are not perfect 18.1.2 People are not
logical 18.1.3 People perceive things differently 18.1.4 Designers are
people, too 18.2 Applying the Expectation Limitation Process 18.2.1
Generate a specific expectation list 18.2.2 The elevator example 18.2.3
Generalize the expectation list 18.2.4 Limit the expectations 18.3 Limitations
Need Not Be Limiting 18.3.1 The wheelchair example 18.3.2 Keeping possibilities
open 18.3.3 Include the source of the limitation 18.4 Helpful Hints
and Variations 18.5 Summary Part V: Greatly Improving
the Odds of Success 19. Ambiguity Metrics 19.1 Measuring
Ambiguity 19.1.1 Using the ambiguity poll 19.1.2 Applying the polling
method 19.1.3 Polling on different bases 19.2 Using the Metric as a
Test 19.2.1 Measuring three kinds of ambiguity 19.2.2 Interpreting the
results 19.2.3 Information from clustering 19.2.4 Choosing the group
to be polled 19.3 Helpful Hints and Variations 19.4 Summary 20.
Technical Reviews 20.1 A Walkover Example 20.2 The Role
of Technical Reviews 20.2.1 Formal and informal reviews 20.2.2 Technical
reviews versus project reviews 20.3 Review Reports 20.3.1 Need for
review reports 20.3.2 Creating the issues list 20.3.3 Technical review
summary report 20.4 Principal Types of Review 20.4.1 Vanilla reviews
20.4.2 Inspections 20.4.3 Walkthroughs 20.4.4 Round robin reviews 20.5
Real Versus Ideal Reviews 20.6 Helpful Hints and Variations 20.7 Summary 21.
Measuring Satisfaction 21.1 Creating a User Satisfaction Test 21.1.1
Test attributes 21.1.2 A custom test for each project 21.2 Using the
Test 21.2.1 Benefits 21.2.2 Plotting shifts and trends 21.2.3 Interpreting
the comments 21.2.4 Feelings are facts 21.3 Other Uses of the Test 21.3.1
A communication vehicle 21.3.2 Continue use throughout the project 21.3.3
Use by designers 21.4 Other Tests 21.4.1 Prototypes as satisfaction
tests 21.5 Helpful Hints and Variations 21.6 Summary 22.
Test Cases 22.1 Black Box Testing 22.1.1 External versus
internal knowledge 22.1.2 Constructing black box test cases 22.1.3 Testing
the test cases 22.2 Applying the Test Cases 22.2.1 Examples 22.2.2
Iterating tests and answers 22.2.3 Clearly specifying ambiguity 22.3
Documenting the Test Cases 22.4 Helpful Hints and Variations 22.5 Summary 23.
Studying Existing Products 23.1 Use of the Existing Product
as the Norm 23.2 Interviewing 23.2.1 What's missing in the new product?
23.2.2 Why is it missing? 23.2.3 What's missing in the old product? 23.2.4
What's missing in the old requirements? 23.3 Substituting Features for Functions
23.4 Helpful Hints and Variations 23.5 Summary 24. Making
Agreements 24.1 Where Decisions Come From 24.1.1 Choices,
assumptions, and impositions 24.1.2 Elevator design decision examples
24.1.3 Writing traceable requirements 24.2 Where False Assumptions Come
From 24.2.1 Lack of valid information 24.2.2 Invalidation over time
24.2.3 The turnpike effect 24.2.4 Requirements leakage 24.3 Converting
Decisions to Agreements 24.4 Helpful Hints and Variations 24.5 Summary 25.
Ending 25.1 The Fear of Ending 25.2 The Courage to End
It All 25.2.1 Automatic Design and Development 25.2.2 Hacking 25.2.3
Freezing requirements 25.2.4 The renegotiation process 25.2.5 The fear
of making assumptions explicit 25.3 The Courage to Be Inadequate 25.4
Helpful Hints and Variations 25.5 Summary Bibliography Index
Return
to Book Page
|