ebook img

Lean Architecture: For Agile Software Development PDF

378 Pages·2010·1.83 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Lean Architecture: For Agile Software Development

Lean Architecture for Agile Software Development James Coplien Gertrud Bjørnvig A John Wiley and Sons, Ltd, Publication Lean Architecture for Agile Software Development James Coplien Gertrud Bjørnvig A John Wiley and Sons, Ltd, Publication Thiseditionfirstpublished2010 2010JamesCoplienandGertrudBjørnvig Registeredoffice JohnWiley&SonsLtd,TheAtrium,SouthernGate,Chichester,WestSussex,PO198SQ,United Kingdom Fordetailsofourglobaleditorialoffices,forcustomerservicesandforinformationabouthowtoapply forpermissiontoreusethecopyrightmaterialinthisbookpleaseseeourwebsiteatwww.wiley.com. Therightoftheauthortobeidentifiedastheauthorofthisworkhasbeenassertedinaccordancewith theCopyright,DesignsandPatentsAct1988. Allrightsreserved.Nopartofthispublicationmaybereproduced,storedinaretrievalsystem,or transmitted,inanyformorbyanymeans,electronic,mechanical,photocopying,recordingor otherwise,exceptaspermittedbytheUKCopyright,DesignsandPatentsAct1988,withouttheprior permissionofthepublisher. Wileyalsopublishesitsbooksinavarietyofelectronicformats.Somecontentthatappearsinprint maynotbeavailableinelectronicbooks. Designationsusedbycompaniestodistinguishtheirproductsareoftenclaimedastrademarks.All brandnamesandproductnamesusedinthisbookaretradenames,servicemarks,trademarksor registeredtrademarksoftheirrespectiveowners.Thepublisherisnotassociatedwithanyproductor vendormentionedinthisbook.Thispublicationisdesignedtoprovideaccurateandauthoritative informationinregardtothesubjectmattercovered.Itissoldontheunderstandingthatthepublisher isnotengagedinrenderingprofessionalservices.Ifprofessionaladviceorotherexpertassistanceis required,theservicesofacompetentprofessionalshouldbesought. QuotesfromTheClockoftheLongNow:TimeandResponsibility–TheIdeasBehindtheWorld’sSlowest ComputerareCopyright2000StewartBrand.ReprintedbypermissionofBasicBooks,amemberof thePerseusBooksGroup. AcataloguerecordforthisbookisavailablefromtheBritishLibrary. ISBN978-0-470-68420-7 Typesetin11/13PalatinobyLaserwordsPrivateLimited,Chennai,India. PrintedinGreatBritainbyTJInternational,Padstow,Cornwall Dedication To Trygve Mikkjel Heyerdahl Reenskaug, also a grandfather Publisher’s Acknowledgments Some of the people who helped bring this book to market include the following: EditorialandProduction VPConsumerandTechnologyPublishingDirector:MichelleLeete AssociateDirector–BookContentManagement:MartinTribe AssociatePublisher:ChrisWebb ExecutiveCommissioningEditor:BirgitGruber AssistantEditor:ColleenGoldring PublishingAssistant:EllieScott ProjectEditor:JulietBooker ContentEditor:NicoleBurnett CopyEditor:RichardWalshe Marketing: SeniorMarketingManager:LouiseBreinholt MarketingExecutive:KateBatchelor CompositionServices: Compositor:LaserwordsPrivateLimited,Chennai,India ProofReader:AlexGrey Indexer:AnnetteMusker Contents AbouttheAuthors xii Preface xiii 1 Introduction 1 1.1 TheTouchstones:LeanandAgile 1 1.2 LeanArchitectureandAgileFeatureDevelopment 4 1.3 AgileProduction 7 1.3.1 AgileBuildsonLean 7 1.3.2 TheScopeofAgileSystems 8 1.3.3 AgileandDCI 9 1.4 TheBookinaVerySmallNutshell 10 1.5 LeanandAgile:ContrastingandComplementary 11 1.5.1 TheLeanSecret 14 1.6 LostPractices 14 1.6.1 Architecture 15 1.6.2 HandlingDependenciesbetweenRequirements 15 1.6.3 Foundat ionsforUsability 16 1.6.4 Documentation 16 CodeDoesNotStandAlone 17 Capturingthe‘‘Why’’ 19 1.6.5 CommonSense,Thinking,andCaring 19 1.7 WhatthisBookisNotAbout 21 1.8 Agile,Lean–Oh,Yeah,andScrumandMethodologiesandSuch 22 1.9 HistoryandSuch 24 2 AgileProduction inaNutshell 27 2.1 EngagetheStakeholders 27 2.2 DefinetheProblem 29 2.3 FocusingonWhattheSystemIs:TheFoundationsofForm 30 2.4 FocusingonWhattheSystemDoes:TheSystemLifeblood 32 2.5 DesignandCode 33 2.6 Countdown:3,2,1... 34 v vi Contents 3 Stakeholder Engagement 35 3.1 TheValueStream 35 3.1.1 EndUsersandOtherStakeholdersasValueStreamAnchors 36 3.1.2 ArchitectureintheValueStream 37 3.1.3 TheLeanSecret 38 3.2 TheKeyStakeholders 41 3.2.1 EndUsers 43 PsychingOuttheEndUsers 44 Don’tForgetBehavior 46 TheEndUserLandscape 47 3.2.2 TheBusiness 47 ASpecialNoteforManagers 48 3.2.3 Customers 50 ...AsContrastedwithEndUsers 50 ‘‘Customers’’intheValueStream 52 3.2.4 DomainExperts 52 NoIvoryTowerArchitects 53 ExpertsinBothProblemandSolutionDomains 54 3.2.5 DevelopersandTesters 55 3.3 ProcessElementsofStakeholderEngagement 57 3.3.1 GettingStarted 58 3.3.2 CustomerEngagement 60 3.4 TheNetworkofStakeholders:TrimmingWastedTime 61 3.4.1 StovepipeVersusSwarm 61 3.4.2 TheFirstThingYouBuild 64 3.4.3 KeeptheTeamTogether 65 3.5 NoQuickFixes,butSomeHope 66 4 Problem Definition 67 4.1 What’sAgileaboutProblemDefinitions? 68 4.2 What’sLeanaboutProblemDefinitions? 68 4.3 GoodandBadProblemDefinitions 70 4.4 ProblemsandSolutions 72 4.5 TheProcessAroundProblemDefinitions 73 4.5.1 ValuetheHuntOverthePrize 73 4.5.2 ProblemOwnership 74 4.5.3 CreepingFeaturism 75 4.6 ProblemDefinitions,Goals,Charters,Visions,andObjectives 76 4.7 Documentation? 77 5 WhattheSystemIs,Part1:LeanArchitecture 79 5.1 SomeSurprisesaboutArchitecture 80 5.1.1 What’sLeanaboutThis? 82 Deliberationand‘‘Pull’’ 83 Failure-ProofConstraintsorPoka-Yoke 83 TheLeanMantrasofConservation,Consistency,andFocus 84 5.1.2 What’sAgileaboutArchitecture? 84 It’sAllAboutIndividualsandInteractions 84 Contents vii PastExcesses 85 DispellingaCoupleofAgileMyths 86 5.2 TheFirstDesignStep:Partitioning 88 5.2.1 TheFirstPartition:DomainFormVersusBehavioralForm 89 5.2.2 TheSecondPartitioning:Conway’sLaw 90 5.2.3 TheRealComplexityofPartitioning 93 5.2.4 DimensionsofComplexity 94 5.2.5 Domains:AParticularlyInterestingPartitioning 94 5.2.6 BacktoDimensionsofComplexity 96 5.2.7 ArchitectureandCulture 100 5.2.8 Wrap-UponConway’sLaw 100 5.3 TheSecondDesignStep:SelectingaDesignStyle 100 5.3.1 ContrastingStructuringwithPartitioning 102 5.3.2 TheFundamentalsofStyle:CommonalityandVariation 104 5.3.3 StartingwithTacitCommonalityandVariation 105 5.3.4 Commonality,Variation,andScope 108 5.3.5 MakingCommonalitiesandVariationsExplicit 111 CommonalityCategories 112 NextSteps 114 5.3.6 TheMostCommonStyle:ObjectOrientation 114 JustWhatisObjectOrientation? 115 5.3.7 OtherStyleswithintheVonNeumannWorld 117 5.3.8 Domain-SpecificLanguagesandApplicationGenerators 120 TheStateoftheArtinDSLs 121 DSLs’PlaceinArchitecture 121 5.3.9 CodifiedForms:PatternLanguages 122 5.3.10 Third-PartySoftwareandOtherParadigms 124 5.4 Documentation? 127 5.4.1 TheDomainDictionary 128 5.4.2 ArchitectureCarryover 128 5.5 HistoryandSuch 129 6 WhattheSystemIs,Part2:Coding ItUp 131 6.1 TheThirdStep:TheRoughFramingoftheCode 131 6.1.1 AbstractBaseClasses 133 6.1.2 Pre-Conditions,Post-Conditions,andAssertions 137 StaticCling 142 6.1.3 AlgorithmicScaling:TheOtherSideofStaticAssertions 144 6.1.4 FormVersusAccessibleServices 146 6.1.5 Scaffolding 147 6.1.6 TestingtheArchitecture 149 UsabilityTesting 149 ArchitectureTesting 149 6.2 RelationshipsinArchitecture 153 6.2.1 KindsofRelationship 153 6.2.2 TestingtheRelationships 155 6.3 NotYourOldProfessor’sOO 155 6.4 HowmuchArchitecture? 159

Description:
More and more Agile projects are seeking architectural roots as they struggle with complexity and scale - and they're seeking lightweight ways to do itStill seeking? In this book the authors help you to find your own pathTaking cues from Lean development, they can help steer your project toward p
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.