Continuous integration: ✅ No PRs ✅ No branches ✅ No gating code reviews ✅...


Continuous integration:
✅ No PRs
✅ No branches
✅ No gating code reviews
✅ Commit directly into trunk

Frequent Integration:
✅ Small PRs
✅ Simple, short-lived feature branches
✅ Code review before merge
✅ Merge branches ~daily

Frequent integration is often good enough.
For many teams, "frequent integration" is the sweet spot.

Doing code reviews before merge assures reviews actually happen. (you can pair, but few devs do consistently, and outside reviews are useful when pairing too)

Integrating work approximately daily is frequent enough.
In summary, truly Continuous Integration is rarely practical. That's why it's rarely practiced.

It requires a very mature team:
Fast CI
High trust
Frequent pairing
Robust feature flags
Superb test coverage
Consistently high code quality

That's a high bar to clear.
Clarification: I hear people say PRs, code reviews, and feature branches aren’t “true CI”. Why? Because such practices delay integration. So, my description of CI above is deliberately strict.

My intent: Contrast the most continuous integration a team could possibly have (integrate each commit immediately), with something more reasonable and common: frequent integration.

View original on X