Extreme Programming Explored


E-Book Content

Extreme Programming Explored by William C. Wake [email protected] 804-934-8194 (w) Copyright 2000, William C. Wake, All Rights Reserved. To May, Tyler, and Fiona, with love. CONTENTS Preface Chapter 1 Introducing XP ...........................................1 Programming, team practices, and processes. Section 1: Programming Chapter 2 How do you program in XP? ..............11 XP uses incremental, test-first programming. Chapter 3 What is refactoring? ...............................29 “Refactoring: Improving the design of existing code.” —Martin Fowler Section 2: Team Practices Chapter 4 What are XP’s team practices? .........51 We’ll explore these practices and their alternatives. Chapter 5 What’s it like to program in pairs? ..65 Pair programming is exhausting but productive. Chapter 6 Where’s the architecture? ....................77 Architecture shows up in spikes, the metaphor, the first iteration, and elsewhere. Chapter 7 What is the system metaphor? ...........87 “The system metaphor is a story that everyone—customers, programmers, and managers—can tell about how the system works.” —Kent Beck Section 3: Process Chapter 8 How do you plan a release? What are stories like? ........................................101 Write stories, estimate stories, and prioritize stories. Chapter 9 How do you plan an iteration? ........115 Iteration planning can be thought of as a board game. Chapter 10 Customer, Programmer, Manager: What’s a typical day? ....................125 Customer: questions, tests, and steering; Programmer: testing, coding, and refactoring; Manager: project manager, tracker, and coach. Chapter 11 Conclusion ...............................................143 Chapter 12 Annotated Bibliography......................145 vi Preface Extreme Programming (XP) defines a process for developing software: it addresses the problem from early exploration to delivery. We’ll explore XP from the inside to the outside. First, XP is a programming discipline. We’ll look at a core innovation: how “test-first” changes the programming process itself. We’ll also discuss refactoring, the way XP programmers improve their code. Second, XP is a team discipline. It has evolved a number of practices that help produce a high-performing team. We’ll compare XP to alternative practices, and see some of them in action. Finally, XP is a discipline for working with customers. XP has specific processes for planning and daily activity. We’ll see how a team might schedule a release or iteration, and what the team does all day. Why read this book? If you’ve heard anything about Extreme Programming, you have probably had a number of questions about the mechanics or the purposes of various aspects of XP. I’ve tried to capture the questions I had, along with answers I’ve found. Several things about XP were surprises to me, particularly the tight cycle of test-first programming (only a couple minutes long), the use of a metaphor, and the starkness of the division of labor between customer and programmer. We’ll look at these, and many other topics. You, the reader, may have several areas of interest that bring you to this book: Java and object-oriented programming. The first section of the book uses Java examples to focus on test-first programming and refactoring. Programmers may find the discussion of team practices useful as well, particular the ideas about metaphors and simple design. ✧ Extreme programming, from the p
You might also like

Concise Algorithmics: The Basic Toolbox
Authors: Mehlhorn K. , Sanders P.    98    0



современный фортран
Authors: Бартеньев О.    188    0


Quantum Computing Explained
Authors: David McMahon    130    0


Algorithms For Computational Linguistics
Authors: Striegnitz K. , et al.    137    0


Algorithmic Game Theory
Authors: Noam Nisan , Tim Roughgarden , Eva Tardos , Vijay V. Vazirani    138    0


Adobe Golive 6.0
Authors: Adobe Creative Team    102    0


Xml Problem, Design, Solution
Authors: Mitch Amiano , Conrad D'Cruz , Kay Ethier , Michael D. Thomas    90    0