31
SOFTWARE CONFIGURATION MANAGEMENT In Deep

Software configuration management in deep

Embed Size (px)

Citation preview

Page 1: Software configuration management in deep

SOFTWARE CONFIGURATION MANAGEMENT

In Deep

Page 2: Software configuration management in deep

Sources• Mario E. Moreira. Adapting Configuration Management for

Agile Teams - Balancing Sustainability and Speed. Wiley,2010. ISBN: 9780470746639.

• Bob Aiello and Leslie Sachs. Configuration ManagementBest Practices - Practical Methods that Work in the RealWorld. Addison-Wesley, 2011. ISBN-13: 978-0-321-68586-5.

Page 3: Software configuration management in deep

Configuration Management (CM)• CM is an engineering and management discipline

that focuses on the management of change.• CM enables change with its core attributes of

identifying configuration items, controllingchanges to items, auditing on the baseline ofitems, and reporting on the items.

• The basis for a CM process includes a set offunctions that improve the integrity and quality ofcode, tools, documents, designs, and virtuallyany item that an organization desires to manage.

Page 4: Software configuration management in deep

Why CM ??• Because the organization in which the product

team lives is following an industry frameworkor standard (see below). These frameworks orstandards include a CM component becausethey recognize the importance of CM toorganizations.

• It is important to review any framework orstandard so that you understand the impact anddetails when implementing CM.

Page 5: Software configuration management in deep

Why CM ??• Institute of Electrical and Electronics Engineers (IEEE).• IEEE 828— 2012 Standard for Software Configuration Management

Plans• International Organization for Standardization (ISO).

• ISO 10007—Quality Management Systems—Guidelines forConfiguration Management

• ANSI/ITAA EIA-649-A—National Consensus Standard forConfiguration Management

• ISO/IEC/IEEE 12207 and 15288• Information Technology Infrastructure Library (ITIL) CM.• Capability Maturity Model Integration (CMMI) CM (process area in

level 2).

Page 6: Software configuration management in deep

CM comprises four fundamental valuesor components

Page 7: Software configuration management in deep

Identify• By identifying CIs, you establish a baseline of

software-related items where you can thencontrol, audit, and report the changes occurringto this baseline.

• CIs may include the product deliverables and thecorresponding plans, requirements,specifications, designs, source code,executables, tools, system information (i.e.,software & hardware platforms, etc.), and testcases, etc.

Page 8: Software configuration management in deep

The component of identification may be divided into four sub-processes:

• Detect.• Name.• Acquire.• Baseline.

Page 9: Software configuration management in deep

Identify• Detect: it refers to defining and identifying the CIs that

make up your product. This is more than just sourcecode. This may be web pages, documents, or evenrequirements.

• Name: it refers to developing a nomenclature that isunique, unambiguous, and traceable to easily identifyand locate the CIs. This typically evolves into namingconventions.

• Acquire: it is the process of collecting the CIs under CMcontrol.

• Baseline: it is the process of establishing a cohesive andmeaningful set of CIs.

Page 10: Software configuration management in deep

CM comprises four fundamental valuesor components

Page 11: Software configuration management in deep

Control: is the ability to control changes to allconfiguration items (CIs) in your product

The sub-processes of Control are

• version control,

• change control,

• build management,

• and release engineering

Page 12: Software configuration management in deep

Control in resume

Page 13: Software configuration management in deep

Control

• Version control refers to the versioning ofconfiguration items.

• Changes are typically controlled by a ‘versioncontrol process and all changes are versionedincrementally.

• Modern version control processes typically areintegrated with tools with version controlcapabilities.

Page 14: Software configuration management in deep

Control• Change: it refers to an effective means of proactively

controlling changes to a product.

• An effective way of facilitating control over changes to aproduct is to implement a Change Control Board (CCB).

• The CCB represents interests of the project managerand all groups who may be affected by the change tothe software baseline. The CCB authorizes theestablishment of a software baseline, reviews andauthorizes changes to a baseline, and approves thecreation of products (via releases) from a softwarebaseline.

Page 15: Software configuration management in deep

Control• Build: it refers to a standard repeatable and measurable

