«ветки функций» - это когда каждая функция разрабатывается в своей собственной ветке и объединяется в основную ветку только после того, как она была протестирована и готова к отправке. Это позволяет владельцу продукта выбирать функции, которые входят в данную поставку, и «парковать» функции, которые являются частью написания, если предстоит более важная работа (например, клиент звонит MD, чтобы пожаловаться).
«рефакторинг» - это преобразование кода с целью улучшения его дизайна с целью снижения стоимости изменений. Не делая этого постоянно, вы, как правило, получаете более уродливые кодовые базы, для которых труднее писать тесты.
В реальной жизни всегда есть клиенты, которым были проданы новые функции, и из-за политики все клиенты должны видеть, что в «их» группе функций наблюдается прогресс. Так что очень редко бывает время, когда на ветвях нет множества недоработанных функций.
Если какой-либо рефакторинг был произведен, объединение «функциональных веток» станет намного сложнее, если вообще возможно.
Неужели мы просто должны отказаться от возможности провести рефакторинг?
См. Также Как вы справляетесь с противоречием между рефакторингом и необходимостью слияния?
В настоящее время я считаю, что из-за политических причин, которые привели к появлению этих долгоживущих ветвей, а также из-за того, что директор по развитию не мог действовать, что помешало ему принять меры, мне следовало быстрее начать поиск новой работы.