Adapting Configuration Management for Agile Teams
Balancing Sustainability and Speed
Häftad, Engelska, 2009
379 kr
Beställningsvara. Skickas inom 5-8 vardagar
Fri frakt för medlemmar vid köp för minst 249 kr.Adapting Configuration Management for Agile Teams provides very tangible approaches on how Configuration Management with its practices and infrastructure can be adapted and managed in order to directly benefit agile teams. Written by Mario E. Moreira, author of Software Configuration Management Implementation Roadmap, columnist for CM Crossroads online community and writer for the Agile Journal, this unique book provides concrete guidance on tailoring CM for Agile projects without sacrificing the principles of Configuration Management.
Produktinformation
- Utgivningsdatum2009-10-16
- Mått188 x 234 x 20 mm
- Vikt567 g
- FormatHäftad
- SpråkEngelska
- Antal sidor304
- FörlagJohn Wiley & Sons Inc
- ISBN9780470746639
Tillhör följande kategorier
Mario Moreira has been working in the configuration management (CM) field since 1987, and the agile field since 1999. He's a certified ScrumMaster and author of Software Configuration Management Implementation Roadmap published by Wiley in 2004. Mario is also columnist/writer for CM Crossroads, online community and resource for configuration management with 40 articles written to date ranging from topics on CM, Agile requirements engineering to release management.He has led various agile initiatives with his employer Fidelity Investments as well as leading an agile coaching forum, he is an experienced conference and webinar speaker.
- Publisher’s Acknowledgements xvPreface xviiAcknowledgements xixAbout the Author xxiContributor Biography xxiii1 Introduction: Racing with Confidence 11.1 Focus of this Book 41.2 Who should Use this Book 41.3 Navigation through this Book 51.4 Value of this Book 72 CM Primer 92.1 Brief History of CM 102.2 CM Values 112.2.1 Identification 122.2.2 Control 122.2.3 Audit 142.2.4 Report 152.3 CM Practices 152.3.1 CM Planning Practice 162.3.2 Version Control Practice 182.3.3 Change Control Practice 192.3.4 Build Management Practice 202.3.5 Release Practice 212.3.6 Problem Management Practice 212.3.7 Audit Practice 222.3.8 Report Practice 232.3.9 Other Practices 242.4 Benefits of CM 242.4.1 Benefits of CM to Management 242.4.2 Benefits of CM to Development Staff 242.4.3 Benefits of CM for CM and QA/Test Personnel 252.5 CM Roles 252.6 CM Mindset 292.6.1 Thinking Modular 292.6.2 Thinking Integrity 292.6.3 Thinking ‘‘Get It Done’’ 302.6.4 Thinking Improvement 302.7 Relationship of CM to Culture, Methods, & Governance 302.7.1 Relationship of Culture to CM 312.7.2 Relationship of Governance to CM 332.7.3 Relationship of Methods to CM 332.7.4 Avoiding Mistakes in CM Adoption 342.8 CM Resource Guide 352.8.1 CM Books 352.8.2 CM websites 353 Agile Primer 373.1 Brief History of Agile 403.2 Agile Values (a.k.a., Manifesto) 413.3 Agile Methods 423.3.1 Scrum 423.3.1.1 Scrum Roles 433.3.1.2 Scrum Practices and Artifacts 433.3.2 Extreme Programming (XP) 453.3.2.1 XP Roles 453.3.2.2 XP Practices and Rules 453.3.3 Other Methods that Support Agile 473.3.3.1 DSDM 473.3.3.2 Feature-Driven Development (FDD) 483.3.3.3 Agile Unified Process 483.4 Benefits of Agile 493.5 Agile Personality Types 503.5.1 Innovator 513.5.2 Champion 513.5.3 Workhorse 523.5.4 Bandwagon 533.5.5 Cowboy 533.5.6 Deceiver 543.5.7 Denier 553.5.8 Summarizing the Types 553.6 Agile Roles 553.6.1 Agile Coach 563.6.2 Agile Project Manager/ScrumMaster 563.6.3 Agile Project Team 573.6.4 Product Owner/Manager 573.6.5 Customer 583.7 Agile Mindset 583.7.1 Thinking Small 593.7.2 Thinking Business Value 593.7.3 Thinking Continuous 593.7.4 Thinking Self-Empowered Team 593.7.5 Thinking Collaboration 603.8 Moving to an Agile Culture 613.8.1 Targeting the Sweet Spot 613.8.2 Targeting the Product Level 623.8.3 Actions for Agile Change 633.8.3.1 Promoting a Dedicated Team 633.8.3.2 Ensure Continuous Customer Participation 633.8.3.3 Advocating for an Agile Coach 643.8.3.4 Promoting Co-Location 643.8.3.5 Introducing Agile Terminology 643.8.3.6 Promoting Agile Practices 653.8.3.7 Minimizing Project Reporting 653.8.3.8 Embracing Change 653.8.3.9 Praising Cancelled Projects 653.8.3.10 Removing Formality and Ceremony 663.8.4 Determining Agile Readiness 663.8.5 Measuring your Move Toward Agile 673.8.6 Avoiding Mistakes in Agile Adoption 683.9 Agile Resource Guide 693.9.1 Agile Books 693.9.2 Agile Websites 704 How CM and Agile Values Work Together 714.1 Aligning Agile and CM Mindsets 724.1.1 Challenges of Aligning the Minds 734.2 Supporting Agile and CM Values without Sacrifice 744.3 Value of Retrospective to CM 754.4 Agile Perspective of CM Practices 764.4.1 Value Ranking of CM Practices by CM Professionals 764.4.2 Value Rating of CM Practices by Agile Professionals 774.4.2.1 Agile Perspective of CM Tools in General 784.4.2.2 Agile Perspective of CM Planning 794.4.2.3 Agile Perspective for Version Control 814.4.2.4 Agile Perspective for Build Management 814.4.2.5 Agile Perspective of Change Control 824.4.2.6 Agile Perspective of Problem Management 824.4.2.7 Agile Perspective of CM Audit 824.4.2.8 Agile Perspective of CM Reporting 834.4.2.9 Agile Perspective of Release Engineering 835 Approaching Infrastructure for Agile 855.1 Guiding Principles for Approaching Infrastructure 865.2 Considerations for Approaching Infrastructure 875.2.1 Iteration 0 875.2.2 Agile Team as Customer of Infrastructure 875.2.3 Architecture Envisioning 885.2.4 To Envision or to Refactor 905.3 Infrastructure Envisioning 905.3.1 Initiating an Iteration 0 at the Beginning 915.3.2 Thinking Iterations 915.3.3 Tasks in Product Backlog or Infrastructure Backlog 935.3.4 Reflections on Infrastructure Envisioning 945.4 Infrastructure Refactoring 945.4.1 Iteration Planning or Iteration 0 965.4.2 Thinking in Iterations 965.4.3 Tasks in Product Backlog or Infrastructure Backlog 975.4.4 Reflections on Infrastructure Refactoring 985.5 Owning on Premises or Renting in the Clouds 995.5.1 Renting in the Clouds 1005.5.2 Owning Server and Renting Space (a.k.a., Co-location as a Service) 1025.5.3 Owning on Premises 1035.5.4 Reflections on Premises or in the Clouds 1046 Approaching the CM Implementation for Agile 1056.1 CM Envisioning 1056.1.1 Strategizing for the Whole with Iteration 0 1066.1.1.1 Owning CM Infrastructure on Premises 1076.1.1.2 Renting CM Infrastructure in the Clouds 1076.1.1.3 Sharing through CM Co-op Environments 1086.1.2 Implementing Incrementally 1096.1.3 CM in Product Backlog or CM Backlog 1106.2 CM Refactoring 1106.2.1 Iteration Planning or Iteration 0 1116.2.2 Think in Iterations 1126.2.3 CM in Product Backlog or CM Backlog 1126.3 Automate, Automate, Automate for Agile 1126.3.1 Benefits of CM Automation to Agile 1146.3.2 Chunks, Iterations, and Increments 1166.3.2.1 Advantages of Smaller Chunks and Increments 1166.3.2.2 Disadvantages of Smaller Chunks and Increments 1176.3.3 Location, Location, Location 1186.3.3.1 Co-location of Team 1186.3.3.2 Co-location of Infrastructure 1206.3.3.3 Co-location of Functionality 1216.3.3.4 CM Considerations for Co-location and Agile 1227 Adapting CM Practices for Agile 1257.1 Adapting to Continuous Integration and Build 1267.1.1 The ‘‘Continuous’’ Cultural Shift 1287.1.1.1 How ‘‘Continuous’’ Adds Stress and Load to CM 1307.1.2 Right-Size Branching for Agile 1317.1.2.1 ABCs of Branching 1317.1.2.2 Private Workspace 1357.1.2.3 Factors for an Agile Branching Strategy 1387.1.2.4 Understanding Codelines 1417.1.2.5 Branching Scenarios 1427.1.2.6 Branching Challenges 1457.1.2.7 Branching Summary 1467.1.3 Shifting Responsibilities for Merge and Build Activities 1477.1.4 Effective Merge for Agile 1477.1.4.1 Merge Challenges 1497.1.5 Effective Build for Agile 1507.1.5.1 Build Levels 1507.1.5.2 Build Automation for Continuous Integration 1527.1.6 Continuous Testing with Teeth 1537.1.6.1 Unit Testing 1537.1.6.2 Smoke Testing 1537.1.7 Reflections on Continuous Integration and Build 1547.2 Adapting CM Planning 1557.2.1 Balancing Agile Values with Organization Needs 1557.2.2 Getting Started with Iteration 0 1567.2.3 Evolutionary CM Plan 1577.2.4 Reusable CM Plan 1587.2.5 Inherited CM Plan 1597.2.6 Types of CM Planning Formats 1607.2.7 Adapting CM Roles and Responsibilities for Agile 1647.2.7.1 CM as Holistic Part of the Agile Team 1657.2.7.2 Adjusting CM Responsibilities 1667.2.8 Reflections on CM Planning for Agile 1687.3 Adapting to Support Refactoring 1687.3.1 Reflections on Refactoring 1707.4 Adapting to Support Pair Programming 1707.4.1 Reflections on Pair Programming 1737.5 Adapting to Support Test Driven Development (TDD) 1737.5.1 Reflections on Test-Driven Development 1757.6 Adapting to Support Agile Distributed Teams 1757.6.1 Distributed Analysis for Distributed Teams 1757.6.2 Code Access Approaches 1767.6.3 Reflections on Approaching Agile Distributed Teams 1807.7 Adapting Change Control, Traceability, and Baselines 1807.7.1 Tracking Requirements or Stories and their Changes 1817.7.2 Adjusting the Notion of Baseline 1827.7.2.1 Baseline Considerations for Agile 1837.7.2.2 Baselines for Agile 1837.7.3 Approaching Traceability for Agile 1857.7.3.1 Traceability for the Right Reasons 1857.7.3.2 Traceability Considerations for Agile 1867.7.4 Reflections on Change Control, Traceability, and Baselines for Agile 1877.8 Adapting CM Audit 1877.8.1 Agile Considerations for Audit 1887.8.1.1 Trust or Verification 1887.8.1.2 What Baselines to Audit Against 1887.8.1.3 Challenges with BEUF Specifications 1897.8.1.4 Audit after the Third Iteration 1897.8.2 Approaching Audit for Agile 1897.8.2.1 Automating Code to Build Baselines 1897.8.2.2 Move the Process Audit to the Retrospective 1907.8.2.3 Move the Baseline Audit to the Review 1907.8.2.4 Giving Cadence to Industry Standards 1907.8.3 Reflections on CM Audit for Agile 1917.9 Adapting Problem Management 1927.9.1 Establishing Problem Management Upfront 1927.9.2 From Phase to Iteration 1927.9.3 Problem Management for Pair Programming 1937.9.4 Problem Management Automation 1937.9.5 Reflections on Problem Management for Agile 1937.10 Adapting CM Report and Review 1947.10.1 Moving CM Report and Review into the Retrospective 1947.10.2 Adjusting CM Metrics that Help Deliver Value 1957.10.3 Constructing a Value-Added Metric 1957.10.3.1 Metric Building Blocks 1967.10.3.2 Considering the Benefit of the Metric 1967.10.3.3 Determining Effort to Collect the Metric 1977.10.3.4 Assessing the Value of the Metric 1987.10.3.5 Comparing amongst Potential Metrics 1997.10.3.6 Monitoring of the Metric 1997.10.4 Waste and Examples of Value-Added CM Metrics 2007.10.5 Reflections on Adapting CM Report and Review for Agile 2028 CM Tool as a Strategic Agile Partner 2038.1 CM Tool Support for Software Development 2048.2 The Agile Practices that Impact a CM Tool 2088.2.1 Whole Team 2088.2.2 Retrospectives 2098.2.3 Backlog 2098.2.4 Short Iterations 2098.2.5 Iteration Review 2108.2.6 One Piece Flow 2108.2.7 Continuous Integration (CI) 2108.2.8 Refactoring 2108.2.9 Collective Code Ownership 2118.2.10 Frequent Releases 2118.2.11 Traceability vs. Variance 2118.3 Evaluating Your Situation 2128.3.1 Homegrown Tools 2128.3.2 Outdated Tools 2128.4 CM Tool Features that Facilitate Agile Development 2138.4.1 High Performance 2138.4.2 Fast Configuration Creation (a.k.a. Branching and Labeling) 2138.4.3 Native Internet Support 2138.4.4 Replication for Distributed Team Continuous Integration 2148.4.5 All Writeable Files 2148.4.6 Codelines (a.k.a. Streams, Lines of Development) 2148.4.7 Change Tracking 2158.4.7.1 Refactoring: Rename, Merge, and Patch Tracking 2168.4.7.2 Transactions (a.k.a. Change Lists or Change Sets) 2168.4.7.3 Change Packages 2178.4.8 Private Branches 2188.5 Integration with Your Agile Ecosystem 2188.5.1 Integration with the Agile Project Management Tool 2198.5.2 Integration with the Continuous Integration and Build Tool 2198.5.3 Integration with the Test Automation Tool 2198.5.4 Configuration vs. Customization 2208.6 Conclusion 2209 Evaluating Tools Suited for Agile 2219.1 Looking for Tools out there and in here 2219.1.1 Using a Vendor Tool Specific for Agile 2229.1.2 Using a Freeware Tool Specific for Agile 2249.1.3 Using a Homegrown Tool for Agile 2259.1.4 Tool Classification Comparison 2269.2 Levels of Technology Evaluation 2269.2.1 Research Evaluation 2279.2.2 Demonstration Evaluation 2279.2.3 Pilot/Full Evaluation 2289.2.4 Considerations on Levels 2289.3 Perform a Technology Evaluation 2299.3.1 Investigating a CM Tool for Your Needs 2309.3.1.1 Version Control 2309.3.1.2 Build Management 2319.3.1.3 Change Control/Problem Management 2319.3.1.4 Release Engineering 2329.3.1.5 The CM Tool (or Tools) for You 2329.3.2 Investigating Agile Tools 2329.3.3 Evaluation Process 2339.3.3.1 Establishing Evaluation Team 2349.3.3.2 Determining Evaluation Level 2359.3.3.3 Conducting a Research Evaluation 2359.3.3.4 Conducting a Demo Evaluation 2369.3.3.5 Conducting a Pilot/Full Evaluation 2379.3.3.6 Considering a Request for Proposal (RfP) 2389.3.3.7 Acquisition Process – Owning or Renting 24010 Using CM Standards and Frameworks to Support Agile 24110.1 Importance of CM 24210.2 Compliance and IT Governance Requirements 24210.3 Communicating Your Approach to Senior Management 24310.4 Which Standards Should Be Considered? 24510.5 Configuration Management Functions that are most Essential 24710.5.1 Continuous Integration without the Required Version ID 24710.6 How do Frameworks such as Cobit, ITIL, CMMI, and RUP support Agile? 24910.6.1 ISACA Cobit 25010.6.2 itSMF ITIL Framework 25010.6.3 CMMI and Agile 25110.6.4 Rational Unified Process (RUP) and Agile Unified Process (AUP) 25110.7 Achieving Synergy through Harmonization and Tailoring 25210.7.1 Change Control on Your Standards Tailoring 25210.7.2 Overcoming Resistance to Change 25310.8 Conclusion 253Bibliography 255Index 259
Hoppa över listan