ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

59
© 2003 IBM Corporation Why did the Tower of Babel fail? Siva Prasanth Rentala IBM-General Motors-WWP, Bangalore BCOZ of language confusion and no Business Process Modeling, Management, and Engineering (BPMME) like Software configuration management usage

Upload: sivaprasanth-rentala

Post on 18-Feb-2017

196 views

Category:

Devices & Hardware


0 download

TRANSCRIPT

Page 1: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

© 2003 IBM Corporation

Why did the Tower of Babel fail?

Siva Prasanth RentalaIBM-General Motors-WWP,

Bangalore

BCOZ of language confusion and no Business Process Modeling, Management, and Engineering

(BPMME) like Software configuration management

usage

Page 2: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Why did the Tower of Babel fail?

The Tower of Babel project failed because of lack of communication and organization.

Page 3: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

"Now the whole earth had one language and few words. And as men migrated from the east, they found a plain in the land of Shinar and settled there. And they said to one another, 'Come, let us make bricks, and burn them thoroughly.' And they had brick for stone, and bitumen for mortar. Then they said, 'Come, let us build ourselves a city, and a tower with its top in the heavens, and let us make a name for ourselves, lest we be scattered abroad upon the face of the whole earth.'

And the LORD came down to see the city and the tower, which the sons of men had built. And the LORD said, 'Behold, they are one people, and they have all one language; and this is only the beginning of what they will do; and nothing that they propose to do will now be impossible for them. Come, let us go down, and there confuse their language, that they may not understand one another's speech.' So the LORD scattered them abroad from there over the face of all the earth, and they left off building the city.' Therefore its name was called Babel, because there the LORD confused the language of all the earth; and from there the LORD scattered them abroad over the face of all the earth."

Page 4: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Contents

Characteristics of Today’s Software industry

SCM Concepts and terminology

Why Software configuration management?

Requirements of Configuration management

Standard reports

Typical Uses of SCM

Page 5: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

The Fundamental Law of Configuration Management

Configuration Management is the foundation of a software project. Without it, no matter how talented the staff, how large the budget, how robust the development and test processes, or how technically superior the development tools, project discipline will collapse and success will be left to chance. Do Configuration Management right, or forget about improving your development process.

Page 6: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

© 2003 IBM Corporation

Today's Software industry characteristics are..

Page 7: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

© 2003 IBM Corporation

Characteristic 1 -

Coordination & Communication

Men and months cannot be interchanged

Fred Brooks

• Number of communication channels increase exponentially with number of team members - the number of coordination problems also increase exponentially with the project size.

Page 8: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Communication Channels

Page 9: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

# Team Members #Communication Channels

1 0

2 1

3 3

4 6

5 10

….. …..

n n*(n-1)/2

Page 10: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Characteristic 2 -

Software is Easy to Copy

Page 11: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Characteristic 3 -

Changes

• Different users / customers have different requirements

• Get clarified / known at a later date

• Changes to business environment

• Technology change

• Personnel whims

Page 12: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Characteristic 4 -

Personnel Turnover

• Developers leave

• Users change

Further Adds to the Coordination problem

Page 13: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Resulting Problems

• Listing seems OK; program does not work• Works in Pune, misbehaves in Detroit.• We had customized for this client, how do we

install the upgrade now?• I had fixed this bug last month. How did it re-

appear?• I haven’t changed the program. Why is it now

blowing up?• Which is the latest source? I need to put a

patch.• In the last month, the user asked for this change

and now she does not want it• Where did Gates leave the programs he was

working on?

Page 14: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Main Classes of Problems

• Double maintenance problems• Shared data• Simultaneous update• Missing / unknown version problem

Page 15: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Double Maintenance

• Multiple copies of same software in use• Fix in one

- SHOULD FIX IN OTHERS• Example

- Same set of common routines in two systems- Same system - multiple sites

• forget to inform• sites detect bug at same time and “fix”

differently• = = > > DIVERGENCE

• Should do- Bug fixed in all copies- Fix same bug in identical manner in all copies

Page 16: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Shared Data

• Changes made in one program interfere with proper functioning of other program

- Example : subroutines, MW objects

• Need

- Control of modifications

- Good communications

Page 17: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Simultaneous Update

• One module being worked on by more than one programmer

- Changes made by one programmer disappear

