Skip to content

ContinuousIntegration

Dennis Lee edited this page May 27, 2026 · 1 revision

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

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.

Core Practices

Fowler defines eleven practices:

  1. Maintain a single version-controlled mainline repository
  2. Automate the build
  3. Make the build self-testing
  4. Every commit triggers an automated build
  5. Every developer commits to mainline at least daily
  6. Immediately fix broken builds — the mainline must stay green
  7. Keep the build fast (target: under 10 minutes)
  8. Test in a production-cloned environment
  9. Make build state visible to the team
  10. Automate deployment
  11. Hide work-in-progress using feature flags or branch-by-abstraction, not long-lived branches

The Defining Characteristic

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.

Why It Matters

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.

Radar Assessment

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.

Clone this wiki locally