Home > Store > Software Development & Management

Configuration Management Principles and Practice

Register your product to gain access to bonus material or receive a coupon.

Configuration Management Principles and Practice

Book

  • Your Price: $43.99
  • List Price: $54.99
  • Usually ships in 24 hours.

Description

  • Copyright 2003
  • Dimensions: 7-3/8x9-1/4
  • Pages: 432
  • Edition: 1st
  • Book
  • ISBN-10: 0-321-11766-2
  • ISBN-13: 978-0-321-11766-3

Configuration management (CM) is an important, but often neglected, practice that allows application developers and project managers to better identify potential problems, manage changes, and track the progress of software projects. An effective CM strategy—one that adheres to the practice's complexity while harnessing its depth—can be the cornerstone of fast, flexible development. However, CM practitioners often rely too heavily on commercial CM tools, and fail to understand the concept as a whole. While CM is not an easy discipline, it need not be a difficult one.

Configuration Management Principles and Practice explains the elements and benefits of a sound CM strategy and shows how to put that strategy into action. Through configuration examples and recommendations drawn from the author's considerable experience, this practical guide will help readers to better manage and deliver projects.

Key topic coverage includes:

  • Incorporating CM into the overall development process
  • Relating test cases to requirements and tracking, assessing, and reporting on testing
  • Tracing product changes
  • Applying CM in different environments, including agile, iterative, integrated-product, and sequential development methods
  • Employing CM in projects, large and small, for safety-critical, composite, multiplatform, and multivariant systems
  • Managing multisite development
  • Serving cross-organizational functions
  • Integrating different CM tools
  • Improving CM processes
  • A comprehensive guide to the current state of CM, the text begins with an introduction to fundamental CM principles and activities and then illustrates how each can be tailored to meet a development organization's unique needs. In short, this easy-to-use reference will give organizations and individuals the tools they need to insure the integrity of their products and effectively manage the evolution of their systems.



    0321117662B12032002

    Sample Content

    Online Sample Chapter

    What Is Configuration Management?

    Downloadable Sample Chapter

    Click below for Sample Chapter(s) related to this title:
    Sample Chapter 1

    Table of Contents



    List of Figures


    List of Tables


    Foreword by Kim Caputo


    Foreword by Alistair Cockburn


    Preface


    Introduction

    I. WHAT IS CONFIGURATION MANAGEMENT?

    1. Definition of Configuration Management Used in This Book

    Configuration Management Activities

    Metadata

    Configuration Management Is Cyclicor Is It?

    Quality Assurance Process

    Audit

    Identification

    Inputs

    Outputs

    Process Descriptions

    Unique Identification

    Examples

    Authorization

    Roles

    Connection with Other Activities

    Storage

    Library

    Main Processes

    Process Descriptions

    Roles

    Connection with Other Activities

    Example

    Change Control

    Inputs

    Outputs

    Change Control Activities

    Usage of Metadata

    Consequence Analysis

    Roles

    Process Descriptions

    Connection with Other Activities

    Example

    Status Reporting

    Inputs

    Outputs

    Process Descriptions

    Roles

    Connection with Other Activities

    False Friends: Version Control and Baselines

    Version Control

    Baseline

    2. Configuration Management in Maturity Models

    CMM Version 1.1

    CMM Maturity Levels

    Definition

    Activities

    CMMI

    CMMI Process Areas

    Definition

    Goals

    Practice-to-Goal Relationships

    Capability and Maturity Levels

    Achieving Capability Levels

    Level 2 for All Process Areas

    Raising the Capability of the Configuration Management Process

    ISO 15504 (SPICE) and BOOTSTRAP 3.2

    SPICE Process Model

    Definition

    Goals

    Best Practices

    Maturity Levels

    Maturity of Configuration Management

    3. Configuration Management in International Standards

    Overview of Related Standards

    BS6488, DoD, IEEE

    BS6488

    DoD Mil-Std-973

    IEEE-Std-610.12-1990

    ESA PSS-05-09

    Introduction from the Guide

    GAMP

    Description from the Guide

    ISO 9001:1994, ISO 9000-3, and ISO 9001:2000

    ISO 9001:1994

    ISO 9000-3

    ISO 9001:2000

    4. Organizations Working with Configuration Management

    Institutions and Companies

    CM Today Yellow Pages

    Institute of Configuration Management

    Conferences

    Ovum

    Software Engineering Institute

    Projects

    ACME

    AdCoMs

    DaSC

    5. Scoping the Configuration Management Task

    Level of AmbitionCost/Benefit Analysis

    Level of Ambition = Scope + Formalism

    Formalism for a Configuration Item

    Degrees of Formalism

    Earliest and Latest Extremes for Starting Configuration Management

    Formalism and Tools

    Expansion of Scopefrom Candidate to Item

    No Rough Drafts—Please!

    Expansion from the Middle

    Examples

    Calculation of Profitability

    Expenses

    Savings

    Pitfalls in Connection with Scoping

    Too Demanding

    Wrong

    Too Coarse or Too Fine

    Too Embracing or Too Exclusive

    Too Late or Too Early

    How to Treat What Is Kept Outside

    Objects to Keep Outside

    Identification

    Storage

    II. CONFIGURATION MANAGEMENT DATA

    6. What Can Be Placed under Configuration Management

    Physical or Electronic Objects

    Configuration Item Class Hierarchy

    Physical Objects

    Electronic Objects

    Types of Objects in Product Perspective

    Software

    Hardware

    Network

    Data

    Services

    Tools

    Types of Objects in Project Perspective

    Life Cycle Activities

    Support Functions

    Tools

    Types of Objects in Cross-Organizational Perspective

    Cross-Organizational Perspective

    Administrative Documents

    Company Product Assets

    Infrastructure

    Quality System

    Deliveries under Configuration Management

    Examples

    Project Relationships

    Deliveries for Planned Events Like Milestones

    Development Model

    Milestones

    7. What One Needs to Know about a Configuration Item

    Overview of Metadata for a Configuration Item

    Data Elements

    Metadatabase Medium

    Other Data Elements

    Metadata for Unique Identification

    Belongs To

    Name

    Version

    Status

    Date

    Storage Location

    Storage Medium

    Example of States for a Document

    Example of States for a Source Code Unit, Including in Build

    Metadata for Authorization

    Producer

    Person Holding Overall Responsibility

    Person Responsible for Approval

    Ownership

    Metadata for Relations to Other Configuration Items

    Traces To (and From!)

    Tracing Registration

    Importance of Tracing

    Produced With

    Derived From

    Consists Of

    Metadata for Distribution

    May Be Distributed To

    Has Been Distributed To

    8. What One Must Register for a Configuration Item

    Item Approval

    Quality Approval

    Medium

    Content

    Examples

    Release Request

    Medium

    Content

    Stock Control

    Examples

    Event Registration

    Life Cycle and Responsibility

    Content

    Created

    For Evaluation

    Under Decision

    Under Change

    Closed

    Classification

    Examples

    Change Request

    Life Cycle and Responsibility

    Content

    Created

    Implemented

    Approved

    New Events

    Examples

    9. What Information Is Available for Configuration Items

    Examples

    Release Note

    Item Status List

    Item History List

    Item Composition List

    Trace Report

    Configuration Management as Supplier of Measurements

    Ideas for Process Improvement

    III. ROLES IN CONFIGURATION MANAGEMENT

    10. People and Configuration Management

    Configuration Management as a Career

    Qualifications

    Managing Configurations Is Everyone's Job

    Understanding Team Roles

    Putting Teams Together

    11. Configuration Management Roles

    Configuration Control Board

    Skills and Knowledge

    Multiple Boards

    Managing Configurations of CCB Work Products

    References

    Librarian

    Tools

    Managing Configuration of Library Work Products

    References

    Person Responsible for Configuration Management

    Planning Configuration Management

    Managing Configuration Management Work Products

    References

    12. Organizational Roles

    Management

    Defining and Tracking Goals

    Benefits

    References

    Person Responsible for Assets

    Different Process Descriptions

    References

    Person Responsible for Operation

    Configuration Management Responsibility

    References

    Person Responsible for Process Management

    Managing Configurations of Process Management Work Products

    References

    Person Responsible for Environments and Tools

    Managing Configurations of Environments and Tools

    References

    Support/Helpdesk

    References

    13. Project-Related Roles

    Analyst

    Benefits

    References

    Designer

    Benefits

    References

    Programmer

    Benefits

    References

    Integrator

    Benefits

    References

    Tester

    Benefits

    References

    Project Manager

    Benefits

    Managing Configurations of Project Management Work Products

    References

    Person Responsible for Quality

    Managing Configurations of Quality Assurance Work Products

    References

    Person Responsible for Customer Contact

    References

    Person Responsible for Subcontractor Contact

    References

    14. External Roles

    Customer

    References

    Subcontractor

    References

    IV. CONFIGURATION MANAGEMENT IN PRACTICE

    15. General Principles

    Milestones

    Identification

    Generic Content Lists

    Storage

    Change Control

    Status Reporting

    Document Handling

    Configuration Items or Deliveries

    Identification

    Authorization

    Tracing

    Storage

    Change Control

    Status Reporting

    Emergency Changes

    Examples

    Principles for “Cheating”

    Avoid Cheating

    Examples Again

    16. Configuration Management in Development Activities

    Documentation Activities (Specifications and Design)

    Identification

    Coding

    Unique Identification

    Authorization

    Tracing

    Storage

    Change Control

    Integration

    Production Time

    Unique Identification

    Tracing

    Storage

    Change Control

    Test

    Deliveries

    Identification

    Tracing

    Storage

    Change Control

    Operational Use

    Configuration Management Considerations

    Release

    Event Registration

    Status Reporting

    Organizational Considerations

    Backup

    Maintenance

    New Versions

    Configuration Management Considerations

    Example

    17. Managing Configurations for Project Support Functions

    Project Management

    Example

    Deliveries

    Connection with Other Processes

    Identification

    Tracing

    Change Control

    Status Reporting

    Configuration Management

    Milestone Deliveries

    Storage

    Change Control

    Status Reporting

    Quality Assurance

    Connection with Other Processes

    Subcontractor Management

    Identification

    Storage

    Change Control

    Status Reporting

    Delivery

    18. Managing Configurations in Different Development Models

    Agile Development

    Configuration Management in Agile Development

    Empowered Teams

    Process Handling

    Environment and Support

    Requirements Management

    Working Together

    Frequent Delivery of Working Software

    Communication and Documentation

    Status Reporting

    Frequent-Build Technique

    Planning Considerations

    Configuration Management Considerations

    Frequent Builds Are Not Frequent Storage

    Identification

    Building

    Storage

    Backtracking

    Change Control

    Example

    Integrated Product Development

    Organizational Considerations

    Configuration Management Considerations

    Approach

    Iterative Development

    Configuration Management Considerations

    Requirements Management

    Identification

    Storage

    Change Control

    Status Reporting

    Sequential Development

    W-Model

    Configuration Management Considerations

    Identification

    Change Control

    Status Reporting

    19. Managing Configurations for Different Product Types

    Composite Systems

    Design Considerations

    Configuration Management Considerations

    Identification

    Storage

    Change Control

    Status Reporting

    Multiplatform

    Configuration Management Considerations

    Identification

    Multivariants

    Examples

    Requirements Considerations

    Design Considerations

    Configuration Management Considerations

    Identification

    Storage

    Change Control

    Status Reporting

    Safety-Critical Products

    Examples

    Configuration Management Considerations

    Size of Product (Large and Small)

    Small Systems

    Large Systems

    Identification

    Storage

    Change Control

    Status Reporting

    Tool Considerations

    Web Applications

    Examples

    Content Management

    Configuration Management Considerations

    Identification

    Storage

    Change Control

    Status Reporting

    20. Managing Configurations under Special Conditions

    Multisite Development (Geographic Distribution)

    Example

    Organizational Considerations

    Configuration Management Considerations

    Identification

    Storage

    Change Control

    Status Reporting

    Example

    Multiple Stakeholders

    Get an Overview of the Requirements

    Analyze the Requirements

    Describe the Fulfillment

    Conflict of Authority

    Parallel Development

    Example

    Planning Considerations

    Configuration Management Considerations

    Identification

    Storage

    Change Control

    Status Reporting

    Tool Considerations

    Tool Support

    Configuration Management Considerations

    21. Managing Configurations for Cross-Organizational Functions

    Company Infrastructure

    Organizational Considerations

    Identification

    Storage

    Change Control

    Status Reporting

    Cross-Organizational Objects

    Configuration Management Considerations

    Identification

    Storage

    Change Control

    Status Reporting

    External Reuse Component Development

    Examples

    Configuration Management Considerations

    Identification

    Storage

    Change Control

    Status Reporting

    Internal Asset Development (Product-Line Approach)

    Examples

    Central Ownership of Components

    Configuration Management Considerations

    Identification

    Storage

    Change Control

    Status Reporting

    Quality System, Including Process Management

    Configuration Management Considerations

    Responsibility

    Identification

    Storage

    Change Control

    Status Reporting

    V. IMPROVING CONFIGURATION MANAGEMENT

    22. Getting Started on Configuration Managementup to Capability Level 1

    How to Get Started from Nothing 267

    Getting the Right People

    Collecting Best Practices Internally

    Looking at the Outside World

    Focus

    Look Ahead

    First Steps Toward Configuration Management

    Establish Baselines

    Track and Control Changes

    Minimum Documentation

    Establish Integrity

    Experiences in Implementing Configuration Management

    Overall Conclusion

    Datamat Ingegneria dei Sistemi

    S.I.A S.p.A

    Istiservice, S.p.a

    Event A/S

    Sysdeco A/S

    23. Planning Configuration Managementup to Capability Level 2

    General Planning Advice

    The Plan Itself

    Connection to the Project

    Template

    Table of Contents for a Configuration Management Plan

    Configuration Management Plan: Introduction

    Purpose

    Scope

    Vocabulary and Reference Lists

    Configuration Management Plan: Management and Relations to the Environment

    Organization

    Responsibilities

    Interface Control

    Subcontractor Management

    Relevant Standards

    Configuration Management Plan: Activities

    Identification

    Storage

    Change Control

    Status Reporting

    Configuration Management Plan: Schedule

    Tasks

    Phases and Milestones

    Diagrams and Charts

    Configuration Management Plan: Tools, Techniques, and Methods

    Tools

    Techniques and Methods

    24. Processes for Configuration Managementup to Capability Level 3

    Processes in General

    Connection with Maturity Models

    Definitions

    A Process Is Like a Recipe

    Process Model

    Configuration Management ProcessesOverview

    Special Requirements for Configuration Management Processes

    Configuration Management ProcessModel Examples

    25. Continuous Improvement of Configuration Managementup to Capability Level 4 and 5

    General Software Process Improvement Advice

    Processes in Use

    Dissemination and Adaptation

    Companies at Capability Levels 4 and 5

    Metrics for Controlling Configuration Management Performance

    Metrics in General

    Measuring Methods

    Measurement Plan

    Examples

    Analyzing Metrics for Control and Improvement

    Statistics

    Balance Point

    VariationWhat Is Normal

    Control Charts

    26. Tool Support for Configuration Management

    Classes of Tools for Configuration Management

    Individual Support

    Project-Related Support

    Full, Company-Wide Process Support

    Who Should Use Which Tool?

    Organizational Considerations

    Business Goals

    Buy It or Do It Yourself

    Environmental Constraints

    Legacy from the Past

    Financing

    Organizational Scope

    Ownership

    Planning for the Future

    Willingness to Change

    Selecting a Configuration Management Tool

    Evaluation Group

    Evaluation Method

    Requirements

    Detailed Evaluation

    Nomination of the Winner

    Requirements for Configuration Management Tools

    Integration with Other Tools

    Performance

    Scalability

    Usability

    Web Access

    Requirements for the Tool Supplier

    Acquaintances

    Employees

    Financial Status

    Focus

    Tool Use

    Reputation

    Support Facilities

    Customizing Configuration Management Tools

    One Tool or More

    Changing Tools or Processes

    From Class to Class

    Appendix A. Configuration Management Process Model:A Software Code Example
    Appendix B. Configuration Management Process Model:A Tracing Example
    Appendix C. Agile SCM
    Glossary
    Bibliography
    Index 0321117662T12242002

    Preface

    My Life As a Software Professional

    I have two—well three, really—passions in my professional life: test, configuration management, and process improvement. I started my career as an all-round developer—a little requirements elicitation, a little analysis, a lot of coding and re-coding, and some test—more than 20 years ago. During these first professional years, I always loved the testing part themost—making my work run on the computer and enjoying the satisfaction of being told, in a factual and precise way, that something was wrong, which enabled me to carry out the correction and then finally enjoy the privilege of knowing that at least this error was a secret between me and the computer.

    My experience grew, and my working teams grew. The problems grew. I wasn't always certain that I had produced what I was supposed to and that I had tested everything. And sometimes an error would reoccur! I got a job as the person responsible for system and acceptance test in a company making software for the European Space Agency, and, for the first time in my then twelve year career, I heard the words configuration management. I had no clue as to what it was, but as I spent hours and hours trying to figure it out, discussing it with the person responsible for quality assurance, and actually using parts of it in my daily work, I came to understand what a wonderful tool I had found.

    For the first time I was able to trace my test cases to the requirements. I was able to tell, at any given point, how many requirements I had covered in my test specification and how many requirements were still outstanding. I didn't have to encounter the frustration of having made test cases for requirements that were not going to be implemented anyway. In cases where I had forgotten the reason for a turn in the work, I was able to find a previous version of my test specification and see why I had changed it. I loved it!

    For the last seven years, I have been working as a consultant, spending a good deal of my time on testing assignments of many different types in many different companies. One of the things I have learned from these assignments is that there is often a difference between what a customer asks for and

  • what he really wants
  • what he needs, i.e. what you want to give him
  • what you are able to give him
  • Test consultants are often presented with a system to test without the right conditions for performing a professional test.

    The requirements may be in any state from non-existent to brilliantly documented, with a pronounced bias towards the first extreme. If requirements are present, they are most often not up-to-date. This is partly a requirement specification problem, partly a configuration management problem.

    Test requires resources in terms of time and people to perform the test. These resources are often all too scarce. This is a project management problem. When test consultants plan and perform a test they need to establish an overview of not only what has to be tested, but also how the test is progressing, what errors have been found, and what the state of error correction is. These are configuration management issues.

    It is a temptation for a consultant to try to deliver what the customer really needs. There are, however, some limitations and threats in this approach. The art is to strike the right balance between what is needed and what is feasible. One of the things to keep in mind as a consultant is to keep up the standards, but keep it light. So I try to keep up the configuration management standards as I solve the test assignment—hoping that my customer will get an idea of what configuration management is, and maybe ask for some assistance in that direction too.

    Another part of my time is spent assessing software producing companies using the BOOTSTRAP maturity model and method. Like the related Capability Maturity Model (CMM), this model includes configuration management. As an assessor in more than forty assessments, I have time and again seen the blank look in people's eyes when I ask how they perform configuration management. The eyes rarely get less blank if I elaborate and ask about tracing between work products, production of error reports, or other detailed configuration management disciplines.

    On the other hand people are more than willing to talk about the problems they have experienced due to lack of control over what is being implemented and tested, and when, and lack of control over what errors have occurred and which ones are being corrected and which are not.

    Despite the fact that configuration management is one of the basic disciplines for a sound development (in CMM it is a key process area at level 2) many people go through a considerable part of their career without any idea of what configuration management is and how it can ease their everyday tasks; just like I did. So I keep emphasizing the importance of configuration management and very often recommend it as one of the first disciplines a company should be working on when embarking on structured process improvement.

    The Creation ofThis Book

    In 1999 the Danish organization Datateknisk Forum, an association of about seventy software producing companies, asked me to write a book on configuration management. The demand was the result of a survey amongst the members as to what topic they needed a book on.

    Some of the comments and requirements that came back from the survey were:

  • How do you incorporate configuration management in the development process?
  • How do you handle the fact that different kinds of work products, like documents and code, are treated differently?
  • How do you obtain integration between different configuration management tools?
  • How do you handle multi-site development?
  • How do you handle configuration management in relation to OO-development, e.g. component based development?
  • I took on the assignment because in my own experience, configuration management has been of great value, not because I felt I knew much about it theoretically. I know much more now, and I hope I shall be able to convey to the readers some of the understanding, knowledge, and appreciation of the discipline that I have gained during my work on this book. If the readers try at least some of the detailed disciplines of configuration management, it is my hope that they will experience the same enthusiasm about the usefulness of the discipline as I did.

    The book is written on the basis of the study of literature as well as experience—and also on the basis of attitudes and opinions. It contains a lot of examples, advice, and recommendations, which are not to be regarded as the TRUTH, but primarily as the sum of a lot of experience—positive as well as negative.

    When I learned that the book was to be published in the Agile series, I knew little about Agile development. But as I studied the values and principles I found out that I had practiced it in parts for years. Agile software development is a wonderful idea, and one of the cornerstones of its success is configuration management, so it was a pleasure to be able to contribute to the series with one of my favorite disciplines. The book may seem a bit heavy to some Agilists, but I think it is better to discard some formality and some detailed activities deliberately, knowing what it is that one has not performed, rather than just not performing it, out of ignorance. So, Agilists and others, read and choose!

    The Purpose of the Book

    This book is not supposed to be a primer in configuration management. It does, however, start with an introduction to fundamental principles, in order to establish a basic understanding of the concepts used in the main part of the book, which discusses the more advanced issues encountered when configuration management has to be implemented in practice.

    The overall purpose of the book is twofold:

  • To scare those who are engaging in configuration management! The book will give the reader an understanding of the complexity and comprehensiveness of the discipline. Configuration management is not easy! If this is what you think, you'll be unable to solve the configuration management task in a professional way.
  • To take away the fear from those who are engaging in configuration management! The book will provide a fundamental understanding of the principles of the discipline, their interrelations and usage. Configuration management is not difficult! All you have to do, is to do it; and if you understand the discipline, it is much easier to specify and plan the task so that it fulfils its purpose and becomes as manageable as possible.
  • It is assumed that the reader has some knowledge of other disciplines within software development, such as planning, design, test, and quality assurance.



    0321117662P08272002

    Foreword

    Click below for Sample Chapter(s) related to this title:
    Foreword

    Index

    Click below to download the Index file related to this title:
    Index

    Updates

    Submit Errata

    More Information

    Unlimited one-month access with your purchase
    Free Safari Membership