Version Control
Version Control refers to the systematic management of changes to source code, configuration, infrastructure definitions, and related artefacts using tools such as Git. It is foundational to enabling collaboration, traceability, continuous integration, and delivery automation.
Level 1 – Initial (Ad Hoc)
Version control practices are inconsistent or non-existent.
Teams may use local file systems or ad hoc methods (e.g. shared drives, manual backups) to manage changes.
Source code, configuration files, and infrastructure changes are often made manually, without history or traceability.
- No standard version control system in place
- Code and configuration changes are sometimes lost or overwritten
- Recovery from defects or incidents is slow and error-prone
- Collaboration is difficult due to lack of visibility or coordination
Level 2 – Managed (Emerging Practice)
A version control system (e.g. Git, SVN) is used by most teams, but adoption and discipline vary.
Version control is primarily used for source code, while other artefacts (e.g. infrastructure, docs) may be unmanaged or updated manually.
- Basic branching and committing practices exist but are inconsistent
- Limited use of pull requests or peer review
- Some teams tag or label releases, but it's not standardised
- Merge conflicts are common due to long-lived branches
Level 3 – Defined (Standardised)
Version control is adopted consistently across the organisation.
All engineering artefacts — including code, infrastructure definitions, configuration, and documentation — are managed in version control.
Standard practices are documented and followed by all teams.
- Short-lived branches or trunk-based development is encouraged
- Pull requests and peer reviews are standard practice
- Commit messages follow agreed conventions
- Release versions are tagged and traceable
- Infrastructure as code is committed and reviewed alongside application code
Level 4 – Quantitatively Managed (Measured & Controlled)
Version control practices are monitored, measured, and optimised across teams.
Metrics are used to evaluate the speed, quality, and efficiency of collaboration and delivery.
- Commit frequency, PR cycle time, and change failure rate are tracked
- Teams monitor branching strategies and adjust for delivery velocity
- Review quality and responsiveness are measured
- Policies enforce consistent use of code ownership and mandatory approvals
- Version control data informs change management and auditability
Level 5 – Optimising (Continuous Improvement)
Version control is deeply embedded in engineering workflows and continuously improved through experimentation, automation, and community feedback.
It supports the entire delivery system — enabling fast, safe, and auditable change across software and infrastructure.
- All code, configuration, infrastructure, and pipeline definitions are versioned
- Repositories are structured for discoverability, reusability, and autonomy (e.g. mono-repos, inner sourcing)
- Best practices evolve through feedback loops and internal communities of practice
- Tooling integrates with CI/CD, incident response, and compliance reporting
- Version control practices enable fast recovery, low-friction experimentation, and scalable governance