Extreme Programming Explained: Embrace Change

3y ago
35 Views
6 Downloads
511.78 KB
46 Pages
Last View : 1d ago
Last Download : 3m ago
Upload by : Elise Ammons
Transcription

Praise for Extreme Programming Explained, Second Edition“In this second edition of Extreme Programming Explained, Kent Beck organizes and presents five years’ worth of experiences, growth, and change revolving around XP. If you are seriously interested in understanding how you andyour team can start down the path of improvement with XP, you must readthis book.”—Francesco Cirillo, Chief Executive Officer, XPLabs S.R.L.“The first edition of this book told us what XP was—it changed the way manyof us think about software development. This second edition takes it fartherand gives us a lot more of the ‘why’ of XP, the motivations and the principlesbehind the practices. This is great stuff. Armed with the ‘what’ and the ‘why,’we can now all set out to confidently work on the ‘how’: how to run ourprojects better, and how to get agile techniques adopted in our organizations.”—Dave Thomas, The Pragmatic Programmers LLC“This book is dynamite! It was revolutionary when it first appeared a few yearsago, and this new edition is equally profound. For those who insist on cookbook checklists, there’s an excellent chapter on ‘primary practices,’ but I urgeyou to begin by truly contemplating the meaning of the opening sentence inthe first chapter of Kent Beck’s book: ‘XP is about social change.’ You shoulddo whatever it takes to ensure that every IT professional and every IT manager—all the way up to the CIO—has a copy of Extreme ProgrammingExplained on his or her desk.”—Ed Yourdon, author and consultant“XP is a powerful set of concepts for simplifying the process of softwaredesign, development, and testing. It is about minimalism and incrementalism,which are especially useful principles when tackling complex problems thatrequire a balance of creativity and discipline.”—Michael A. Cusumano, Professor, MIT Sloan School of Management, andauthor of The Business of Software“Extreme Programming Explained is the work of a talented and passionatecraftsman. Kent Beck has brought together a compelling collection of ideasabout programming and management that deserves your full attention. Myonly beef is that our profession has gotten to a point where such commonsense ideas are labeled ‘extreme.’ . . .”—Lou Mazzucchelli, Fellow, Cutter Business Technology Council

“If your organization is ready for a change in the way it develops software,there’s the slow incremental approach, fixing things one by one, or the fasttrack, jumping feet first into Extreme Programming. Do not be frightened bythe name, it is not that extreme at all. It is mostly good old recipes and common sense, nicely integrated together, getting rid of all the fat that has accumulated over the years.”—Philippe Kruchten, UBC, Vancouver, British Columbia“Sometimes revolutionaries get left behind as the movement they started takeson a life of its own. In this book, Kent Beck shows that he remains ahead ofthe curve, leading XP to its next level. Incorporating five years of feedback, thisbook takes a fresh look at what it takes to develop better software in less timeand for less money. There are no silver bullets here, just a set of practical principles that, when used wisely, can lead to dramatic improvements in softwaredevelopment productivity.”—Mary Poppendieck, author of Lean Software Development: An Agile Toolkit“Kent Beck has revised his classic book based on five more years of applying andteaching XP. He shows how the path to XP is both easy and hard: It can bestarted with fewer practices, and yet it challenges teams to go farther than ever.”—William Wake, independent consultant“With new insights, wisdom from experience and clearer explanations of theart of Extreme Programming, this edition of Beck’s classic will help many realize the dream of outstanding software development.”—Joshua Kerievsky, author, Refactoring to Patterns, and Founder, IndustrialLogic, Inc.“XP has changed the way our industry thinks about software development. Itsbrilliant simplicity, focused execution, and insistence on fact-based planningover speculation have set a new standard for software delivery.”—David Trowbridge, Architect, Microsoft Corporation

Extreme ProgrammingExplainedSecond Edition

The XP SeriesKent Beck, Series AdvisorExtreme Programming, familiarly known as XP, is a discipline of the businessof software development that focuses the whole team on common, reachablegoals. Using the values and principles of XP, teams apply appropriate XP practices in their own context. XP practices are chosen for their encouragement ofhuman creativity and their acceptance of human frailty. XP teams producequality software at a sustainable pace.One of the goals of XP is to bring accountability and transparency to softwaredevelopment, to run software development like any other business activity.Another goal is to achieve outstanding results—more effective and efficientdevelopment with far fewer defects than is currently expected. Finally, XP aimsto achieve these goals by celebrating and serving the human needs of everyonetouched by software development—sponsors, managers, testers, users, andprogrammers.The XP series exists to explore the myriad variations in applying XP. While XPbegan as a methodology addressing small teams working on internal projects,teams worldwide have used XP for shrink-wrap, embedded, and large-scaleprojects as well. The books in the series describe how XP applies in these andother situations, addressing both technical and social concerns.Change has come to software development. However, change can be seen asan opportunity, not a threat. With a plan for change, teams can harness thisopportunity to their benefit. XP is one such plan for change.Titles in the SeriesExtreme Programming Applied: Playing to Win, Ken Auer and Roy MillerExtreme Programming Explained, Second Edition: Embrace Change, Kent Beckwith Cynthia AndresExtreme Programming Explored, William C. WakeExtreme Programming for Web Projects, Doug Wallace, Isobel Raggett,and Joel AufgangExtreme Programming Installed, Ron Jeffries, Ann Anderson, and Chet HendricksonPlanning Extreme Programming, Kent Beck and Martin FowlerTesting Extreme Programming, Lisa Crispin and Tip HouseFor more information, check out the series Web site at www.awprofessional.com/series/XP