build and release packaging process.

• Release: it refers to a controlled way of acquiringapproval for release deliverables, installing andconfiguring the product into production therebyestablishing the production baseline, and making theproduct generally available to the customer.

Page 16: Software configuration management in deep

CM comprises four fundamental valuesor components

Page 17: Software configuration management in deep

Audit

• Ability to ensure correctness, completeness,and consistency of baselines.

• This helps us ensure the integrity of the productunder development so that it can be determined ifthe actual configuration of the product andchanges therein are aligned with the physical andfunctional specification that were agreed upon.

• In other words, is what we said we wouldchange actually what was changed and werethere any unauthorized changes?

Page 18: Software configuration management in deep

CM comprises four fundamental valuesor components

Page 19: Software configuration management in deep

Report

• It is the ability to record and report the status ofcomponents surrounding projects.

• This is a form of communication that helps usunderstand what has changed, the evolution ofchanges, and the status of CM in general.

Page 20: Software configuration management in deep

Report

The primary benefit of reporting is that it affords anopportunity to systematically collect the dataneeded, record the data in a measurable,meaningful, and repeatable way, and then reporton the data to the appropriate personnel forimprovement opportunities.

Page 21: Software configuration management in deep

CM Practices• Planning

• Version control

• Change control

• Build management

• Release

• Problem Management Practice

• Audit

• Report Practice

Page 22: Software configuration management in deep

Planning Practice

It focuses on establishing a common approach forhow CM will be implemented consistently andeffectively on a product line and projects therein.

Page 23: Software configuration management in deep

Version control

It is a CM practice that combines a sequentialnumbering scheme for artifacts within the samelineage as they are changed and a repositoryand tool which automates the management ofarchiving the artifacts and their changes using acheck-out/check-in process.

Page 24: Software configuration management in deep

Version control• CM version control technology is perceived to be core

and critical to the job function of a CM professional’swork and they believe it is critical to maintain the sourcecode of the product.

• Version control is typically the first technology that aproduct team wants and it is the first tool implemented.

• Some of the CM professional’s work revolves aroundinstalling, improving, and maintaining the version controltechnology.

• By having a CM control mechanism of change, this helpsavoid one engineer overwriting changes made by another.

Page 25: Software configuration management in deep

Change control

• It is a practice that is used to proactivelymanage changes to a baseline orenvironment.

• This typically includes defining the baselines forcontrol, establishing a Change Control Board(CCB) who authorize the establishment of andchanges to a baseline, defining CCB conductguidelines, and defining repeatable changecontrol processes to manage changes to thebaseline(s).

Page 26: Software configuration management in deep

Build management• It is the process of identifying source code

(preferably in a CM version control system), andthrough some means of compilation orgeneration (via a compiler, linker, IDE, etc.)produces a set of executables and other fileswhich can be used to perform a run-timefunction that represents a deployable product inpart or in whole.

• These executables and deliverables form the basisfor the product release and are the income-producing assets for software companies.

Page 27: Software configuration management in deep

Release

• It is a common and highly valued practice in CMthat focuses on managing changes intoproduction.

• This typically includes defining a releasemigration infrastructure and a repeatable releaseprocess, which may include identifying baselines,attaining approvals from the CCB or customer,and installing deliverables into production (e.g.,on servers or onto media)

Page 28: Software configuration management in deep

Problem Management Practice

• It focuses on managing and resolvingproblems in a project, product, ororganizational lifecycle.

• A ‘‘problem’’ may be divided into (but not limitedto) types such an issue, a defect, andnoncompliance.

• This practice typically includes establishing aproblem management infrastructure and arepeatable problem management process totrack problems to closure.

Page 29: Software configuration management in deep

Audit

• It is used to determine the integrity of baselinesand to assess compliance to CM policy,processes, and technology usage.

• This typically includes defining a repeatable auditprocess to assess compliance, recommendimprovements, and report audit results.

Page 30: Software configuration management in deep

Report Practice

The Report practice focuses on communicating thestatus of CM tasks to the team and management.

Page 31: Software configuration management in deep

Questions?

Thanks!!