Configuration Management Body of Knowledge

IntroContextProcessesPlanningTool MgmtActivitiesProjectsRisksProcurementMetrics

Chapter 2: The Configuration Management Context

Overview

In this chapter the Configuration Management context is explored. Two examples, acquisition and development life cycle diagrams are illustrated and discussed. The phases of the life cycle are identified with discussions concerning impacts upon it by Configuration Management. The key players in the configuration organization are described along with how the organization can influence configuration activities. Certain general management skills are required and described.

2.1 ACQUISITION LIFE CYCLE PHASES AND CONFIGURATION MANAGEMENT

Configuration Management operates in all phases of the product’s existence, starting from the Conception to disposal of the hardware, software and firmware items.

The framework in which the different phases occur is called the “Acquisition life cycle”. The generic model for this process is illustrated in Figure 1.

Figure
Figure 1: Acquisition Milestones and Phases

The life cycle process consists of decision points, or milestones, and periods of time, or phases. The project will approve passage from one phase to the next by officially accepting the phase upon completion of a successful milestone review.

2.1.1 Phase 0, Concept Exploration Phase

The concept exploration phase, Phase 0, is the first phase of a product’s life cycle. If it occurs at all, it typically consists of competitive, parallel short-term concept studies performed to investigate alternative operations and design concepts. The purpose is to identify, define, and evaluate the advantages/disadvantages, risks, costs, etc. of promising operational concepts and product design alternatives. The studies result in project characteristics and costs of total systems as reflected by their conceptual designs. The results are reviewed at the Milestone I decision point where promising candidates may be selected for further definition and development. The design characteristics of the selected alternatives generally provide a functional baseline of the system.

This phase is also considered as the Inception phase or Business Opportunity Feasibility Study and Business plan phase.

2.1.2 Phase I, Program Definition and Risk Reduction Phase

Phase I is used to further define and refine the operational concept or concepts and those alternative design approaches determined by the Milestone I decision process to be the most promising. The functional baselines are further decomposed into their lower-tiered subsystems. The performance requirements of the product are then allocated down to the lower level functions (allocated baseline).

2.1.3 Phase II, Engineering and Manufacturing Development Phase

Phase II of the acquisition process is used to complete a stable design for a product which meets the performance requirements and is producible, supportable, and affordable. Product capabilities are demonstrated through testing to validate design assumptions, and deployment planning is initiated. Low rate initial production is begun during this phase to provide the minimum quantities required to support operational testing and other design validation activities and to establish an initial production base for the product. The allocated baseline of a product is transitioned into a full product baseline during this phase.

This phase is also known as the Design phase and is defined as the Elaboration phase with the Analysis phase.

Phase III includes all design activities needed to:

Support activities respond to changes resulting from correction of noted deficiencies and other product baseline changes made to enhance producibility or otherwise improve the product. Additionally, they prepare for transition of the product to operations. Phase III is used to achieve and sustain an operational capability that satisfies mission needs.

This phase consist of the Construction and Transition phases together or Implementation and test phases.

2.1.5 Pros and Cons of this Cycle

This model is great for static projects such as building a submarine or an airplane, and it is probably well suited to projects based primarily on acquisition rather than creation. Although these types of projects (generally government-funded) may consume the bulk of money spent. Organizations that manage these types of projects generally have a well-defined, if not entrenched, concept of CM with a large force reasonably well-trained in the particular CM implementation. This Life Cycle Model does not port well to today's dynamic development environments.

2.2 DEVELOPMENT LIFE CYCLE STAGES, TRANSITIONS AND CONFIGURATION MANAGEMENT

The traditional description of System Life Cycle, often known as the Waterfall model, is characterized by specific stages, generally summarized as:
  1. Concept exploration
  2. System architecture and risk definition
  3. System detailed design and documentation
  4. Development and unit testing
  5. Integrated testing
  6. Deployment
  7. End of life

