Why we branch the code
Branching is a great workaround for problems elsewhere in the system that we are unable or unwilling to fix.
CI is not a server
We often hear things like “we’ve set up CI”, which makes no actual sense when you consider what CI is. It’s not a server or a tool, Continuous Integration (CI) is an ongoing practice whereby we keep the code continuously integrated. That sounds simple but has more subtlety than you might expect. Many places today that think they’re doing CI, actually aren’t, and as a result aren’t getting the benefit they could.
Too many branches
Most companies have too many active branches in their code repositories. “Active” meaning we’re doing actual development on them.