99% of devs think they practice CI — they don’t.
CI isn’t just having a pipeline. If you're not practicing Trunk Based Development (TBD) and don't have Automated Tests, then you are not practicing CI.
99% developers do NOT know what CI is.
They think that CI means building a Pipeline.
However, those developers adopt Feature Branching & have no Tests.
They don’t know that Feature Branching is NOT compatible with CI.
They also don’t know that Tests are a must-have for CI.
CI requires at least daily integration.
The only way to satisfy CI is with:
(A) Trunk Based Development, whereby we just have the "main", we don't have any branches
(B) Short-lived branches, where branch lifetime <=1 day
The following does NOT satisfy CI:
(C) Long-lived branches, where branch lifetime > 1 day
Trunk Based Development (TBD)
Trunk Based Development is a branching strategy where developers integrate their changes into a single shared branch (the trunk) at least once a day (ideally, multiple times per day). The goal is to keep integration simple, reduce merge conflicts, and ensure that the product is always in a releasable state.
✅ Satisfies minimal conditions for Continuous Integration (CI)
(A) No branches
All changes are integrated directly into the trunk
(B) Short-lived branches (≤ 1 day)
Changes are integrated into branches, branches are re-integrated into the trunk daily, branches are removed after merge
Feature Branching
Feature Branching is a branching strategy where developers create a separate branch for each feature, bug fix or refactoring. These branches often exist for multiple days (sometimes weeks) before being merged back into the main branch. This can create long feedback cycles, painful merges, and delays in integration.
⚠️ Does NOT satisfy the minimal conditions for Continuous Integration (CI)
(C) Long-lived branches (> 1 day)
Changes are integrated into branches, branches are re-integrated into the trunk over longer timeframes, or branches remain indefinitely
📅 Join me at the FREE live event Stop Breaking Production: ATDD in Legacy Code (Sep 17 at 5:00 PM CET)