Each stage has a definite completion point, a Milestone, at which the current stage is considered finished and the next stage is entered. If the integrated testing stage fails, it may be necessary to back up into one of the earlier stages, or the project may have to be abandoned.

This type of project is expected to span years, and, according to sources such as Archwise Architectural Consulting and AntiPatterns author William J. Brown:

In contrast, the competitiveness of the various industries may demand a turn-around time measured in weeks, not years, and even firmware-based hardware projects may expect to have revisions to ship before End-Of-Life. These demands cannot be satisfied by a Waterfall model; instead they require a continuous development model comprised of Stages with Transitions. Traditional projects can be mapped onto this model, but it also allows for incremental development, quick release schedules, and it demands tight integration with Configuration Management at every Stage and Transition. A diagram of such a model is given in Figure 2. {Edited to make more generic

Figure 2: General LifeCycle
Figure 2 - Life Cycle Model

In the incremental model, different increments of the overall project can be at different stages in the Life Cycle, and transitions take place according to the defined Configuration Management process.

2.2.1 Life Cycle Stages

Each Stage has some subset of the project team working on it, some set of Configurable Items to manage, and will follow certain processes of the Configuration Management plan that is in place.

2.2.1.1 Stage 1: Requirements Definition and Validation Criteria
A requirement is a well-defined statement of a testable or provable desired result that will cause the creation or change of some element(s) of the project. Requirements need to be documented, often by a Subject Matter Expert(s) on the project team. Validation criteria must be determined for each requirement so that its fulfillment can be tested, a function of either QA, The SME or both. Requirements and validation criteria are the Configurable Items that need to be managed at this stage.

2.2.1.2 Stage 2: Architecture and Design
Traditional models may split these two functions, while many Agile and RAD methodologies envision them as proceeding more or less in parallel. Project team members will be architects, analysts and designers. The Configurable Items will be the models and the detailed design documents. Some UML tools produce executable (testable) models; in this case, the test results will also be Configurable Items.

2.2.1.3 Stage 3: Development and Unit Test
At this stage, the different development methodologies diverge radically. At one pole, Extreme Programming dictates that each developer should create incremental tests corresponding to requirements (strictly, story outcomes) and perform them regressively as the development proceeds. At the other pole, unit tests will have been developed, probably by QA, in Stage 1, and will be executed in a development "sandbox" different from the individual developer's workspace and containing the most current development versions, possibly after a nightly (or regular) build. This sandbox is maintained by the CM team, and it is here that development check-ins will reside. There probably exists every imaginable permutation in between. The project team members are the developers and possibly QA. If there is a nightly build, this may be the responsibility of QA, or of the CM team. Configurable Items will be the developed entities (code, firmware, components, etc.), and results of the nightly/regular build.

{Configurable Items also include any compilers, applications, tools used to create the nightly/regular builds, as well as any third party components linked into or packaged with the build output.

2.2.1.4 Stage 4: QA Build, Integration/Regression Testing

Where Stage 3 had a "dev" sandbox, this Stage has a "QA" or "test" sandbox. Any components not previously integrated will be integrated here. Unit tests will be regressed, system tests (integration tests) will be performed, and the system will be both verified and validated. That is, it will be proven to perform correctly and according to specifications. Performance testing, destruction testing, non-functional requirement testing (such as security) belong to this stage. The team members will be QA, and the Configurable Items will be any tests not already configured, and all relevant test results.

2.2.1.5 Stage 5: Deployment/Production

Deployment results in an actual release version; there must be a Release Description that enumerates all Configurable Items from the previous stages, as well as the versions of any tools used to create the deployed product, where applicable. Team members for deployment will vary according to the actual product.

2.2.2 Life Cycle Transitions

Transitions of development sets, which may be software or a combination of software and hardware, should occur according to and controlled by the processes within the Configuration Management plan.

Traditional development models can be emulated by only recognizing the forward moving arrows in Figure 2 (those pointing downward), and inserting a "Milestone" event next to each arrow. Any time an upward-pointing path is followed, the whole development effort is brought back to that stage, and a serious project problem is likely.

Upward-pointing arrows in Figure 2 represent an action by some team member at the Stage where the arrow originates. The project manager or some part of the project team will determine the transitions from Stage 1 to Stage 3, but thereafter, forward-moving transitions (3 to 4 and 4 to 5) are managed by the CM team.

2.2.2.1 Transition A: Original Requirements
This is a transition in the sense that, before there were requirements, there was no project. It is included here for completeness.

2.2.2.2 Transition B: Enhancement/Modification Request
This transition is triggered by one of two events. A deployed product may have planned enhancements (revisions, project release phases, increments in development). Or, the existing requirements definition as embodied in the architectural models may be incomplete or inconsistent, necessitating redefinition (modification) of the requirements. It is up to the Change Control Board (or its equivalent) to determine whether the request will be honored, rejected or deferred.

2.2.2.3 Transition C: Defect Report
A defect report may stem from:

The defect report will be reviewed, assigned a status (accepted, rejected, deferred), and other characteristics such as severity, criticality, impact, and possible assignment, by the CM CCBN.

2.2.3 Summary

Configuration Management is necessary and important at every stage of a project's Life Cycle. For very complex projects, Figure 2 may be an over simplification. Other projects will require fewer stages than it depicts. However, the diagram is general enough that it can be expanded as necessary, compacted when feasible, and even mapped onto a project which is entirely or almost entirely acquisition.

2.3 WHO ARE THE KEY PLAYERS?

A CM plan should designate certain roles that assume particular responsibilities within the CM team. In a large project, each role may be assigned to a distinct individual. Smaller projects may merge some roles within a single individual. Nevertheless, the roles and responsibilities are distinct and should be defined, however the roles are implemented in practice.

2.3.1 Media Librarian

The Media Librarian is responsible for the entire media library, its completeness, its integrity, its procedures, and the acquisition of the material retained therein. A media library or media storage area is a physical location - not storing them magnetically or electronically. While said library can contain magnetic material, the physical devices or media upon which it resides must be retained. Thus the term 'media' was selected. Anything referencing the term "configuration repository" means a soft-repository such as a repository kept through a vendored tool. A Media Librarian serves a different function from a Repository Manager. Specifically, the librarian:

A media librarian, manages items which pertain to, but do not precisely belong to, the configuration effort. This could be training material, including reference books on tools used, standards manuals, even the media (CDs) containing the version(s) of the tools used for development and/or deployment.

2.3.2 Tool Technician

The Tool Technician (DBA) supports all database needs for the CM group. This includes:

The responsibility for the automation of build processes and other CM processes falls first to the CM Manager, but it could be delegated to the Tools Technician to facilitate, and then to the Build manager to use them in accordance with procedures that would be developed.

2.3.3 Data Manager

The Data Manager:

2.3.4 Release Manager

The Release Manager is responsible for proper execution of the process, and controls releases by:

The Release Manager has the responsibility to assure that there is a deployment plan, a complete Release Description, and that the deployment/release is done accordingly for each Release.

2.3.5 Build Manager

The Build Manager is responsible for creating the final deliverable and its documentation. The Build Manager is also responsible for creating the ‘as-built’ prior to initial testing by Quality Test and Evaluation, and any "nightly" or regular builds in a development sandbox. The Build Manager, with coordination from the Configuration Manager assists in the final production and packaging efforts of approved deliverables. Depending on the magnitude of the effort, these duties can be delegated to other groups in the organization, but the CM team is ultimately responsible for it. {Incorporated Helen's ideas into this paragraph.

2.3.6 Configuration Manager

The Configuration Manager ensures that answers are always available for such questions as: What product/version is this? What changed? What tests were run? What were the test results? and Where is the product located? The Configuration Manager is the central point for system change and has the following responsibilities:

2.3.7 Director of Configuration Management

The Manager/Director of Configuration Management is obviously required only in large environments where there are multiple projects to guide. This person is responsible for the processes, procedures, tools, training, etc. to be streamlined and standardized. The Manager/Director of CM has responsibilities for budget and personnel, too.

2.4 WHAT ARE THE ORGANIZATIONAL INFLUENCES?

There are many forces that influence Configuration Management. There are favorable influences and influences that hinder. This section will describe some of those influences and provide some information concerning organizational structures.

2.4.1 What are some of the hindering influences?

There are any number of things that can hinder a Configuration Management effort. Some of those things include funding, training, schedule, lack of management savvy, poor customer service attitude, and territoriality.

Some of these things in the list have a fairly obvious cause and effect. For instance, it is obvious that if the project is underfunded, the Configuration Management team may be the third group reduced or eventually eliminated to save costs (after the process improvement and documentation teams). Also, like new businesses that are undercapitalized - they don't last long - and CM efforts don't either.

When it comes to Training, one can look at the training of the Configuration Management team just as easily as the entire project team. Without proper training in processes, procedures, tool usage, etc, there will be problems, albeit not as catastrophic as a lack of funding, but troublesome at best.

Scheduling is listed because all too often, projects are ruled and governed by schedules, and CM is rarely in a position to alter them. Therefore CM efforts and CM personnel are hard pressed to comply. Working too quickly and cutting corners, while not advised, is often required and encouraged of CM Professionals. CM Professionals must be ready for these demands and address them in a way that minimizes the negative impact on the Configured Item(s).

The lack of Management Savvy is another road block all too frequently encountered. If upper management has not been convinced of the role of CM in correct and timely delivery, it will not be supportive of CM, and the CM team's efforts will be difficult. The role of the CM Professional in this case is to educate, sell, and persuade key members of the management team in an effort to gain their support. Another problem with management when they are not very CM savvy is that management tends to make choices and decisions without consulting CM. As CM Professionals, we must be aware that this can happen and to be prepared for those times.

Poor Customer Service Attitude, apart from the funding concern, is perhaps one of the worst things that can happen to a CM team. It used to be called the "Total Quality Concept": the notion that everyone on your CM Team must treat everyone with whom they work (bosses and peers alike) as customers. A bad attitude can drive a team and a project down faster than a bad rumor.

Lastly, territoriality is the sense that some people have that their job is theirs and their work is theirs and no one shall interfere. It is also known as a strong sense of 'ownership'. The problem with this is that when members of your CM team have this isolationist attitude, the team relationships will be strained and will eventually break down. For efficiency, CM teams cannot abide this personality/practice/style in team members.

2.4.2 What are some of the favorable influences?

The aforementioned hindering influences all have opposites that apply here, and there are some specific favorable influences that can be mentioned. These would be good planning, common practices, and knowledgeable team members.

Good Planning from the beginning that includes Configuration Management will help ensure that a Configuration Management effort will succeed.

Having common practices between configuration efforts within an organization has great benefit not just from a cost savings perspective, but from an employee portability perspective, too. Those involved in development also enjoy unparalleled benefit from standard methods across projects.

Having team members aware of Configuration Management concerns makes the job of CM easier in that fewer problems will arise. Also, having CM team members aware of the development arena, the nature of the project, etc., makes for better communication and keeps favorable things happening.

2.4.3 What are some common organizational structures?

There are at least three organizational structures in use by Configuration Management teams and organizations.

The traditional hierarchical organization chart would put a Director of CM at the top. Then each Configuration Manager reporting to the Director would be on the second level followed by each Team member reporting to the configuration manager on the third.

There are smaller firms that have only one Configuration Manager and there isn't any true CM organization within which he/she fits.

The third is a matrixed organization where a Director of CM is responsible for the assignment of Configuration Managers (and associated teams) to projects out of a "pool" of Configuration Managers. A single CM may be responsible for multiple projects.

There is a fourth organization structure. It consists of one manager of a CM group with team members reporting directly to him. This team handles all projects. The responsibility is distributed by functionality instead of projects.


Previous: Introduction Next: CM Processes