Refactoring muss wie jede andere Aktivität ein klares Ziel haben. Sobald dieses Ziel klar ist, würden Sie den aktuellen Projektstatus und den Lebenszyklus berücksichtigen. Bei einem Entwicklungsprojekt, das zu 80% abgeschlossen ist und 30% hinter dem Zeitplan zurückliegt, sollten Sie den Refactoring-Aufwand auf der Grundlage des zuvor festgelegten Ziels rechtfertigen. In diesem Beispiel ist es schwierig, das Refactoring zu rechtfertigen, wenn die Codeteile einem Komponententest unterzogen wurden und in einer Entwicklungsumgebung einwandfrei funktionieren.
Die Tatsache, dass 40 Entwickler übrig sind, mag nicht so dramatisch sein, wie es sich anhört. Ich würde erwarten, dass diese Entwickler Arbeitscode geliefert haben, der überprüft und getestet wurde. Sofern in diesem Code keine Probleme bekannt sind, lasse ich ihn unverändert. Die Idee ist, dass ich in einem großen Projekt wie Ihrem erwarten würde, dass es Standards und Verfahren gibt und dass der Code kein vollständiges Durcheinander ist.
Denken Sie daran, dass das Refactoring viele, wenn nicht alle Tests wiederholt werden. Da die Umgestaltung dieser Größe nicht von einem oder zwei hochrangigen Mitgliedern durchgeführt werden kann, kann die Umgestaltung zu Problemen führen, die nicht vorhanden waren. Dieses Risiko sollte nicht vernachlässigt werden.
Allerdings ist es nicht ungewöhnlich, einem Projekt Aufgaben hinzuzufügen, wenn das Unvorhergesehene eintritt. Wenn die Entwickler aus irgendeinem Grund verschwunden wären, wäre dies ein Ereignis besonderer Art und es müssten Maßnahmen ergriffen werden, um Abhilfe zu schaffen. Es würde wie ein Feuer oder ein Erdbeben usw. behandelt werden.
Zusammenfassend lässt sich sagen, dass ich großen Arbeitscode in einem großen Projekt nicht ohne soliden technischen Grund umgestalten würde, insbesondere weil wir alle wissen, dass sich die meisten Projekte normalerweise in einem späten Status befinden.