Рефакторинг, как и любая другая деятельность, должен иметь для нее четкую цель. Как только эта цель станет ясной, вы должны рассмотреть текущее состояние проекта и этап жизненного цикла. Для проекта разработки, который завершен на 80%, на 30% отстает от графика, вы должны обосновать усилия по рефакторингу на основе поставленной ранее цели. В этом примере, если фрагменты кода были модульно протестированы и работают нормально в среде разработки, трудно оправдать рефакторинг.
Тот факт, что 40 разработчиков ушли, может быть не таким драматичным, как кажется. Я ожидаю, что эти разработчики предоставили рабочий код, который был проверен и протестирован. Поэтому, если в этом коде нет известных проблем, я бы оставил все как есть. Идея заключается в том, что в таком большом проекте, как ваш, я ожидал, что существуют стандарты и процедуры, и что код не является полным беспорядком.
Помните, что рефакторинг приведет к повторению многих, если не всех тестов. Кроме того, поскольку рефакторинг такого размера не может быть выполнен одним или двумя старшими членами, рефакторинг может привести к проблемам, которых не было. Это риск, которым нельзя пренебрегать.
Сказав это, нет ничего необычного в том, чтобы добавлять задачи в проект, когда происходит непредвиденное. Таким образом, если разработчики исчезнут по какой-либо причине, это будет считаться событием особого характера, и любые действия по исправлению ситуации должны быть предприняты. Это будет рассматриваться как пожар или землетрясение и т. Д.
Таким образом, я бы не стал проводить рефакторинг большого рабочего кода в большом проекте без веской технической причины, особенно потому, что мы все знаем, что большинство проектов обычно находятся в позднем состоянии.