Если это не сломано, не подвергайте его рефакторингу.
Я бы сказал, что время для рефакторинга относится к начальной стадии кодирования, и вы можете делать это так часто и столько раз, сколько захотите. Оказавшись в руках клиента, он становится другим вопросом. Вы не хотите заставлять себя «убирать» код только для того, чтобы обнаружить, что он поставляется и что-то ломается.
Время после первоначальной доставки в рефакторинг - это когда вы говорите, что сделаете это. Когда код становится слишком вонючим, тогда выделите специальный выпуск, содержащий рефакторинги и, возможно, несколько более важных исправлений. Таким образом, если вам случится что-то сломать, вы поймете, где что-то пошло не так, вы можете гораздо легче это исправить. Если вы все время проводите рефакторинг, вы ломаете вещи, вы не будете знать, что он сломан, пока не получит QAd, и тогда вам будет трудно попытаться выяснить, были ли изменения в коде исправления / функционального кода причиной проблемы, или некоторые рефакторинг, который вы выполнили много лет назад.
Проверка на наличие критических изменений намного проще, когда код выглядит примерно так, как раньше. Реорганизовать много структуры кода, и вы можете сделать это почти невозможным, поэтому рефакторинг, только когда вы серьезно хотите. Относитесь к этому так, как если бы вы меняли любой другой код продукта, и с вами должно быть все в порядке.