Markdown Editor

Software Configuration Management Plan Template (IEEE 828)

SCM plan: configuration items, naming, baselines, branching, change control and CCB, status accounting, audits, releases

Testing & QualityFullIEEE 828-2012scmplan

How to use: Use it to define how code, documents and releases are identified, changed and audited. Start with the configuration item list and naming conventions, then the change control flow. The main pitfall is a plan that contradicts the real branch protection and pipeline settings.

Preview

Software Configuration Management Plan: [Project or product name]

Complete Software Configuration Management Plan (SCMP). The structure follows the configuration management plan content described in IEEE 828-2012: introduction, SCM management, configuration identification, configuration control, status accounting, audits and reviews, interface control, release management, tools and records. Replace every [bracketed] value and every row marked Example.

Document control

FieldValue
Document ID[SCMP-PROJECT-001]
Project / product[Project name]
Version[0.1]
Status[Draft / In review / Approved / Superseded]
Owner[@configuration-manager]
Classification[Internal / Confidential]
Last updatedYYYY-MM-DD
Repository location of this plan[docs/scm-plan.md in repository X]
Related documents[Project management plan], [SQA plan], [Release plan], [Change management procedure]

Approvals

RoleNameDecisionDate
Configuration manager[@name][Approved / Rejected / Approved with comments]YYYY-MM-DD
Project manager[@name][Decision]YYYY-MM-DD
Engineering lead[@name][Decision]YYYY-MM-DD
SQA lead[@name][Decision]YYYY-MM-DD

Revision history

VersionDateAuthorChange summary
0.1YYYY-MM-DD[@name]Initial draft
0.2YYYY-MM-DD[@name]Example: Switched from Git Flow to trunk-based development with release branches
1.0YYYY-MM-DD[@name]Example: Approved by the change control board

Contents

1. Introduction

1.1 Purpose

This plan defines how [organisation] identifies, controls, records and audits the configuration of [product name] from project start to [end of support], so that every delivered release can be reproduced and every change can be traced to an approved request.

1.2 Scope

AspectCovered
Software items[Web application, Orders API, mobile app, infrastructure as code, database schema]
Documentation[Requirements, architecture, test documentation, user guides, this plan]
Environments[Build, test, staging and production configuration]
Life-cycle spanDevelopment, release, maintenance until [end-of-support date]
Organisations[Internal teams], [Supplier X], [Customer acceptance team]

1.3 Key terms

TermMeaning in this plan
Configuration item (CI)A work product placed under configuration control and managed as one unit
BaselineAn approved, frozen set of CI versions that serves as the basis for further work
Change control board (CCB)The group that approves or rejects changes to baselined items
ReleaseA baseline packaged and delivered to a user or environment

2. SCM management

2.1 Organisation

RoleResponsibilitiesAuthority
Configuration managerOwns this plan, maintains CI register, runs status accounting, leads auditsCan block a release that fails audit
Change control boardApproves changes to baselines; prioritises change requestsApprove, reject, defer changes
Release managerBuilds, signs and delivers releasesCan stop a deployment
DevelopersWork in branches per section 3.4; link commits to change requestsMerge after review
SQA leadVerifies conformance to this planRaises findings
Repository administratorsMaintain access rights and branch protectionChange repository settings via change request

2.2 Change control board

ItemValue
Chair[Product owner or programme manager]
Members[Engineering lead, test manager, operations lead, configuration manager, security lead]
QuorumChair plus three members including engineering and test
Meeting cadence[Weekly; ad hoc for emergency changes]
Decisions recorded in[Change request ticket and CCB minutes]

2.3 Policies

  • Every change to a baselined CI is linked to an approved change request or defect ID.
  • No direct commits to protected branches; all changes arrive through reviewed pull requests.
  • Every release is built by the CI pipeline from a tagged commit; local builds are never shipped.
  • Build inputs (dependencies, base images, tools) are pinned and recorded.
  • Access to production configuration follows least privilege and is reviewed [quarterly].

3. Configuration identification

3.1 Configuration items

CI IDNameTypeLocationOwnerBaseline in
CI-SRSSoftware requirements specificationDocumentdocs/requirements/srs.md[@analyst]Requirements baseline
CI-ARCHArchitecture descriptionDocumentdocs/architecture/[@architect]Design baseline
CI-WEBWeb application sourceSource codeapps/web[@web-lead]Product baseline
CI-APIOrders API sourceSource codeservices/orders[@api-lead]Product baseline
CI-DBDatabase schema and migrationsSource codeservices/orders/migrations[@api-lead]Product baseline
CI-IACInfrastructure as codeConfigurationinfra/[@platform-lead]Product baseline
CI-TESTAutomated test suitesSource codetests/[@test-lead]Product baseline
CI-DEPSDependency lockfiles and SBOMConfigurationpnpm-lock.yaml, sbom.json[@configuration-manager]Product baseline
[CI-xxx][Name][Type][Location][@owner][Baseline]