• Need

- Better division into modules

- Ensure simultaneous working

Page 18: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Missing / unknown Version problem

• Consciously decide which version to keep, which to destroy

• Use a systematic method to identify versions and changes across versions

• Use consistent back-up procedures

?

Page 19: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Why Software Configuration Management

• SCM addresses all these issues!!

AbracadabAbracadabrara

Page 20: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

SCM provides visibility into the status of the evolving software product.

SCM answers the following: Who, What, When, and Why.

Who made the changes? What changes were made to the software? When were the changes made? Why were the changes made? Who will benefit from SCM(Importance in

descending order) : Software developers Project managers Quality Assurance (QA) personnel Testers Customer

Page 21: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Program Families & Configurations

A

DE

B

C

F

A

CLIENT-1

DG

B

W

E

F

CLIENT-2

Applications

Applications

Page 22: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

AD

E

B C

F

G W

CLIENT-A

A

B

C

D

E

F

CLIENT-B

A

B

D

E

F

G

W

Applications

Page 23: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

SCMConcepts & Terminology

Page 24: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Definitions

The arrangement of a computer system or component as defined by the number, nature, and interconnections of its constituent parts

Configuration

The art of identifying, organizing and controlling modifications to the software being built by a programming team. The goal is to maximize productivity by minimizing mistakes.

Configuration Management

Page 25: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Configuration Management

Page 26: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Configuration Identification

The approved documentation or description that identifies and defines a configuration item's (CI) functional and physical characteristics in the form of a specification or standard, algorithm or code, and interface control description.

A

BC

D

Page 27: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Configuration Control

• Evaluation, coordination, approval or disapproval, and implementation of changes to configuration items after formal establishment of their configuration identification

Page 28: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Configuration Status Accounting

• Recording and reporting of information needed to manage a configuration effectively. Includes a listing of the approved configuration identification, the status of the proposed changes to the configuration identification, and the implementation status of approved changes.

CI = 30

CR = 2

PR = 1

Page 29: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Configuration Audit

• Verifying the following:

•All required configuration items have been produced

•The current version agrees with the specified requirements

•The technical documentation completely and accurately describes that configuration items

•All change requests have been resolved

Page 30: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Requirements of Configuration Management

Page 31: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

CM Requirements

• Identification of Configuration Items• Establishment of Baselines• Document control• Version control• Management of Workspaces• Creation of Builds• Backup & Archival• Management of Changes to Baseline

Configuration Items• Status Accounting• Configuration Audits

Page 32: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Configuration Items and Baselines

• Configuration Item

- An aggregation of software, documents and data that is treated as a single entity in the configuration management process

There are 3 types of CIs:

Baselined – Formally reviewed and agreed document/source code, which is basis for, further development. E.g. Requirement specification document, design document etc.

Controlled and Managed – Documents describing the admin and project Management activities. E.g. Project management plan, task allocation and project schedule documents, coding or GUI guidelines

Controlled – Documents obtained from the customer which are not managed by us. E.g. reference technical material.

Page 33: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

What is Baseline?

- A item that has been formally reviewed and agreed upon, that thereafter serves as the basis for further development, and that can be changed only through formal change procedures

Page 34: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Configuration Items & Baselines - Typical Scenario

• Definition Baseline - Created at the end of Requirement Specifications. Typical configuration items (CI) -

- Requirement Specifications- Project Plan- Design Standards / Guidelines- Acceptance Test Plan

• Design Baseline - Created at the end of Design. Typical CIs -

- System Design Specification- Program Specification- Data Base Design- Coding Standards- System Test Plan- User Manual- User Interface Standards- Testing Standards

Page 35: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

• Code / Unit Test Baseline - Created at the end of coding and unit. Typical configuration items (CI) -

- source code

- object code

- unit test data / scripts

• Testing Baseline - Created at the end of system testing . Typical CIs -

- System test data

- system test scripts

- operations manual

- installation manual

Page 36: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Definition Baseline Creation - A schematic

Individual workspaces

Internal review changes

Definition Baseline

Internal review Workspace

Customer Review Workspace

Formal change management procedures become applicable

Configuration Audit

Review Log

Review Log

Page 37: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Document control Document Control procedure ensures the

traceability of all the documents.

It involves the following tasks: Defining the naming scheme. Updating Document Record List (DCR) of

