Aplikácie a systémy
Prepísať starý systém celý nanovo znie ako čistý štart, no starý kód v sebe nesie pravidlá a opravy nazbierané za roky, ktoré často nikto nemá zapísané. Rozoberáme možnosti od stabilizácie po postupnú náhradu, prácu s dátami počas prechodu, poradie krokov a riziká, ktoré sa dajú merať.
Mnohé firmy, ktoré fungujú dlhšie, majú systém, o ktorom sa na poradách hovorí opatrne. Beží na ňom fakturácia, sklad alebo výroba, upravovalo ho veľa ľudí, do detailu mu rozumie málokto a každá zmena je pomalá a drahá.
Keď sa o ňom konečne rozhoduje, na stole býva veta: prepíšeme to celé nanovo. Znie to lákavo, ale je to riskantné: starý kód je archív obchodných pravidiel, výnimiek a opráv nazbieraných za roky, ktoré často nikto nemá zapísané, a kto ho zahodí naraz, zahodí aj toto poznanie. Modernizácia starého systému má pritom viac podôb než „nechať tak“ alebo „prepísať“ a pri veľkom kritickom systéme býva bezpečnejšie nahrádzať ho po častiach za plnej prevádzky.
Michael Feathers, autor knihy Working Effectively with Legacy Code, definuje legacy kód jednoducho ako kód bez testov. Legacy systém teda nespoznáte podľa veku, ale podľa toho, či sa dá bezpečne meniť. Typické príznaky:
Všetko sú to podoby technického dlhu, ktorý ako princíp celej firmy rozoberá článok Firma je jeden produkt.
Týka sa to aj štátu. Americký kontrolný úrad GAO v správe z júla 2025 označil 11 najkritickejších federálnych systémov, ktoré potrebujú modernizáciu. Osem z nich používa zastarané jazyky ako COBOL a assembler a sedem podľa agentúr beží so známymi zraniteľnosťami, ktoré sa bez modernizácie nedajú odstrániť.
Big bang rewrite znamená postaviť nový systém od nuly a naraz naň prepnúť celú firmu. Sľubuje čistý štart a modernú technológiu. Joel Spolsky v eseji z roku 2000 pridáva menej lichotivý dôvod: programátori pokladajú starý kód za neporiadok najmä preto, že čítať kód je ťažšie ako ho písať. Prepísanie kódu od nuly označil za najhoršiu strategickú chybu, akú môže softvérová firma urobiť. Ako príklad uviedol Netscape: verzia 6.0 išla do prvej verejnej bety takmer tri roky po verzii 4.0 a trhový podiel firmy medzitým prudko klesal.
Je to vyhranený názor, konkrétne mechanizmy zlyhania sa však dajú pomenovať:
Názov strangler fig pattern vychádza z metafory Martina Fowlera: v roku 2001 videl v pralesoch Queenslandu škrtiace figovníky, ktoré postupne obrastú hostiteľský strom, až ho nahradia. Nový systém podobne nevzniká namiesto starého, ale vedľa neho. Preberá funkcie jednu po druhej, kým sa starý nedá vypnúť.
Dokumentácia Microsoftu opisuje mechanizmus: medzi používateľov a oba systémy sa vloží fasáda, teda prostredník, ktorý požiadavky postupne presúva zo starého systému do nového, napríklad najprv iba výpočet cenových ponúk. Používatelia o migrácii nevedia. Starý systém podľa Feathersa zostáva ako záloha pre prípad problémov.
Fowler priznáva cenu: prechodnú architektúru pre súbežný chod oboch systémov, ktorá po dokončení zanikne. Nižšie riziko a skoršia hodnota ju podľa neho prevážia, lebo vymieňané časti sú malé. Varuje však, že bez zmeny kultúry a vedenia skončí aj nový systém v podobnom neporiadku.
Kód sa dá vymieňať po kúskoch, dáta však počas prechodu potrebujú oba systémy naraz. Migrácia dát, teda presun údajov zo starej štruktúry do novej, nie je obyčajné kopírovanie. Výskumníci z Trinity College Dublin upozorňujú, že dáta zo starých systémov bývajú nekvalitné, treba ich namapovať na novú štruktúru a často aj vyčistiť. V praxi ide napríklad o duplicity, polia používané na iný účel a hodnoty, ktorým rozumie iba starý kód.
Microsoft odporúča oddeľovať dáta postupne, po oblastiach: novú databázu naplniť úvodným prenosom, ďalšie zmeny prenášať technikou change data capture, teda zachytávaním zmien v starej databáze, pred prepnutím overiť zhodu a staré objekty odstrániť až po validácii nového systému. Dovtedy je návrat možný, potom je výrazne náročnejší a rizikovejší.
Pre každý typ údajov musí byť počas prechodu jasné, ktorý systém je jediný zdroj pravdy. Ak sa adresa zákazníka dá zmeniť v oboch systémoch, hrozí, že každý bude mať inú. Náš praktický záver: konkrétne údaje nech ľudia menia vždy iba v jednom systéme a ostatné systémy ich z neho len preberajú. Širšej úlohe dát sa venuje článok Vaše dáta sú náskok.
Feathers upozorňuje, že ľudia nosia v hlave predstavu o tom, čo systém robí, a zabúdajú sa pozrieť, čo robí v skutočnosti. Pomáhajú tri zdroje:
Autori z Thoughtworks opisujú tím, ktorý v ostrej prevádzke testoval náhradu integračného middleware, teda softvéru prepájajúceho ostatné systémy. Krátko nato prestali sedieť kritické manažérske reporty. Po dlhom pátraní sa ukázalo, že databáza middleware sa replikovala do dátového skladu, z ktorého reporty čerpali. Pomohol až dočasný mechanizmus, ktorý do skladu dopĺňal chýbajúce údaje.
Migrácia nemá byť prvým krokom. Aj tu používame poradie Remove, Simplify, Automate, Augment: najprv odstrániť, potom zjednodušiť, až potom automatizovať a rozširovať. Autori z Thoughtworks upozorňujú, že väčšina starých systémov sa časom nafúkne o funkcie, ktoré nikto nepoužíva, a odvolávajú sa na správu Standish Group z roku 2014, podľa ktorej ide o 50 % funkcií. Pre konkrétny systém je to iba orientačný údaj, skutočnosť ukážu logy. Zrušenú funkciu netreba analyzovať, migrovať ani testovať a obchádzky obmedzení starého systému sa pri prenose oplatí zjednodušiť, nie kopírovať.
Prvá nahrádzaná časť má spôsobovať citeľnú bolesť, napríklad brzdiť obchod, a zároveň byť relatívne oddelená od jadra. Feathers radí sústrediť sa na časti, ktoré budú rásť a zároveň robia ťažkosti, a na odklonenie požiadaviek nájsť švy, ako nazýva miesta, kde sa dá jedno správanie nahradiť iným.
Postupná náhrada riziko neodstraňuje, delí ho na menšie a merateľné kusy. Opak ilustruje rozhodnutie britského regulátora FCA z 20. 12. 2022. Banka TSB cez víkend 20. až 22. apríla 2018 presunula väčšinu prevádzky a zákazníckych dát na novú, ešte neoverenú platformu. Nasledovali vážne problémy s internetovým a mobilným bankovníctvom aj s platbami kartou a do 7. apríla 2019 dostala banka 225 492 sťažností. FCA konštatovala zlyhania v plánovaní, testovaní, riadení rizík aj v dohľade nad externým dodávateľom, upozornila, že po spustení sa banka prakticky nemohla vrátiť na pôvodnú platformu, a uložila pokutu 29,75 mil. GBP.
Bezpečnejšiu cestu opísal Vicent Martí z GitHubu v roku 2015. Tím nahrádzal jednu z najkritickejších častí kódu priamo v ostrej prevádzke: starý aj nový kód bežali súbežne, výsledky sa porovnávali a používateľ vždy dostal výsledok starého. Experiment začal na 1 % požiadaviek a postupne sa rozšíril, až 24 hodín bežal na 100 % bez nezhôd. Porovnávanie navyše odhalilo 2 vážne chyby v pôvodnom riešení, ktoré roky nikto nezistil.
Čo teda sledovať:
Úplné prepísanie nie je vždy chyba. Feathers ho opisuje ako biznisové rozhodnutie o návratnosti, sám však najprv skúša refaktoring a pripomína, že celý systém väčšinou prepisovať netreba a cielené prepisy jednotlivých častí bývajú veľmi účinné. Microsoft uvádza, kedy postupná náhrada nie je vhodná: systém je malý a dá sa jednoducho nahradiť celý, k zdrojovému kódu nie je prístup alebo treba pôvodné riešenie vyradiť rýchlo. Autori z Thoughtworks pripúšťajú verné zopakovanie starých funkcií pri systémoch s dobre známou špecifikáciou, kde daný vstup musí dať daný výstup, také prípady však považujú za výnimočné.
Náš názor: prepis je obhájiteľný aj vtedy, keď sa biznis zmenil natoľko, že starý systém podporuje spôsob práce, ktorý firma opúšťa. Vtedy však ide o nový produkt s novým zadaním, nie o kópiu starých funkcií.
Modernizácia starého systému preto nezačína výberom technológie, ale pochopením, akú prácu systém pre firmu robí, ktoré jeho časti sa naozaj používajú a kde presne vzniká bolesť. Kto túto diagnózu preskočí, vyberá medzi prepisom a refaktoringom naslepo.
Prototyp zadarmo
Opíšte nám svoj projekt a do pár dní držíte v rukách funkčný prototyp postavený na vašich reálnych dátach. Staviame ho na vlastné náklady: presvedčiť vás má práca, nie prezentácia.
Bez platby a bez záväzku. Platíte, až keď sa rozhodnete pokračovať.
Bezplatná konzultácia
Vyberte si termín a povedzte nám, ako firma funguje dnes. Ukážeme vám tri miesta, kde vám najviac uniká čas, a čo z nich vieme prevziať ako prvé. Bez prezentácií a bez záväzku.

Juro
jur0.com
Web, aplikácia, AI systém alebo automatizácia. Opíšte v dvoch vetách, čo riešite, a do 24 hodín sa vám ozvem s konkrétnym návrhom. Postavíme čokoľvek, čo firme šetrí čas.
Alebo rovno: WhatsApp · juro@jur0.com