Foreword xv
Preface xxi
Acknowledgments xxv
About the Author xxxi
On the Cover xxxiii
Pre-Requisite Introduction
Chapter 1 Professionalism
Be Careful What You Ask For
Taking Responsibility
First, Do No Harm
Work Ethic
Bibliography
Chapter 2 Saying No
Adversarial Roles
High Stakes
Being a “Team Player”
The Cost of Saying Yes
Code Impossible
CONTENTS
CONTENTS
Chapter 3 Saying Yes
A Language of Commitment
Learning How to Say “Yes”
Conclusion
Chapter 4 Coding
Preparedness
The Flow Zone
Writer's Block
Debugging
Pacing Yourself
Being Late
Help
Bibliography
Chapter 5 Test Driven Development
The Jury Is In
The Three Laws of TDD
What TDD Is Not
Bibliography
Chapter 6 Practicing
Some Background on Practicing
The Coding Dojo
Broadening Your Experience
Conclusion
Bibliography
Chapter 7 Acceptance Testing
Communicating Requirements
Acceptance Tests
Conclusion
Chapter 8 Testing Strategies
QA Should Find Nothing
CONTENTS
The Test Automation Pyramid
Conclusion
Bibliography
Chapter 9 Time Management
Meetings
Focus-Manna
Time Boxing and Tomatoes
Avoidance
Blind Alleys
Marshes, Bogs, Swamps, and Other Messes
Conclusion
Chapter 10 Estimation
What Is an Estimate?
PERT
Estimating Tasks
The Law of Large Numbers
Conclusion
Bibliography
Chapter 11 Pressure
Avoiding Pressure
Handling Pressure
Conclusion
Chapter 12 Collaboration
Programmers versus People
Cerebellums
Conclusion
Chapter 13 Teams and Projects
Does It Blend?
Conclusion
Bibliography
CONTENTS
Chapter 14 Mentoring, Apprenticeship, and Craftsmanship
Degrees of Failure
Mentoring
Apprenticeship
Craftsmanship
Conclusion
Appendix A Tooling
Tools
Source Code Control
IDE/Editor
Issue Tracking
Continuous Build
Unit Testing Tools
Component Testing Tools
Integration Testing Tools
UML/MDA
Conclusion
Index