Starší aplikace nemusí být automaticky špatná. Problém nastává ve chvíli, kdy brzdí vývoj, zvyšuje náklady, omezuje růst firmy nebo se jí bojí dotknout i samotní vývojáři. V takové chvíli přichází otázka, jestli aplikaci přepsat od nuly, nebo ji postupně refaktorovat.
Přepis může firmě pomoct zbavit se dlouhodobých problémů. Může ale také vytvořit drahý paralelní projekt, který se nikdy nedostane do produkce. Refactoring bývá bezpečnější a levnější cesta. Jenže pokud je systém ve velmi špatném stavu, může pouze prodlužovat nevyhnutelné.
Rozhodnutí by proto nemělo stát na pocitu, že „starý systém už je ošklivý“. Mělo by stát na riziku, nákladech, business prioritách a reálném technickém stavu aplikace.
Refactoring je vhodný tehdy, když aplikace stále plní svůj účel, ale její rozvoj je čím dál pomalejší.
Typické signály:
V těchto případech není nutné celý systém zahodit.
Lepší bývá postupně zlepšovat nejkritičtější části:
Výhoda refactoringu je hlavně v nižším provozním riziku. Firma dál používá existující systém. Změny se zavádějí postupně. Dopad na business je lépe kontrolovatelný.
Přepis aplikace dává smysl až ve chvíli, kdy se původní systém stal zásadní překážkou.
Ne jen technickou, ale businessovou.
Typické situace:
V takovém případě už nejde jen o „čistší kód“. Jde o to, že software brání firmě v provozu nebo růstu. Přepis může být správná cesta, pokud by další roky oprav stály víc než řízená modernizace.