So we have a fairly new CTO thats pushing for various different process changes in dev teams.
Two of these is trunk based development and full time pair programming to enable CI/CD.
For context my team looks after a critical area of our platforms (the type where if we screw up serious money can be lost and we'll have regulators to answer to). We commit to repos that are contributed to by multiple teams and basically use a simplified version of Gitflow with feature branches merging into master only when fully reviewed & tested and considered prod ready. Once merged to master the change is released to prod.
From time to time we do pair programming but tend to only do it when it's crunch time where necessary. The new process basically wants this full time. Devs have trialed this and feel burned out doing the pair programming all day everyday.
Basically I ran my team on the idea of trunk based development and they're heavily against it including the senior devs (one of whom called it 'madness').
The main issue from their perspective is they consider it risky and few others don't think it will actually improve anything. I'm not entirely clued up on where manual QA testing fits into the process either but what I've read suggests this takes place after merge to master & even release which is a big concern for the team. Devs know that manual QA's capture important bugs via non-happy paths despite having a lot of automated tests and 100% code coverage. We already use feature flags for our projects so that we only expose this to clients when ready but devs know this isn't full proof.
We've spoken about perhaps trialing this with older non-critical apps (which didn't get much buy in) and changes are rarely needed on these apps so I don't see us actually being able to do this any time soon whereas the CTO (and leadership below) is very keen for all teams to take this all on by this summer.
Edit: Link to current process here some are saying we're already doing it just with some additional steps perhaps. Keen to get peoples opinion on that.
Trunk based development doesn't mean you're just committing everything directly to main. You can still use branches and PRs. The idea is simply that you don't have long lived branches. This is actually smart development, as the older a branch is the more the entropy increases and merges can become very difficult or nearly impossible in some cases, if enough has changed, particularly if there's cross over requiring resolving conflicts.
If your team is resistant to it, they either don't understand what it is, or they're doing things they shouldn't be anyways. You should be iteratively developing features, and merging them in quickly, as standard practice. If you're worried about something not ready to actually go live, that's what feature flags are for.