Long-Running Branches and the Agile Way
Recently I've been thinking a bit about long-lived branches and the affects they have both on the software and the value they bring to the company. I've read a number of great articles about long-lived branches (such as this one) that do a great job explaining the reasons against them. I've also read a few in favor of long-lived branches the do a good job explaining the perceived benefits of this practice. One thing I think these articles fail to mention is the impact long-lived branches have on business value. Not only are long-lived branches inventory and shipping to the customer, they're depreciating. They're sitting on the shelf depreciating. One day, when you want to add it to the rest of the software, there will be a lot of work integrating it back in. Or you might spend a lot of time keeping that branch in sync. The main argument I hear for long-lived branches is that it reduces the complexity of the code. Instead of implementing a feature flag which wou