How do you avoid a branchageddon situation when working with large organisations?
We work with a number of large financial organisations whose approach is to not take updates to software, but instead only high/critical security patches and bespoke functionality. These organisations will only take patches and custom release in between major updates. Major updates can be years apart and carry high costs. This approach causes us (the software house) to have a branch of our code per major customer, which carries all the costs and inefficiencies of long term branching.
My interpretation of Jez Humble's Continuous Delivery book is that it promotes development on trunk and short lived branches at the worst. Branches existing for years is an unpalatable thought for a team aspiring to adopt DevOps principles and practice.
My questions to this group are:
• Have you experienced similar update acceptance approaches from your customers?
• What suggestions do you have to help work with this approach?
• What suggestions do you have to help change organisations approaches to taking regular software updates?