Agile Software Development Evaluating the Methods for Your Organization ForalistingofrecenttitlesintheArtechHouseComputingLibrary, turntothebackofthisbook. Agile Software Development Evaluating the Methods for Your Organization Alan S. Koch Artech House Boston • London www.artechhouse.com LibraryofCongressCataloging-in-PublicationData AcatalogrecordforthisbookisavailablefromtheU.S.LibraryofCongress. BritishLibraryCataloguinginPublicationData Koch,AlanS. EvaluatingAgilesoftwaredevelopment:Methodsforyourorganization.—(ArtechHousecomputinglibrary). 1.Computersoftware—Development 2.Computersoftware—Evaluation I.Title 005.1 ISBN1-58053-842-8 CoverdesignbyYekaterinaRatner “CMM®”and“CapabilityMaturityModel”areregisteredintheU.S.PatentandTrademarkOfficebyCarnegie MellonUniversity. SM“PSP,”“TSP,”“PersonalSoftwareProcess,”and“TeamSoftwareProcess”aresalesmarksofCarnegieMellon University. “PMBOKGuide”®and“ProjectManagementBodyofKnowledge”areregisteredtrademarksoftheProjectMan- agementInstitute. ©2005ARTECHHOUSE,INC. 685CantonStreet Norwood,MA02062 Allrightsreserved.PrintedandboundintheUnitedStatesofAmerica.Nopartofthisbookmaybereproduced orutilizedinanyformorbyanymeans,electronicormechanical,includingphotocopying,recording,orbyany informationstorageandretrievalsystem,withoutpermissioninwritingfromthepublisher. Alltermsmentionedinthisbookthatareknowntobetrademarksorservicemarkshavebeenappropriately capitalized.ArtechHousecannotattesttotheaccuracyofthisinformation.Useofaterminthisbookshouldnot beregardedasaffectingthevalidityofanytrademarkorservicemark. InternationalStandardBookNumber:1-58053-842-8 10987654321 Toyou,thewar-wearysoftwareprofessionalwhojustseeksarationalway todevelopsoftware. AndtoLaurie,mywife,whoalwaysbelievesinmeandsupportsmywork, evenwhenshewishesIwasplantingatree! . Contents Foreword by Kent Beck . . . . . . . . . xxi Foreword by Mark Paulk . . . . . . . . xxiii Preface . . . . . . . . . . . . . . xxvi Part I Adoption Considerations . . . . . . . . . 1 1 Introducing the Agile Methods . . . . . . . 3 Historicalandbackgroundinformation 3 TheAgilemethods,generally 4 Agility 5 Change 5 Planning 5 Communication 6 Learning 6 TheAgilemethods,specifically 7 Reference 8 2 Considering Your Organizational Culture . . . . 9 Hierarchicalversuscooperativeorganizations 9 Hierarchicalorganizations 10 Cooperativeorganizations 10 Considerations:Hierarchicalversuscooperative 10 Controllingchangeversusreactingtoit 11 Controllingchange 11 Reactingtochange 12 Considerations:Controllingversusreacting 12 Theroleoforganizationalculture 13 vii viii Contents 3 Considering Your Customers. . . . . . . . 15 Contractsandstatementsofwork 15 Establishingandchangingrequirements 16 Expectationsaboutcollaboration 18 Yourcustomers 19 4 Considering Your Projects . . . . . . . . 21 Sizeofprojectteams 21 Colocationofteammembers 22 Criticalityofprojects 23 Safetyandsecurityrequirements 24 Multipleteams 25 Subcontractors 26 Integrationwithhardwareandothersoftwarecomponents 26 5 Considering Your Tools and Processes . . . . 29 RequirementsManagement 29 ProjectManagement 31 ConfigurationManagement 32 Codecontrol 33 Documentcontrol 33 Baselinemaintenance 33 ConfigurationItemidentification 34 Changecontrol 34 Buildandreleasemanagement 34 Yourtoolsandprocesses 35 6 Considering Your Staff. . . . . . . . . . 37 Superstars 37 Changingworkpatterns 38 Makingchangesstick 39 Makingtherightchange 39 Buildingbuy-in 40 Changingtherewardsystem 41 Yourstaff 41 7 Using This Book to Make Your Adoption Decisions . 43 Structureofthisbook 43 The“EvaluatingAgileMethods”Workbook 45 Contents ix Evaluatingthepractices 46 Compilingtheresults 48 Finalsteps 49 Part II Value: “Individuals and Interactions over Processes and Tools”. . . . . . . . . . 51 8 About People, Processes, and Tools . . . . . 53 Peopleversusprocessesversustools 53 Theroleofpeople 54 Theroleofprocesses 55 Theroleoftools 57 Balancingpeople,process,andtools 58 9 Motivated Individuals and Self-Organizing Teams . 61 AgilePrinciples 61 Motivatedindividuals 61 Self-organizingteams 62 Agilepractices 62 AdaptiveSoftwareDevelopment 63 TheAdaptiveConceptualModel:Projectstakeholdersas independentagents 63 TheAdaptiveDevelopmentModel:Speculate:Projectinitiationand adaptiveplanning 63 TheAdaptive(Leadership-Collaboration)ManagementModel 64 DynamicSystemDevelopmentMethod(DSDM) 64 Principle2:DSDMteamsmustbeempoweredtomakedecisions 64 ExtremeProgramming(XP) 64 ThePlanningGame 64 Collectiveownership 65 Feature-DrivenDevelopment 65 Class(code)ownership 65 Featureteams 65 LeanSoftwareDevelopment(LD) 66 EmpowertheTeam:Tool13,Self-determination 66 EmpowertheTeam:Tool14,Motivation 66 Scrum 66 Scrumteams 66 Adoptionimplications 67 Trustingthetechnicalteam 67 Staffingwith“motivatedindividuals” 68