Version Control

On the Evilness of Feature Branching - Where is the Evilness

Jan 6, 2024 • 4 min


During this whole article series - On the Evilness of Feature Branching - I have not mentioned a single time anything evil about feature branching. So, where is the evilness? Is it the problems they introduce? Or the reasons teams use them for? Or the compliance reasons that pushes teams into using feature branches? In all truthfulness, it is none of these. But something else.

On the Evilness of Feature Branching - What about Code Reviews

Dec 14, 2023 • 5 min


Every time I suggest the adoption of trunk-based development, I always get that one, single, same question asked: What about Code Reviews? How do we do Code Reviews when we do not have branches anymore? Of course, this assumes code reviews can only happen with Pull Requests.

The Practices That Make Continuous Integration

Aug 26, 2022 • 1 min


Continuous Integration is by itself already a practice. It is one of the most critical to adopt to enable the fast flow of work through the value stream. However, many teams believe Continuous Integration is just a tooling problem, to then say they practice Continuous Integration.

On the Evilness of Feature Branching - How To Avoid The Problems?

Jun 14, 2022 • 5 min


In part 4 of this series - The Problems I dived deep into the problems introduced by feature branching. But, what can we do about this? How can we avoid the problems introduced by feature branching altogether?

On the Evilness of Feature Branching - The Problems

May 30, 2022 • 22 min


In part 2 of this series - Why do Teams use Feature Branches? - and part 3 - But Compliance!? I went into all the possible reasons teams mention themselves to why they use feature branches. This time I want to go deeper into the problems introduced by the use of feature branches.

You Are What You Eat - How Branching Affects Team Culture

May 7, 2022 • 2 min


Your branching strategy is an extremely important choice to make. In this talk I hope to show how a change of branching strategy can actually change your team’s mindset. Specifically I look at a shift from a feature branching strategy to a trunk based strategy affected the team. In my view these changes were for the better and I guess most at PIPELINE will agree but I leave that for others to decide on this occasion.

On the Evilness of Feature Branching - But Compliance

Feb 22, 2022 • 11 min


In part 2 of this series - Why do Teams use Feature Branches? - I examined all the possible reasons teams mention for why they use feature branches. There was, however, one reason, I did not mention that people referenced as the ultimate reason: “We use feature branches and pull requests to comply with regulations”. I would like to explore this and show there are other options to comply that do not have the same drawbacks.

Feature Branches and Toggles in a post-GitHub World

Dec 13, 2021 • 26 min


Why I got interested in micro services? Because from my early days at ThoughtWorks was actually helping people ship software more quickly. I spent lots of time looking at Continuous Integration, Continuous Delivery, cloud automation, infrastructure automation, automated tests, and all these sort of things. And realise that actually it was the architecture of these systems that made it hard to ship software more quickly.

On the Evilness of Feature Branching - Why do Teams use Feature Branches

Oct 25, 2021 • 18 min


In part 1 of this series - a Tale of Two Teams - I introduced two quite different teams. One novice team practising trunk-based development, the other experienced but being used by GitFlow. Now I would like to explore why teams use feature branches. What are their reasons? What problems are they trying to solve with long-running branches?

On the Evilness of Feature Branching - A Tale of Two Teams

Jul 14, 2021 • 7 min


On the experience of working with two totally different teams: one novice practising trunk-based development, the other very experienced being used by GitFlow.

On the Evilness of Feature Branching

Apr 26, 2021 • 0 min


Branch creation became very easy with the advent of Distributed Version Control Systems. However, it comes at an unquestionable cost. Long living branches break the flow of the IT delivery process, impacting both stability and throughput.

Feature Branching is Evil

Oct 29, 2016 • 2 min


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.