Как ускорить выкатывание изменений в большом проекте (монолит)?
Возможно, вы доросли до большого проекта. Значит, без аналитики не разобраться. 
Нужно четкое представление сколько времени тратится на каждый шаг вашего процесса релиза.
Если нет однозначных метрик - покрывайте. Нужно не на глаз сколько минут, а четко статистика по каждой задаче - сколько времени собиралась, тестировалась, сколько релиз, сколько проверка бизнесом, и тд и тп. Метрик мало не бывает. 
Затем по собранным данным рисовать графики, диаграммы, анализировать, на что тратится больше всего времени.
Затем думать, где можно оптимизировать.
Анализировать и оптимизировать не имея на руках цифр и картинок с диаграммами - это путь вникуда. Можете угадать с оптимизацией, можете не угадать.
Когда все данные на руках есть, можете оптимизировать.
Чаще всего помогает:
- Исключить из процессов или минимизировать участие людей (CI, CD, автотесты и тд)
- Распараллелить множественные однообразные процессы (мержи, запуски тестов на задачах, запуски тестов на билде, и тд)
- Группировать (тестировать билд один раз после того, как в него попали все нужные бизнессу задачи)
1. Каждый новый функционал - это замена одного логического блока на другой или присоединение нового. Соответственно, однотипные блоки - должны иметь одинаковый интерфейс.
2. Для быстрой автоматической откатки в случае ошибки, до начала работы нового блока должны запоминаться: все входные значения и состояние изменяемых им параметров.
3. В случае исключения - откатываемся и применяем старый блок без требования каких-либо дополнительных действий с чьей-либо стороны.