Изменения должны быть либо быстрыми (поэтому не слишком много изменений под вами), либо иначе локальными (так что вам нужны только изменения в небольшом количестве мест). *
В противном случае слияние может быть такой же работой, как и рефакторинг. Как алгоритм, оптимистическая блокировка просто не работает, когда слишком много транзакций терпит неудачу, и должна быть перезапущена.
По сути, вы не можете допустить ситуации, когда 20 программистов в компании каждый день меняют имена 50% методов в базе кода. И если уж на то пошло, если несколько человек всегда проводят рефакторинг в одних и тех же местах в одно и то же время, то они все равно только отменяют работу друг друга.
Если программисты тратят много времени на ручной контроль слияний, то предоставьте своим менеджерам возможность повысить производительность, изменив способ определения и назначения задач.
Кроме того, «рефакторинг всей системы для использования заводов повсюду» не является задачей. «Рефакторинг этого единого интерфейса и его реализаций для использования фабрик» является задачей.