Author(s): Rob Nagler
Year: 2009
Language: English
Pages: 194
Preface......Page 9
The Problem......Page 15
Risk Averse Methodologies......Page 16
Fostering Failure......Page 17
Get Me a Rock......Page 18
Requirements Risk......Page 19
Let's Rock And Roll......Page 20
Extreme Programming......Page 21
Core Values......Page 22
Simplicity......Page 23
Feedback......Page 25
Courage......Page 26
The Practices......Page 27
Adopting XP......Page 28
Core Values......Page 31
Customer-Orientation......Page 32
Organizing Your Workshop......Page 33
Release Planning......Page 35
Roles......Page 36
On-site Customer......Page 37
Story Cards......Page 38
Dead Wood......Page 40
Easing Estimation......Page 42
Spike Solutions......Page 43
Prioritization......Page 44
Small Releases......Page 45
Tasks......Page 47
The Meeting......Page 48
Velocity......Page 49
Customer Priorities......Page 50
The Beat Goes on......Page 51
Quality......Page 53
How It Works......Page 54
People Problems......Page 55
Different Strokes......Page 57
Gumption Traps......Page 58
Reducing Risk Through Knowledge Transfer......Page 59
Tracking......Page 61
Don't Slip the Date......Page 62
The Tracker......Page 63
Release Tracking......Page 64
What Goes Wrong?......Page 65
Fixing Troubled Projects......Page 68
Show Your Stuff......Page 69
Here and Now......Page 70
Acceptance Tests......Page 71
I'm Gonna Buy Me a Dog I want to go on record that I do not promote buying animals in stores. Buy animals from a reputable breeder, or better yet, adopt a pet from your local animal shelter.......Page 72
Group Multiple Paths......Page 74
Without Deviation, Testing Is Incomplete......Page 75
Subject Matter Oriented Programming......Page 77
Data-Driven Testing......Page 78
Empower The Customer to Test......Page 80
Coding Style......Page 81
Give Me Consistency or Give Me Death......Page 82
Team Colors......Page 83
An Example......Page 84
You Say, ``if else'', And I Say, ``? :''......Page 86
Refactored Example......Page 87
Change Log......Page 89
Input Validation......Page 92
You'd Rather Die......Page 93
Logistics......Page 95
Test-Driven Design......Page 97
Test First, By Intention......Page 98
Test Things That Might Break......Page 100
Satisfy The Test, Don't Trick It......Page 101
Test Base Cases First......Page 102
Choose Self-Evident Data......Page 103
Use The Algorithm, Luke!......Page 104
Fail Fast......Page 105
Deviance Testing......Page 106
Only Test The New API......Page 107
Solid Foundation......Page 108
Continuous Design......Page 109
Refactoring......Page 110
SMA Unit Test......Page 111
SMA Implementation......Page 112
Move Common Features to a Base Class......Page 114
Refactor the Unit Tests......Page 116
Fixing a Defect......Page 117
Global Refactoring......Page 119
Continuous Rennovation in the Real World......Page 122
Simplify Accessors......Page 123
Change Happens......Page 124
Testing Isn't Hard......Page 125
Make Assumptions......Page 126
Test Data Dependent Algorithms......Page 127
Validate Basic Assumptions First......Page 128
Validate Using Implementation Knowledge......Page 129
Distinguish Error Cases Uniquely......Page 130
Avoid Context Sensitive Returns......Page 131
Perturb One Parameter per Deviance Case......Page 132
Relate Results When You Need To......Page 133
Order Dependencies to Minimize Test Length......Page 134
Consistent APIs Ease Testing......Page 135
Inject Failures......Page 136
Mock Objects......Page 137
Does It Work?......Page 139
Refactoring......Page 141
Remove Unused Code......Page 142
Refactor Then Fix......Page 143
Consistent Names Ease Refactoring......Page 145
Generate Repetitive Code......Page 146
Fix Once and Only Once......Page 147
Tactics Versus Strategy......Page 148
Refactor With a Partner......Page 149
Sharing with Code References......Page 152
Refactoring Illuminates Fixes......Page 153
Brush and Floss Regularly......Page 155
The Problem......Page 157
Planning Game......Page 158
Dividing the Story into Tasks......Page 159
Simple Design......Page 160
Imperative versus Declarative......Page 161
Test First, By Intention......Page 163
Statelessness......Page 164
XML::Parser......Page 165
First SMOP......Page 166
First Interpreter......Page 167
Functional Programming......Page 168
May I, Please?......Page 169
Second Task......Page 170
Unit Test Maintenance......Page 171
Second SMOP......Page 172
Second SMOP Interpreter......Page 173
Third Task......Page 174
Third SMOP Interpreter......Page 176
Fourth Task......Page 178
Fourth SMOP......Page 180
Fourth SMOP Interpreter......Page 181
Object-Oriented Programming......Page 182
Virtual Pair Programming......Page 183
Open Source Development with XP......Page 184
Deviance Testing......Page 185
Final Implementation......Page 186
Separate Concerns......Page 191
Travel Light......Page 192