Agile Development & Business Goals The Six Week Solution Bill Holtsnider Tom Wheeler George Stragand Joseph Gee AMSTERDAM BOSTON HEIDELBERG LONDON NEW YORK OXFORD PARIS SAN DIEGO SAN FRANCISCO SINGAPORE SYDNEY TOKYO Morgan Kaufmann Publishers is an imprint of Elsevier
Complete Contents Preface xiii Who Is This Book Written For? xiii Chapter Summary Acknowledgments xiv xvi CHAPTER 1 : Ask Yourself These 10 Key Questions 1 2 Ten Questions to Ask about Your Software Development Process 2 Why Listen to us? 7 CHAPTER 2 The Problem: Why Software Projects Fail 11 12 Historical Perspective 12 The Scope of Software 12 Software Development Often Fails 14 The Need for Process 14 A Common Question 15 Software Development Is Hard Very Hard 17 Why Other Agile Methodologies Often Fail 19 Why Waterfall Processes Often Fail 19 High Visibility 24 Death March 24 Man in a Room 26 The Rogue Developer 27 "Are You Done Yet?" 27 Budget Black Hole 27 Why the Six Week Solution Is Different 28 CHAPTER 3 Expectations: What It Means for Software to Succeed 31 32 Software Development Sometimes (Accidentally) Succeeds 32 Is Aligned with Business Needs 32 Manages the Cost of Change 33 Is Built in an Automated Way 33 Factors Quality into the Core of the Process 33 Is Not Constantly Being Redeployed 34 Progress Is Constantly Being Made 34 Delivers Something of Value 34 ix
x Complete Contents Is Evangelical Is Predictable Is Both Tactical and Strategic Is Game Changing Allows Management to Stay Informed Is Measurable CHAPTER 4 Overview of the Six Week Solution 37 Additional Problems Components of Agile Alignment Why Six Weeks? 41 Cycle Commitments 45 Developer Compensation: COD 45 Six Week Iterations Time Boxing Development: Key Deadlines 48 Week 1: Cycle Kickoff 48 Week 3: Mea Culpa Week 6: Testing Steering with Business Goals CHAPTER 5 The Solution's Critical Pieces The Big Game 58 The Entire Company Must Buy In 59 Work Space Personnel Roles Hiring Smart 73 Compensation Development Tools 81 Cycle Commitments 83 CHAPTER 6 Managing the Cost of Change 89 Flattening the Curve with Feedback Loops Avoiding the Curve by Managing the Unknown 98 Lowering the Curve by Increasing Productivity 108 Providing Effective Tools 108 Languages and Tooling Buy, Don't Build 110 34 36 38 39 41 46 51 52 53 57 58 62 67 79 90 90 109
Complete Contents xi Effective Communication 110 Gauging Performance with Pairs 116 CHAPTER 7 Assuring Software Quality... 117 118 The Value of Quality 118 External Software Quality 123 Internal Software Quality 125 Symptoms of Design Rot 128 Quality and Software Craftsmanship 129 Size of Work Pieces 131 Unit Testing 132 CHAPTER 8 Integrating Automation into Your Development Process 1 136 Continuous Integration 138 Build Process 142 Metrics 143 Automation Tools 149 CHAPTER 9 Other Software Development Approaches 161 162 Simplified Evolution of Software Processes 164 CHAPTER 10 Risks with Using This Approach 177 178 Workplace Challenges 178 Work Environment 179 Why This Is Not a Risk 179 Risk: Abandoning Quality for Bonuses 188 Management Challenges 189 Quality Concerns 195 Design Debt 196 Hard to Transition 197 Smaller but Still Potentially Problematic Risks 198 CHAPTER 11 Transitioning to the Six Week Solution 203 204 Before You Do Anything, Though 204 Automate the Build 204 Selling This Idea up the Chain 205 Selling It to Sales and Marketing 206
xii Complete Contents Determine Your Aggressiveness on Cycles and Compensation 207 Set Expectations from the Start 208 Pick the Date for the Cutover 209 Use the Language of the Process 210 Transitioning the Development Team 210 Creating the Baseline Your First Six Week Cycle 212 CHAPTER 12 Conclusions 213 214 Aligns Software Development with Business Needs 214 Developers Are Compensated Based on Their Performance 214 Addresses Both Core Business and Core Technical Components 214 Simple to Describe to Everyone in the Company 214 Designed from the Ground Up to Produce Revenue-Generating Software 215 Ties Directly into Your Investment in Your Software Development 215 Accounts Directly for Quality 215 Allows You to Hit Your Short-Term Goals While Addressing Your Long-Term Goals at the Same Time 216 Rewards Success and Penalizes Failure 216 What to Do Next 216 Glossary 217 Sources 225