-
Notifications
You must be signed in to change notification settings - Fork 0
ContinuousIntegration
title: Continuous Integration radar_quadrant: Techniques radar_ring: Adopt radar_position: inner created: 2026-05-22 last_updated: 2026-05-22 related: ["TerraformTesting", "TwelveFactorApp", "TwentyYearsSRE"]
Continuous Integration (CI) is the practice of integrating code to a shared mainline frequently — at least daily — so that integration problems surface immediately rather than accumulating over weeks. The practice was formalised by Kent Beck as part of Extreme Programming in the 1990s and documented by Martin Fowler in a canonical 2000 article, substantially revised in 2024.
Fowler defines eleven practices:
- Maintain a single version-controlled mainline repository
- Automate the build
- Make the build self-testing
- Every commit triggers an automated build
- Every developer commits to mainline at least daily
- Immediately fix broken builds — the mainline must stay green
- Keep the build fast (target: under 10 minutes)
- Test in a production-cloned environment
- Make build state visible to the team
- Automate deployment
- Hide work-in-progress using feature flags or branch-by-abstraction, not long-lived branches
The defining property of CI is integration frequency, not the presence of a pipeline. Feature branching with a CI service running on each branch is not CI — it is the same integration hell deferred to merge time. CI requires committing to the shared mainline daily or more frequently so conflicts are discovered and resolved while the context is fresh.
Without CI, integration work accumulates silently. Teams using long-lived branches discover incompatible changes only at merge time, when fixes are expensive and context has been lost. High-frequency integration keeps the codebase in a deployable state continuously, enables safe refactoring, and reduces release risk.
Continuous Integration sits at Techniques → Adopt inner. The practice is foundational — universally applicable to any team producing software collaboratively. The canonical reference is Fowler's martinfowler.com article (originally 2000, revised 2024). No evaluation gate; teams not practising CI should adopt it immediately.