3.2 Naming and versioning conventions

ObjectConventionExample
Release versionSemantic versioning MAJOR.MINOR.PATCH4.2.1
Pre-releaseMAJOR.MINOR.PATCH-rc.N4.2.0-rc.3
Git tagv + versionv4.2.1
Release branchrelease/MAJOR.MINORrelease/4.2
Feature branchfeat/<ticket>-<short-name>feat/ORD-812-split-shipping
Fix branchfix/<ticket>-<short-name>fix/ORD-901-tax-rounding
Container image<registry>/<service>:<version> plus digestregistry.example/orders-api:4.2.1
Document versionMAJOR.MINOR in document control table1.3
Database migrationNNNN_<description>.sql, never edited after merge0042_add_split_shipping.sql

3.3 Baselines

BaselineEstablished whenContentsApproved by
Requirements baselineRequirements review passedCI-SRS, acceptance criteriaCCB
Design baselineDesign review passedCI-ARCH, ADRs, interface specificationsCCB
Product baseline (per release)Release candidate passes test completion criteriaAll code, configuration, tests, SBOM at a tagged commitCCB and release manager
Operational baselineRelease deployed to productionProduct baseline plus production configuration valuesOperations lead

3.4 Branching model

The project uses trunk-based development with short-lived feature branches and a release branch per minor version for stabilisation and patches.

