Feature Branching is Evil


Feature branching is one of the most commonly accepted practices in the IT industry. It is mainly used to control quality and to control feature delivery. However, many times the inverse is true. Branches break the flow of the IT delivery process, reducing both stability and throughput. Unfortunately, oftentimes teams are not aware of this. They truly think they are doing the right thing.

The session explores why teams are using feature branches, what problems are introduced by using them and what techniques exist to avoid them altogether. It explores exactly what’s evil about feature branches, which is not necessarily the problems they introduce - but rather, the real reasons why teams are using them.

After the session, you’ll understand a different branching strategy, how it relates to Continuous Integration and how it will predict better quality and higher delivery throughput.

Learning outcomes - you will be able to:

  • understand why teams are using feature branching
  • explain why feature branching is problematic
  • describe alternatives to feature branching
  • understand if all teams can adopt trunk-based development

References:

  • @ SoCraTes-FR 2016
  • @ Continuous Delivery Conference NL 2016
  • @ XP 2017
  • @ XPDays Ukraine 2017 (video)
  • @ SoCraTes-BE Meetup Jan 2018
  • @ Agile Belgium Meetup Feb 2018
  • @ Agile India 2018
  • @ Software Craftsmanship Lille Meetup May 2018
  • @ NewCrafts 2018 (video)
  • @ Journée Agile 2018
  • @ WeCraft & DevOps Meetup Sept 2018
  • @ Lean Agile Scotland 2018 (video)
  • @ Agile & Automation Days Poland 2018
  • @ Agile Tour Brussels 2018
  • @ OSDC 2019
  • @ DevTernity 2019 (video)
  • @ CfgMgmtCamp 2023 (video)
  • @ Agile2023