Extreme ProgrammingExplainedSecond EditionEmbrace ChangeKent Beckwith Cynthia AndresBoston

The author and publisher have taken care in the preparation of this book, but make no expressed orimplied warranty of any kind and assume no responsibility for errors or omissions. No liability isassumed for incidental or consequential damages in connection with or arising out of the use of theinformation or programs contained herein.Publisher: John WaitEditor in Chief: Don O’HaganAcquisitions Editor: Paul PetraliaManaging Editor: John FullerProject Editors: Julie Nahil and Kim Arney MulcahyCompositor: Kim Arney MulcahyManufacturing Buyer: Carol MelvilleThe publisher offers excellent discounts on this book when ordered in quantity for bulk purchases orspecial sales, which may include electronic versions and/or custom covers and content particular toyour business, training goals, marketing focus, and branding interests. For more information, pleasecontact:U. S. Corporate and Government Sales(800) 382-3419corpsales@pearsontechgroup.comFor sales outside the U. S., please contact:International Salesinternational@pearsoned.comVisit us on the Web: www.awprofessional.comLibrary of Congress Cataloging-in-Publication DataBeck, Kent.extreme programming explained: embrace change / Kent Beck with Cynthia Andres. — 2nd ed.p. cm.Includes bibliographical references and index.ISBN 0-321-27865-8 (alk. paper)1. Computer software—Development. 2. eXtreme programming. I. Title.QA76.76.D47B434 2004005.1—dc222004057463Text copyright 2005 Pearson Education, Inc.Inside cover art copyright 2004 by Kent BeckAll rights reserved. Printed in the United States of America. This publication is protected by copyright,and permission must be obtained from the publisher prior to any prohibited reproduction, storage in aretrieval system, or transmission in any form or by any means, electronic, mechanical, photocopying,recording, or likewise. For information regarding permissions, write to:Pearson Education, Inc.Rights and Contracts DepartmentOne Lake StreetUpper Saddle River, NJ 07458Many of the designations used by manufacturers and sellers to distinguish their products are claimed astrademarks. Where those designations appear in this book and we were aware of a trademark claim, thedesignations have been printed in initial caps or all caps.ISBN 0-321-27865-8Text printed in the United States on recycled paper at Courier in Stoughton, Massachusetts.Text printed in the United States on recycled paper at Courier in Westford, Massachusetts.Tenth printing, January 2012

To CindeeWithout you, this book would still be about programmers hiding in acorner. Without you, I would still be one of those programmers.

This page intentionally left blank

Note To ProgrammersEven programmers can be whole people in the real world. XP is anopportunity to test yourself, to be yourself, to realize that maybe you’vebeen fine all along and just hanging with the wrong crowd.

This page intentionally left blank

ContentsForeword to the Second Edition . xvForeword to the First Edition . xviiPreface . xxiChapter 1Section 1What is XP? .1Exploring XP .9Chapter 2Learning to Drive .11Chapter 3Values, Principles, and Practices .13Chapter 4 Values .17Communication .18Simplicity .18Feedback .19Courage .20Respect .21Others .21Chapter 5 Principles .23Humanity .24Economics .25Mutual Benefit .26xi

Self-Similarity .27Improvement .28Diversity .29Reflection .29Flow .30Opportunity .30Redundancy .31Failure .32Quality .32Baby Steps .33Accepted Responsibility .34Chapter 6Practices .35Chapter 7 Primary Practices .37Sit Together .37Whole Team .38Informative Workspace .39Energized Work .41Pair Programming .42Stories .44Weekly Cycle .46Quarterly Cycle .47Slack .48Ten-Minute Build .49Continuous Integration .49Test-First Programming .50Incremental Design .51Chapter 8Getting Started .55Chapter 9 Corollary Practices .61Real Customer Involvement .61Incremental Deployment .62Team Continuity .63Shrinking Teams .64Root-Cause Analysis .64Shared Code .66Code and Tests .66Single Code Base .67xiiContents

Daily Deployment .68Negotiated Scope Contract .69Pay-Per-Use .69Chapter 10 The Whole XP Team .73Testers .74Interaction Designers .75Architects .75Project Managers .76Product Managers .77Executives .78Technical Writers .80Users .81Programmers .81Human Resources .81Roles .82Chapter 11The Theory of Constraints .85Chapter 12Planning: Managing Scope .91Chapter 13Testing: Early, Often, and Automated .97Chapter 14 Designing: The Value of Time .103Simplicity .109Chapter 15 Scaling XP .111Number of People .111Investment .113Size of Organization .113Time .114Problem Complexity .115Solution Complexity .115Consequences of Failure .116Chapter 16Interview .119Section 2Philosophy of XP .123Chapter 17Creation Story .125Chapter 18Taylorism and Software .131Contentsxiii

