Software Configuration Management
Software Development Life cycle or SDLC is also known as a system development methodology, software development process or software process usually targeted to create specific deliverables and artifacts by the software project team.
It is imperative to ENSURE the following during any project’s SDLC:
Proper components being used throughout the Lifecycle
File security and control
Proper application builds
Transfer from the development to target environment
Challenges faced today during implementation of any project are:
Multiple File Copies on Desktops, LAN & Servers by development teams
Files Misplaced or Mishandled by developers
Non-Standard builds cause Errors
What is required is a controlled development environment. In short, what is needed is SOFTWARE CONFIGURATION MANAGEMENT (SCM)
So, What is SCM?
SCM is an infrastructure for software design, development, and deployment.
SCM is a set of utilities to increased productivity and efficiency for applications builds.
SCM is the control of identifying, organizing and controlling modifications to the software being built by a project team.
What is the purpose of SCM?
The purpose is to establish and maintain the integrity of the work products throughout the software life cycle.
What are the items to be controlled in an SDLC? In other words, What are the Configurable Items (CIs) in an SDLC?
Software Requirement Specification (SRS)
High level and Low level Design specification
Test cases and results
Operation/ Installation/User Manuals
Standards and Procedures for software engineering
Standards and Guidelines
The approved, recorded configuration of one or more CIs, that subsequently serves as the basis for further development could be changed only through a Change Control Process.
Simply put, this is what is called a Baseline. In other words, the CIs are set to be baselined.
Now, we know what purpose does SCM serve. Something as below:
Provide a defined and controlled configuration of the SW throughout SDLC
Capability to consistently replicate the executable code of whichever the release or version required
Provide Controls to ensure changes are recorded, approved, and implemented.
Ensure that secure physical archiving (Backup), recovery and control are maintained for the CIs
Maximize productivity by minimizing mistakes
What activities are involved for maintaining a SCM process?
Create CM Plan
Create Central Repository of the Standard Directory Structure
Naming conventions and Identification of CI’s
Configuration Controller Roles/responsibilities
Establish Baselines & Traceability matrix
Defect Identification and Traceability using any Defect tracking tool
Change Control board, CCB, responsible for approving all change requests
Archiving & Retrieval
Summarizing, the following are controlled and ensured in a SCM process:
Create and use standared central folder
Identify and Name CIs in the Project
Use guidelines for versioning and labeling at different stages of a CIs
Identify and Control changes
Track status of Defects, CRs and effort spent on CM activities
Perform Release Checks and CM audits to check for the integrity of the CIs before releases
Track and Report SCM activities to PM/PL.
Perform Archiving of CIs