And the whole thing with running CI builds on branches not being "integrating" until merge time is so funny to me.
Like, does this person not know that you can merge master back into a feature branch, such that you are, in fact, integrating the feature branch up to date with master? And it's done... Gasp without breaking the master build for everyone else in the mean time!?!
And the parts about pair programming and knowledge sharing are easy to fix, too. Just have regularly scheduled pairing sessions with the people who need to knowledge-share.
Trunk-based suggestions always comes across to me as "I don't understand how to do feature branches/PR-based development"
My problem with trunk based development is I feel like people treat it as the solution to a problem that is fundamentally a developer culture problem.
This is really the main benefit of trunk based development, and it's something you can get with feature branches as well, you just have to make sure everyone on your team starts reducing scope of their features and merging in smaller and smaller features sets.
There's nothing inherit in the trunk based development model that stops someone from sitting on changes for a month, never pulling, and then trying to pull and ending up with a bunch of conflicts anyways. So it really feels like "yeah use trunk based development" boils down to "integrate continuously" which can be done with a branching model.
save