Chapter 19Toyota Production System .135Chapter 20 Applying XP .139Choosing a Coach .143When You Shouldn’t Use XP .144Chapter 21 Purity .145Certification and Accreditation .146Chapter 22Offshore Development .149Chapter 23The Timeless Way of Programming .153Chapter 24Community and XP .157Chapter 25Conclusion .159Annotated Bibliography .161Index .175xivContents

Foreword tothe Second EditionWow—the second edition. I cannot believe that five years have alreadypassed since the appearance of the first edition. When Kent pinged meto write a foreword to the second edition I asked him for a manuscriptversion with change bars. What a silly request—the book is a fullrewrite! In the second edition of XP Explained Kent revisits XP andapplies the XP paradigm—stay aware, adapt, change—to XP itself. Kenthas revisited, cleaned-up, and refactored every bit of XP Explained andintegrated many new insights. The result is XP Explained even betterexplained!This is an excellent opportunity to reflect on how XP has influencedmy own software development. Shortly after the first edition of XPExplained I became involved in the Eclipse project and it is nowabsorbing all my software energy. Eclipse isn’t run under the pure XPflag. We follow agile practices; however, the XP influences are easy tospot. The most obvious one is that we have encoded several XP practices directly into our tool. Refactoring, unit testing, and immediatefeedback as you code are now an integral part of our toolset. Moreover,since we are “eating our own dog food” we use these practices in ourday-to-day development. Even more interesting are the XP influencesone can spot in our development process. Eclipse is an open sourceproject and one of our goals is to practice completely transparent development. The rationale is simple; if you don’t know where the project isgoing you cannot help out or provide feedback. XP practices help us toachieve this goal.xv

Here is how we apply some of these practices: Testing early, often and automated—To get a green check markfor our latest builds more than 21,000 unit tests have to pass.Incremental design—We invest in the design every day, but we havethe additional constraint that we need to keep our APIs stable.Daily deployment—Components deploy their code at least onceper day and develop on top of the deployed code to get immediate feedback and to catch problems early.Customer involvement—We are lucky to have an active user community that isn’t shy and provides us with continuous feedback.We listen and do our best to be responsive.Continuous integration—The latest code is built every night. Thenightly builds provide us with insights about cross-componentintegration problems. Once per week we do an integra

Extreme Programming, familiarly known as XP, is a discipline of the business of software development that focuses the whole team on common, reachable goals. Using the values and principles of XP, teams apply appropriate XP prac-tices in their own context. XP practices are chosen for their encouragement of

Related Documents:

Extreme Programming John T. Bell Department of Computer Science University of Illinois, Chicago Prepared for CS 442, Spring 2017 2 Sources 1. Wikipedia: Extreme Programming 2. Wikipedia: Extreme Programming Practices 3. Wikipedia: Kent Beck 4. Kent eck and ynthia Andres, “Extreme Programming Explained: Embrace hange”, 2nd Edition 5.

Extreme Programming Extreme Programming (XP) takes commonsense software engineering principles and practices to extreme levels For instance “Testing is good?” then “We will test every day” and “We will write test cases before we code” As Kent Beck says extreme programming takes

Extreme Programming: A Gentle Introduction. Extreme Programming: A gentle introduction. The goal of this site is to provide an introduction and overview of Extreme Programming (XP). For a guided tour of XP follow the trail of little buttons, starting here. Returning visitors can jump to recent changes to see what's new.

Page 1 of 12 EXTREME PROGRAMMING 2.1 Extreme programming (XP) is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development,[1][2][3] it advocates frequent "releases" in short development cycles, which is intended to improve productivity

A majority ofArizona voters say that wildfires (84%), heat waves (79%), and drought (74%) have become at least somewhat more extreme in the past 3-5 years. 38% 36% 29% 36% 26% 43% 21% 55% 16% Drought Heat waves Wildfires Much more extreme Somewhat more extreme Not changed much at all Somewhat less extreme Much less extreme Perceptions of .

In agile methods, especially eXtreme Programming, a metaphor of the project is developed to help guide a team toward a good architecture and a clearer way to discuss the structure of the software with the client. For more information, read Kent Beck's Extreme Programming Explained [Addison-Wesley, 1999, Ch. 10] or look at web links.

Extreme Programming Waterfall model inspired by civil engineering Civil engineering metaphor is not perfect – Software is more organic than concrete – You “grow the software” to meet changing requirements Extreme Programming (XP) addresses this – An iterative model – Recommended reading: “Extreme Software Engineering.

approaches to the subject of reconstruction in archaeological illustration, and other media i.e. films. Method(s) of teaching: The module comprises: A weekly practical session (2hrs) where tutor will introduce different materials and recorded graphic data to be drawn. 1 x lecture Visit and meet with archaeological illustrators and graphic designers in their workplace Method of assessment: The .