the documents to reflect the changes and assigning of version and release nos.

Provides usage of the documents by giving access rights to different folders.

MyName is

Mr.Unique

Page 38: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Version A variant of some artifact; later versions

of an artifact typically expand on earlier versions.

Version Control Version Control ensures the ability to

reproduce any version of the software at any given time. It controls versions of source code, executables and documents .It provides version change history to ensure trace-ability.

A1

A2A3A4

Page 39: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

An operational version of a system or part of a system that demonstrates a subset of the capabilities to be provided in the final product.

Page 40: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Work space management Workspaces refer to ‘private’ areas where

developers can implement and test code in accordance with the project’s adopted standards in relative isolation from other developers.

Page 41: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Uncertainty is the only certain in this world.

Why Backup?

Page 42: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Change Control

Page 43: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

I can make the change directly in the baseline copy. Its just a one line change, so I don’t want to fool around with Change Request, check-out, check-in, etc

Page 44: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Change Control

• Record of changes

• Approval of change requests after analysing impacts (impact on retest & review, think it as another proposed)

• Maintaining of baselines

• Traceability between changes and change requests and vice versa

IEEE Definition

An element of configuration management, consisting of the evaluation, coordination, approval or disapproval, and implementation of changes to configuration items after formal establishment of their configuration identification

Page 45: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Change Management Process

Change request documented

Change request Evaluated

Change request reviewed for approval CCB approved

Change order prepared

Configuration items, tasks, QC required is documented

Configuration items checked out

Change made; QC activities carried out

Configuration audit carried out

Changed items carried out

New product release made

Pending rejected

Page 46: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Change Request

XYZ Software Corp. Change RequestProject: Initiated By: Date:

Description of Change Requested:

Benefits Expected:

Signature of Initiator: Attachments:Evaluated by: Change Request No.

Technical Impacts:

Estimates for costs and schedule

Signature of evaluator: AttachmentsDate:

Approving Auth Signature DateRecommendations

Change Order Number

Page 47: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Page 48: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Change Control Board (CCB)

• Also called Configuration Control Board

• A group of people responsible for evaluating and approving and disapproving proposed changes to configuration items, and for implementation of approved changes.

• Typical CCB members

- Project Manager

- User Representative

- Quality Controller

- Configuration Controller

Page 49: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Some Good Practices

• Keep version history in the configuration item.

• Item to contain exact item name, version number, date

• Identify configuration items to be tracked

• Code should have history in the comment

• Highlight the changes in the document atleast for two versions.

Page 50: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Configuration Audit

Page 51: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Configuration Audits

• To ensure that what has been built is in conformance with what was required (original specifications and change requests) by analysing :

- Test reports

- review reports

- change logs

Definition

Verification of a configuration item’s compliance with its configuration identification

Page 52: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Status Accounting

An ounce of derivation is worth a pound of analysis

- Wayne Babich

Page 53: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Configuration Status Accounting & Reporting

• Keep track of

- Current identification of items

- Configuration of delivered software

- Status of change requests / problem reports

- Status of approved changes

IEEE Definition

An element of configuration management, consisting of the recording and reporting of information needed to manage a configuration effectively

Page 54: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Typical Information

Baseline Library

Items / Units

Baseline Units

Release

Release Units

Change OrderBackup

Backup Units

Check-in / Check-out

Change Request/ Problem Log

Page 55: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Standard Reports

• Summary list Change Requests / Problem Reports

• List of CR / PR pending approval• Summary list of Change Orders• List of Change Orders pending completion• Items and versions of a Baseline• Current set of units in the library• List of changes since Baseline• List of checked-out items• History of backups• History of releases• List of items / versions in a baseline• List of items / version in a release

Page 56: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Typical Uses of the Configuration Accounting Data

• In which backup is version 1.6 of P13?

• What are the program level changes between release 5.1 and 5.2?

• Which programs were replaced in release 5.2?

• Which items were changed for Change Order 671? What were the versions of the units before and after the change? Have all the changes been incorporated and checked-in?

Page 57: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Page 58: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

© 2003 IBM Corporation

Can we make SCM happen?

Page 59: Ibmsoftwareconfigurationmanagement 24-6-2010-101119015120-phpapp02

Configuration Management

© 2003 IBM Corporation

Thank You