BranchProtectionWho can mergeLifetime
mainReview by one code owner, all checks green, linear historyDevelopers after approvalPermanent
release/*Review by two, CCB-approved change request linkedRelease managerUntil end of support of that minor version
feat/*, fix/*NoneAuthorDeleted after merge (target under 3 days)

4. Configuration control

4.1 Change classes

ClassExamplesApprovalLead time
Routine (pre-approved)Dependency patch within policy, copy fixCode review onlyNone
NormalNew feature, schema change, configuration change in productionCCBNext CCB meeting
EmergencyFix for severity-1 incidentCCB chair plus one member, reviewed at next CCBHours

4.2 Change request content

Each change request (CR) records: ID, title, requester, date, affected CIs, reason, description, impact analysis (scope, schedule, cost, risk, interfaces, security), priority, CCB decision and date, implementing branch or pull request, verification evidence, and closure date.

CR IDTitleAffected CIsImpactDecisionDate
CR-0147Example: Support split shipping for multi-warehouse ordersCI-API, CI-DB, CI-WEB, CI-SRS3 weeks; schema migration; new interface with warehouse systemApproved for 4.3YYYY-MM-DD
CR-0151Example: Upgrade runtime to next LTSCI-API, CI-IAC, CI-DEPS4 days; regression test full suiteDeferred to 4.4YYYY-MM-DD
[CR-nnnn][Title][CIs][Impact][Decision]YYYY-MM-DD

4.3 Change control flow

The flow below applies to normal changes. Routine changes skip the CCB step; emergency changes are approved by the chair and ratified afterwards.

4.4 Deviations and waivers

A request to release a CI that does not meet its requirements is handled as a deviation or waiver with CCB approval, an expiry date and a linked corrective change request.

5. Configuration status accounting

ReportContentSourceFrequencyAudience
CI registerEvery CI with current version and ownerRepository, this planContinuousEveryone
Change request statusOpen, approved, implemented, closed CRs with ageingIssue trackerWeeklyCCB
Baseline content listCI versions in each baseline, commit SHA, image digestsRelease pipelinePer baselineCCB, auditors
Release notesChanges, fixes, known issues per releaseCRs and pull requestsPer releaseUsers, support
Deployed version reportVersion running in each environmentDeployment toolContinuousOperations

Status data is generated from tools wherever possible; manual registers are reconciled against the repository [monthly].

6. Configuration audits and reviews

AuditPurposeWhenEvidence examinedPerformed by
Functional configuration audit (FCA)Confirm the CI performs as specifiedBefore product baselineTest completion report, traceability matrix, open defectsConfiguration manager, test manager, SQA
Physical configuration audit (PCA)Confirm the release contents match the baseline records and documentationBefore deliveryTag, build provenance, SBOM, image digests, release notes, installation guideConfiguration manager, SQA
In-process reviewCheck that this plan is followed day to day[Monthly]Sample of merged pull requests and CRsSQA

6.1 Audit checklist (PCA excerpt)

  • Release tag points to a commit on the release branch.
  • Build was produced by the CI pipeline; provenance attestation present.
  • Image digests in the deployment manifest match the registry.
  • SBOM generated from the same build and archived.
  • Every change since the previous release links to a CR or defect.
  • Release notes and installation guide match the delivered version.

Audit findings follow the corrective action process in the SQA plan.

7. Interface control

Interface IDBetweenSpecificationOwner of specificationChange coordination
IF-01Orders API and web applicationOpenAPI file services/orders/openapi.yamlAPI leadContract tests; breaking changes need CR and version bump
IF-02Orders API and warehouse system (external)Interface control document ICD-WH-003[Partner]Joint interface board; 30 days notice for changes
IF-03Platform and payment providerProvider API version [2025-xx]ProviderPin API version; review provider changelog monthly
[IF-nn][Parties][Specification][Owner][Process]

8. Release management and delivery

8.1 Release types

TypeVersion changeBranchApproval
MajorMAJORrelease/N.0CCB, product owner
MinorMINORrelease/N.MCCB
PatchPATCHExisting release/N.MRelease manager, CCB informed
Emergency hotfixPATCHExisting release/N.MCCB chair

8.2 Build and packaging

  • Builds run in the CI pipeline from a clean checkout of the tag.
  • Artifacts are signed [with Sigstore / GPG key ID] and stored in [artifact registry] with immutable tags.
  • Build provenance and SBOM are attached to each artifact.
  • Builds are reproducible: rebuilding the same tag produces artifacts with the same content hashes, or differences are documented.

8.3 Delivery and deployment

StepActionEvidence
1Deploy signed artifact to staging; run smoke testsPipeline log
2CCB go decision recordedCR or minutes
3Deploy to production [canary 10% then 100%]Deployment record
4Update deployed version report and release notesStatus accounting
5Archive release package and audit recordsRecords store

8.4 Rollback

Every release keeps the previous production artifact available. Rollback is a redeploy of the previous tag; database migrations are written to be backward compatible for one release so rollback needs no schema reversal.

9. Supplier and third-party item control

ItemSourceControl
Open-source dependenciesPackage registriesPinned in lockfiles; new packages approved per dependency policy; vulnerability scan in CI
Base container images[Registry]Pinned by digest; rebuilt monthly
Supplier deliveries[Supplier A]Delivered to a dedicated repository; inspected and tagged on receipt; merged by CR

10. SCM tools and infrastructure

PurposeToolBackup and security
Version control[Git hosting service]Daily mirror to [location]; SSO and MFA required
Change requests and defects[Issue tracker]Vendor backup; export weekly
CI and release pipeline[CI service]Pipeline as code in repository
Artifact and image registry[Registry]Immutable tags; replication to second region
Infrastructure state[IaC tool and state backend]Encrypted, versioned state storage

11. SCM schedule and resources

ActivityTimingEffort
Set up repositories, branch protection, pipelinesProject week 1-2[5 person-days]
Establish requirements and design baselinesAt review milestones[1 day each]
CCB meetingsWeekly[1 hour per member]
FCA and PCABefore each minor or major release[2 days]
Status accounting reconciliationMonthly[0.5 day]

12. Records and plan maintenance

RecordLocationRetention
Change requests and CCB minutes[Issue tracker, wiki][Product life + 3 years]
Baseline content lists and SBOMs[Records store][Product life + 3 years]
Audit reports[Records store][Product life + 3 years]
Release packages[Artifact registry][Until end of support + 1 year]

This plan is reviewed [at each major release and at least annually]. Changes to it are made by pull request and approved by the CCB.

13. Glossary and references

TermMeaning
FCAFunctional configuration audit
PCAPhysical configuration audit
SBOMSoftware bill of materials: list of components in a build
ProvenanceVerifiable record of how and from what an artifact was built

References: [Project management plan], [SQA plan], [Release plan], [Dependency policy], IEEE 828-2012, IEEE Standard for Configuration Management in Systems and Software Engineering.

Standard and licence note

Structure aligned with IEEE 828-2012, IEEE Standard for Configuration Management in Systems and Software Engineering, configuration management plan content. This template is original text written for this collection and reproduces no text from the standard; obtain the standard from IEEE for its normative requirements. Template licence: MIT.

Related templates