Refactoring development

Ramblings from the trenches...

View on GitHub
10 October 2016



                                                                   | | To branch or not to branch - it's not even a question.

Not branching prevents you taking risks, but branching isn’t free so there’s a tradeoff.

Strategy What is it? Advantages Disadvantages
Branch by abstraction (aka feature flags) Have configuration turning your branch on and off dynamically at runtime.
  • No merging
Feature Branches  A branch for a specific story/feature, reintegrated into trunk when it's 'done'.
  • Team is isolated from the firehose.
  • More costly than branching by abstraction due to merge overhead.
Merge Only Release Branch No checkins to release branches are allowed. Everything change on a release branch must be merged in.
  • No way to regress changes as everything is applied to the trunk branch before it gets into prod,