Software Configuration Management Patterns: Effective Teamwork, Practical Integration

Book description

Effective software configuration management (SCM) strategies promote a healthy, team-oriented culture that produces better software. Software Configuration Management Patterns alleviates software engineers' most common concerns about software configuration management—perceived rigidity and an overemphasis on process.

Through the use of patterns, the authors show that a properly managed workflow can avert delays, morale problems, and cost overruns. The patterns approach illustrates how SCM can be easily and successfully applied in small- to mid-size organizations. By learning how these patterns relate to each other, readers can avoid common mistakes that too often result in frustrated developers and reduced productivity.

Key coverage includes instruction on how to:

  • Develop the next version of a product while fixing problems with the current one.

  • Develop code in parallel with other developers and join up with the current state of codeline.

  • Identify what versions of code went into a particular component.

  • Analyze where a change happened in the history of a component's development.

  • Use current tools more effectively, and decide when to use a manual process.

  • Incrementally introduce good practices into individual workspaces and throughout the organization.

  • Identify crucial aspects of the software process so that team projects can run smoothly.

  • Build and foster a development environment focused on producing optimal teamwork and quality products.

  • Software Configuration Management Patterns also includes a detailed list of SCM tools and thorough explanations of how they can be used to implement the patterns discussed in the book. These proven techniques will assist readers to improve their processes and motivate their workforce to collaborate in the production of higher quality software.


    Table of contents

    1. Copyright
    2. The Software Patterns Series
    3. List of Figures
    4. Foreword
    5. Preface
      1. Why I Wrote This Book
      2. Who Should Read This Book
      3. How To Read This Book
      4. Origins of This Material
      5. About the Photos
    6. Contributor's Preface
      1. Why I Cowrote This Book with Steve
    7. Acknowledgments
    8. Introduction
      1. Key Concepts and Terminology
      2. Codeline and Branching Diagrams
      3. Further Reading
    9. I. Background
      1. 1. Putting a System Together
        1. Balancing Stability And Progress
        2. The Role of SCM in Agile Software Development
        3. SCM in Context
        4. SCM as a Team Support Discipline
        5. What Software Configuration Management Is
        6. The Role of Tools
        7. The Larger Whole
        8. This Book's Approach
        9. Unresolved Issues
        10. Further Reading
      2. 2. The Software Environment
        1. General Principles
        2. What Software Is About
        3. The Development Workspace
        4. Architecture
        5. The Organization
        6. The Big Picture
        7. Further Reading
      3. 3. Patterns
        1. About Patterns and Pattern Languages
        2. Patterns in Software
        3. Configuration Management Patterns
        4. Structure of Patterns in This Book
        5. The Pattern Language
        6. Overview of the Language
        7. Unresolved Issues
        8. Further Reading
    10. II. The Patterns
      1. 4. Mainline
        1. Simplify Your Branching Model
        2. Unresolved Issues
        3. Further Reading
      2. 5. Active Development Line
        1. Define Your Goals
        2. Unresolved Issues
        3. Further Reading
      3. 6. Private Workspace
        1. Isolate Your Work to Control Change
        2. Unresolved Issues
        3. Further Reading
      4. 7. Repository
        1. One Stop Shopping
        2. Unresolved Issues
        3. Further Reading
      5. 8. Private System Build
        1. Think Globally by Building Locally
        2. Unresolved Issues
        3. Further Reading
      6. 9. Integration Build
        1. Do a Centralized Build
        2. Unresolved Issues
        3. Further Reading
      7. 10. Third Party Codeline
        1. Use the Tools You Already Have
        2. Unresolved Issues
        3. Further Reading
      8. 11. Task Level Commit
        1. Do One Commit Per Small-Grained Task
        2. Unresolved Issues
      9. 12. Codeline Policy
        1. Define the Rules of the Road
        2. Unresolved Issues
        3. Further Reading
      10. 13. Smoke Test
        1. Verify Basic Functionality
        2. Unresolved Issues
        3. Further Reading
      11. 14. Unit Test
        1. Test the Contract
        2. Unresolved Issues
        3. Further Reading
      12. 15. Regression Test
        1. Test for Changes
        2. Further Reading
      13. 16. Private Versions
        1. A Private History
      14. 17. Release Line
        1. Branch Before Releasing
        2. Further Reading
      15. 18. Release-Prep Code Line
        1. Branch Instead of Freeze
        2. Unresolved Issues
      16. 19. Task Branch
        1. Handling Long-Lived Tasks
        2. Use Branches for Isolation
      17. 20. Referenced Patterns
        1. Named Stable Bases
        2. Daily Build and Smoke Test
      18. A. SCM Resources Online
        1. The Configuration Management Yellow Pages
        2. CM Crossroads—Online Community and Resource Center for CM Professionals
        3. CM Today—Daily Configuration Management News
        4. UCM Central—Unified Configuration Management
        5. ACME—Assembling Configuration Management Environments (for Software)
        6. The Software Engineering Institute's SCM Publications
        7. Steve Easterbrook's Configuration Management Resource Guide
        8. The Software Configuration Management FAQ
        9. The Association for Configuration and Data Management
        10. Software Engineering Resource List for Software Configuration Management
        11. R. S. Pressman and Associates Software Engineering Resources for SCM
        12. SEWEB Software Configuration Management Resources at Flinders University
        13. Pascal Molli's “CM Bubbles” SCM Resources Page
        14. The Usenet Newsgroup Comp.Software.Config-Mgmt
      19. B. Tool Support for SCM Patterns
        1. VSS—Visual Source Safe
        2. CVS—The Concurrent Versions System
        3. Perforce
        4. BitKeeper
        5. AccuRev
        6. ClearCase—Base Functionality (non-UCM)
        7. ClearCase—Unified Change Management (UCM)
        8. CM Synergy
        9. StarTeam
        10. PVCS Dimensions
        11. PVCS Version Manager
        12. MKS Integrity (Enterprise Edition)
        13. Further Reading
      20. Photo Credits
      21. About the Photos
      22. Bibliography

    Product information

    • Title: Software Configuration Management Patterns: Effective Teamwork, Practical Integration
    • Author(s): Stephen P. Berczuk, Brad Appleton
    • Release date: November 2002
    • Publisher(s): Addison-Wesley Professional
    • ISBN: None