Paradigm Shift: Enabling Less Branching
Avoiding the distractions of branching requires changing your approach to development. Branching can protect you in the short term when you have unstable code lines and long release cycles with little change between releases. But, as your team adopts more agile practices and is able to deliver reliable code more quickly, the release branch pattern becomes less and less necessary.
To make less branching possible, you need to work towards:
- More frequent releases—the shorter the time between releases, the more likely you can deliver a fix from the existing code line. And, in the rare case that you need to deliver a fix between releases, you can have shorter-lived branches.
- Automated testing—so that you can keep your code lines stable and reduce the cost of delivering from the main line (or a short-lived branch).
- Continuous integration—so that you detect problems quickly.
- A DevOps mindset—where you develop deployment and operations procedures early so that you can release as soon as the code is “ready.”
There may well be times when working on a branch makes sense, especially as you are transitioning to practices to make your team more agile. Try to understand the costs of branching and whether working on branches distracts you from your business objectives. Shifting your development process will involve both technical and organizational change.