Branching and Integration

Anti-patterns in how teams branch, merge, and integrate code that prevent continuous integration and delivery.

These anti-patterns affect how code flows from a developer’s machine to the shared trunk. They create painful merges, delayed integration, and broken builds that prevent the steady stream of small, verified changes that continuous delivery requires.


Long-Lived Feature Branches

Branches that live for weeks or months, turning merging into a project in itself. The longer the branch, the bigger the risk.

Integration Deferred

The build has been red for weeks and nobody cares. “CI” means a build server exists, not that anyone actually integrates continuously.

Cherry-Pick Releases

Hand-selecting specific commits for release instead of deploying trunk, indicating trunk is never trusted to be deployable.

Release Branches with Extensive Backporting

Maintaining multiple release branches and manually backporting fixes creates exponential overhead as branches multiply.