Table of Contents
Foreword xiii Preface xix
Acknowledgments xxiii
About the Author xxix
On the Cover xxxi
Pre-Requisite Introduction 1
Chapter 1: Professionalism 7
Be Careful What You Ask For 8
Taking Responsibility 8
First, Do No Harm 11
Work Ethic 16
Bibliography 22
Chapter 2: Saying No 23
Adversarial Roles 26
High Stakes 29
Being a “Team Player” 30
The Cost of Saying Yes 36
Code Impossible 41
Chapter 3: Saying Yes 45
A Language of Commitment 47
Learning How to Say “Yes” 52
Conclusion 56
Chapter 4: Coding 57
Preparedness 58
The Flow Zone 62
Writer’s Block 64
Debugging 66
Pacing Yourself 69
Being Late 71
Help 73
Bibliography 76
Chapter 5: Test Driven Development 77
The Jury Is In 79
The Three Laws of TDD 79
What TDD Is Not 83
Bibliography 84
Chapter 6: Practicing 85
Some Background on Practicing 86
The Coding Dojo 89
Broadening Your Experience 93
Conclusion 94
Bibliography 94
Chapter 7: Acceptance Testing 95
Communicating Requirements 95
Acceptance Tests 100
Conclusion 111
Chapter 8: Testing Strategies 113
QA Should Find Nothing 114
The Test Automation Pyramid 115
Conclusion 119
Bibliography 119
Chapter 9: Time Management 121
Meetings 122
Focus-Manna 127
Time Boxing and Tomatoes 130
Avoidance 131
Blind Alleys 131
Marshes, Bogs, Swamps, and Other Messes 132
Conclusion 133
Chapter 10: Estimation 135
What Is an Estimate? 138
PERT 141
Estimating Tasks 144
The Law of Large Numbers 147
Conclusion 147
Bibliography 148
Chapter 11: Pressure 149
Avoiding Pressure 151
Handling Pressure 153
Conclusion 155
Chapter 12: Collaboration 157
Programmers versus People 159
Cerebellums 164
Conclusion 166
Chapter 13: Teams and Projects 167
Does It Blend? 168
Conclusion 171
Bibliography 171
Chapter 14: Mentoring, Apprenticeship, and Craftsmanship 173
Degrees of Failure 174
Mentoring 174
Apprenticeship 180
Craftsmanship 184
Conclusion 185
Appendix A: Tooling 187
Tools 189
Source Code Control 189
IDE/Editor 194
Issue Tracking 196
Continuous Build 197
Unit Testing Tools 198
Component Testing Tools 199
Integration Testing Tools 200
UML/MDA 201
Conclusion 204
Index 205