The Art of Agile Development The Art of Agile Development James Shore and Shane Warden Beijing • Cambridge • Farnham • Köln • Sebastopol • Taipei • Tokyo The Art of Agile Development by James Shore and Shane Warden Copyright © 2008 James Shore and chromatic. All rights reserved. Printed in the United States of America. Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (http://safari.oreilly.com). For more information, contact our corporate/institutional sales department: (800) 998-9938 or [email protected]. Editor: Mary O’Brien Indexer: Joe Wizda Production Editor: Sarah Schneider Cover Designer: Karen Montgomery Copyeditor: Sarah Schneider Interior Designer: David Futato Proofreader: Sada Preisch Illustrator: Robert Romano Printing History: October 2007: First Edition. The O’Reilly logo is a registered trademark of O’Reilly Media, Inc. The Theory in Practice series designations, The Art of Agile Development, and related trade dress are trademarks of O’Reilly Media, Inc. While every precaution has been taken in the preparation of this book, the publisher and authors assume no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein. TM This book uses RepKover™, a durable and flexible lay-flat binding. ISBN: 978-0-596-52767-9 [C] [1/10] 1263253177 To our families. Table of Contents Preface .......................................................................... xxiii Part I. Getting Started 1. Why Agile? ................................................................... 3 Understanding Success 3 Beyond Deadlines 4 The Importance of Organizational Success 5 Enter Agility 6 Organizational Success 6 Technical Success 7 Personal Success 7 2. How to Be Agile .............................................................. 9 Agile Methods 9 Don’t Make Your Own Method 9 The Road to Mastery 11 Find a Mentor 12 3. Understanding XP ......................................................... 15 The XP Lifecycle 17 How It Works 19 Our Story Continues 22 The XP Team 28 The Whole Team 28 On-Site Customers 29 Programmers 33 Testers 34 Coaches 35 Other Team Members 36 The Project Community 36 Filling Roles 39 Team Size 39 IX Full-Time Team Members 40 XP Concepts 40 Refactoring 41 Technical Debt 41 Timeboxing 41 The Last Responsible Moment 42 Stories 42 Iterations 42 Velocity 43 Theory of Constraints 43 Mindfulness 43 4. Adopting XP ................................................................ 45 Is XP Right for Us? 45 Prerequisite #1: Management Support 46 Prerequisite #2: Team Agreement 46 Prerequisite #3: A Colocated Team 47 Prerequisite #4: On-Site Customers 47 Prerequisite #5: The Right Team Size 49 Prerequisite #6: Use All the Practices 50 Recommendation #1: A Brand-New Codebase 51 Recommendation #2: Strong Design Skills 51 Recommendation #3: A Language That’s Easy to Refactor 52 Recommendation #4: An Experienced Programmer-Coach 52 Recommendation #5: A Friendly and Cohesive Team 53 Go! 53 The Challenge of Change 55 Final Preparation 56 Applying XP to a Brand-New Project (Recommended) 57 Applying XP to an Existing Project 59 Applying XP in a Phase-Based Organization 62 Extremities: Applying Bits and Pieces of XP 64 Assess Your Agility 65 Self-Assessment Quiz 67 Part II. Practicing XP 5. Thinking .................................................................... 73 Pair Programming 74 Why Pair? 75 How to Pair 75 Driving and Navigating 76 Pairing Stations 77 Challenges 78 Questions 79 Results 81 Contraindications 81 X TABLE OF CONTENTS
Description: