Configuration Management in a Nutshell
Configuration Management Configuration Management (CM) is the process of managing the full spectrum of an organization s products, facilities and processes by managing all requirements, including changes, and assuring that the results conform to those requirements. The best CM process is one that can: 1) accommodate change. 2) optimize the reuse of standards and best practices. 3) assure that all requirements remain clear, concise and valid. 4) communicate 1), 2), and 3) to each user promptly and precisely. 5) assure conformance in each case. Institute of Configuration Management Cook/Leishman CM in a Nutshell 2
Without software the F-16C is nothing more than a 15 million dollar lawn dart. Lt. Gen. Robert H. Ludwig Cook/Leishman CM in a Nutshell 3
The pity is that almost 75% of integration problems can be attributed to poor CM. And this is TOTALLY preventable!!! Cook/Leishman CM in a Nutshell 4
Configuration Management Configuration Management: The discipline that applies technical and administrative surveillance to Identify and document functional and physical characteristics of a configuration item Control changes to those characteristics Record and report change processing and implementation status Configuration Management consists of artifact and change management. Fastrak Training Inc. Cook/Leishman CM in a Nutshell 5
Purpose of Software Configuration Management The purpose of SCM is to identify the configuration of the software at given points in time, systematically control changes to the configuration, and maintain the integrity and traceability of the configuration throughout the software life cycle. Fastrak Training Inc. Cook/Leishman CM in a Nutshell 6
Goals of Configuration Management Maximize productivity by minimizing mistakes change faster and communicate better through documents, forms, records and data to achieve consistent conformance and continuous improvement. Software Configuration Management, H. R. Berlack 2 nd Place And you thought YOU had a bad job! Cook/Leishman CM in a Nutshell 7
The Benefits of Configuration Management Reduces confusion, provides order Organizes tasks and activities to maintain the integrity of the software Helps determine when software is ready for release Ensures correct configurations of software Ensures code is written to meet a requirement Provides traceability to people and requirements Limits legal liability by providing a record of actions Cook/Leishman CM in a Nutshell 8
The Benefits of Configuration Management - con t. Helps reduce lifecycle costs Provides for consistent conformance to customer requirements Provides a stable working environment Enhances compliance with standards Enhances status accounting Enhances auditing abilities Provides communication channels between groups Helps produce higher quality software! Cook/Leishman CM in a Nutshell 9
Sources of change Customers new or changing requirements Developers better methods changes to technology Managers reorganization of people/resources different project approaches Regulations Policies Standards Change # 345.34g.2(b) Cook/Leishman CM in a Nutshell 10
Basic SCM Concepts SCM is divided into the following areas: Identification, Control, Status Accounting, and Audit. SCM answers the questions: Who?, What?, When?, Why? (And maybe Where? ) Who made the changes? What changes were made to the software? When were the changes made? Why were the changes made? Cook/Leishman CM in a Nutshell 11
Configuration Identification Cook/Leishman CM in a Nutshell 12
Configuration Item (CI) A configuration item is an artifact explicitly placed under configuration control (artifact is document or code not hardware). For most projects, the minimum number of controlled items in a software project is whatever is needed to effectively maintain and enhance the product. Cook/Leishman CM in a Nutshell 13
Definition Configuration Identification includes the selection of CIs; the determination of the types of configuration documentation required for each CI; the issuance of numbers and the identifiers affixed to the CI and to the technical documentation (including interface documentation); and the establishment of configuration baselines for CIs. Cook/Leishman CM in a Nutshell 14
Obvious Items Requirements Design Interface Architecture Module Data Code Tests Maintenance Changes You want MY code??? Cook/Leishman CM in a Nutshell 15
More CI Examples Coding Items: Forms Libraries Menus Build Items: Test Build Database Items: Scripts Tables Test Data Cook/Leishman CM in a Nutshell 16
Nomenclature of CIs Any labeling mechanism may be used as long as it satisfies several principles. Every CI shall have a unique mechanism for identifying it. All forms of documentation for a CI must have a unique mechanism for identifying it. All versions, releases, and changes shall be maintained, with their own unique mechanism for identification. The labeling mechanism for a product should be relatable to labeling for a predecessor product. Cook/Leishman CM in a Nutshell 17
Examples of CIs and Identification Example: RFMSS - MAP - DSGN - V01.01-2008MAY20 project module item version date Change that CI!!! I can ALMOST understand what it means! Cook/Leishman CM in a Nutshell 18
Definitions of Baseline A formal departure point for control of future changes. Baselines are documented by approved configuration identifications and provide the basis for control of changes in system/configuration item requirements. A definition of proposed and expected configuration documentation or items at a specific point in time (planning purposes). Cook/Leishman CM in a Nutshell 19
Summary - Identification Identification is the most important of the configuration management activities The four parts of identification are: Selection Documentation Naming Defining baselines. Don t forget to establish the library Cook/Leishman CM in a Nutshell 20
Configuration Control Lack of Control or why some dogs kill their owners! Cook/Leishman CM in a Nutshell 21
Configuration Control Answers the questions: What is controlled? How are the changes to the products controlled? Who controls the changes?
Configuration Control Activities Defining the change process Establishing change control policies and procedures Maintaining baselines Processing changes Developing change report forms Controlling release of the product
How we change systems Standards and Documentation Existing Systems New System Change Requests Find Problem Fix Problem Cook/Leishman CM in a Nutshell 24
How we SHOULD make changes Standards and Documentation Existing Systems Analysis Identification Release New System Change Requests Design Acceptance Test Implement Test Cook/Leishman CM in a Nutshell 25
System Change Process Change Requests Analysis 2.0 Identification 1.0 Existing System Doc. Release 6.0 System Update Design 3.0 Change Process Acceptance Test Implement Test 4.0 5.0 Cook/Leishman CM in a Nutshell 26
Configuration Status Accounting Cook/Leishman CM in a Nutshell 27
A Definition Configuration Report (Status Account): An element of CM, consisting of the recording and reporting of information needed to manage a configuration effectively. IEEE Standard 610.12-1990, IEEE Standard Glossary of Software Engineering Terminology Cook/Leishman CM in a Nutshell 28
Status Accounting Involves the recording and reporting of the change process Goal - To maintain a status record of all items in the baseline Provides status information of the evolving software Provides data to improve the software development process Assists in cost estimation of future software development efforts Indicates Trends Assists in impact analysis Helps prevent the ripple effect Contributes to the decision making process
Status Accounting Answers the questions: What changes have been made to the system? When were the changes made? What was the reason? Who authorized the change? What files were affected by this problem report?
Reports Dependency Report - identifies relationship between controlled items Impact Report - identifies all components affected by a change Build Report - identifies all items that went into the software build Change Status Report - identifies status of all changes Difference Report - identifies differences between version of items History Report - summarizes the historical development Access Control Report - list access privileges for all users Conflict Detection Report - identifies conflicts Aging Report - Open/Active changes oldest to newest by Category, Priority, Product, Status Totals Report - number of changes, open/closed by Category, Priority, Product, Status
Reports cont. Duration Report - Elapsed time, Average time to close by. All Category, Priority, Product, Status Access Control Report - list access privileges for all users Conflict Detection Report - identifies conflicts Aging Report - Open/Active changes oldest to newest by Category, Priority, Product, Status Totals Report - number of changes, open/closed by Category, Priority, Product, Status Duration Report - Elapsed time, Average time to close by All Category, Priority, Product, Status
Example Ad Hoc Reports How many problems were discovered in module ###? How many units/items were promoted to test? What units are John s responsibility? How many problems reports are still open? What is the status (i.e., new, opened, rejected, deferred, hold, closed) of problem report #34? Who is responsible for fixing problem report #34? What applications have the highest rate of change?
Configuration Auditing Cook/Leishman CM in a Nutshell 34
Auditors go in after the battle is over and stab the wounded! {Usually the wounded on YOUR side!} Cook/Leishman CM in a Nutshell 35
A Definition Configuration Audit: An independent examination of a work product or set of work products to assess compliance with specifications, standards, contractual agreements, or other criteria. IEEE Standard 610.12-1990, IEEE Standard Glossary of Software Engineering Terminology Cook/Leishman CM in a Nutshell 36
Audit Verifies that the software product is built according to the requirements standards, or other contractual agreement Goal - To verify that all software products have been: Produced Correctly Identified Change Request Resolved Formal and Informal Audits
Configuration Audit Answers the questions: Does the system satisfy the requirements? Are all changes incorporated in this version?
CONFIGURATION CONTROL BOARDS Cook/Leishman CM in a Nutshell 39
You need two items A plan or process for configuration management The authority to control the changes Often managed by a Configuration Control Board Cook/Leishman CM in a Nutshell 40
Isn t a Control Board Just Another Meeting? Another meeting? No wonder we can t get anything done around here! A committee is a thing that takes a week to do what one good person can do in an hour. Either one meets or one works. One cannot do both at the same time. - Peter Drucker, The Effective Executive When you become too senior to work your work is going to meetings. Source: Joint Application Development, J. Wood, D. Silver Cook/Leishman CM in a Nutshell 41
What is a Control Board? It is a concept that provides for implementing change control at optimum levels of authority. Source: IEEE Guide to Software Configuration Management, IEEE Std 1042-1987 Cook/Leishman CM in a Nutshell 42
Configuration Control Board (CCB) A designated group of representatives primarily tasked to review and approve or disapprove change recommendations An important mechanism in Change Control May be more than one CCB and at different levels, e.g. Customer level System level Sub-system level Project level Cook/Leishman CM in a Nutshell 43
CCB Outcomes Reject Defer Will be included in future block upgrade Refer to higher authority Approve Assign priority NOTES: Outcomes are for each item -- line item veto Voting is not democratic Go ahead make one more change!! Cook/Leishman CM in a Nutshell 44
Expedited Actions Are inevitable Must be limited Must be documented via change request Process Specific manager CCB chair Source: Implementing Configuration Management, Fletcher J. Buckley p. 85 Cook/Leishman CM in a Nutshell 45
CM Tools RCS: very old but still in use CVS (Concurrent Version Control) based on RCS, allows concurrent working without locking http://www.cvshome.org/ Perforce Repository server; keeps track of developer s activities http://www.perforce.com ClearCase Multiple servers, process modeling, policy check mechanisms http://www.rational.com/products/clearcase/ Subversion See next slide. Cook/Leishman CM in a Nutshell 46
Subversion Open Source Project (http://subversion.tigris.org/) Based on CVS Subversion interface and features similar to CVS Commands: checkout, add, delete, commit, diff Differences to CVS Version controlled moving, renaming and copying of files and directories Version controlled metadata of files and directories Server Options Standalone installation Integrated into the Apache webserver The time for branch management is independent of the size of the system (unlike CVS, which creates physical copies of the files, Subversion uses only tags) Cook/Leishman CM in a Nutshell 47
What CM is REALLY like. WINNER And you thought YOU had a bad job! Cook/Leishman CM in a Nutshell 48