Continuous Integration

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 • 6 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.

Speaking at EuroSTAR Conference 2020

Nov 16, 2020 • 1 min

This week I will be speaking at EuroSTAR Conference 2020.

Continuous Integration is Not a Tooling Problem

Mar 23, 2020 • 3 min

There is this commonly accepted, hard-grained belief in the software industry. By dropping a build server in a team, they get Continuous Integration magically for free. This belief is further incentivised by the marketing of build server vendors.

Feature Branching considered Evil

Oct 29, 2016 • 0 min

Feature branching is again gaining in popularity due to the rise of distributed version control systems. Although branch creation has become very easy, it comes with a certain cost. Long living branches break the flow of the software delivery process, impacting throughput and stability.