Modernizace zastaralého softwaru bez kompletního přepisu
Starý systém, na který si všichni stěžují, nemusíte strhnout a postavit od nuly. Existuje klidnější a bezpečnější cesta — a udrží firmu v chodu, zatímco opravíte to, co skutečně bolí.

Téměř každá zavedená firma jeden má: software, kterým všichni tiše pohrdají. Je pomalý, je ošklivý, polovina týmu zná obezličku na chybu, kterou nikdy nikdo neopravil, a jediný člověk, který mu rozuměl, odešel v roce 2019. Instinkt je vždycky stejný — spálit to a postavit nové. A právě tento instinkt bývá nejčastěji přesně tím, jak dobré firmy přijdou o rok a malé jmění úplně zbytečně.
Viděl jsem velký přepis dopadnout špatně tolikrát, že na něj mám už reflex. Zakladatel mi ukáže svůj skřípající objednávkový systém nebo prastarý plánovací nástroj, povzdechne si a řekne nějakou variantu věty „prostě potřebujeme vyměnit celé to.“ A možná že jednou opravdu budete. Jenže kompletní přepis — vytrhnout starý systém, postavit vedle něj zbrusu nový a přepnout vypínač — je jeden z nejrizikovějších tahů v celém softwaru. Je drahý, trvá mnohem déle, než se slibuje, a po celou tu dobu letíte naslepo a doufáte, že nová věc pokryje každý podivný okrajový případ, který ta stará patnáct let tiše zvládala.
Dobrá zpráva je, že kompletní přepis téměř nikdy není jediná možnost a málokdy ta nejlepší. Existuje klidnější způsob modernizace — inkrementální, vratný a šetrný k firmě, která musí dál vydělávat, zatímco pracujete. Tohle je průvodce po té cestě: jak poznat, co opravdu potřebuje opravit, jak vyměnit bolavé části, aniž byste položili celý systém, a jak poznat, kdy je kompletní přepis skutečně tou správnou volbou.
Proč je velký přepis tak lákavý — a tak nebezpečný
Kompletní přepis je svůdný, protože slibuje čistý štít. Žádný legacy nepořádek, žádné kompromisy, čerstvá kódová základna postavená správně moderními nástroji. Na tabuli to vypadá samozřejmě. Ve skutečnosti se upisujete k tomu, že znovu postavíte roky nahromaděné obchodní logiky — z větší části nezdokumentované, část žijící jen v hlavách lidí, kteří odešli — zatímco hodiny běží a faktury přicházejí.
Hlubší past je problém paralelního vesmíru. Po měsíce nebo roky, co stavba náhrady trvá, máte dva systémy: starý, který musí dál řídit firmu, a nový, který ještě není hotový. Každou změnu, kterou firma potřebuje, musíte udělat dvakrát, jinak nový systém zaostane za realitou ještě dřív, než vůbec spustí. Týmy se vyčerpají udržováním obou naživu. A protože nikomu není dovoleno přepnout, dokud nový systém neumí všechno, není žádné rané vítězství, žádná zpětná vazba, žádný důkaz, že to funguje — jen dlouhé, úzkostné čekání na jediný obrovský den spuštění, všechno nebo nic.
“Přepis po vás chce, abyste vsadili firmu na jediný den spuštění, roky vzdálený, na systém, který ještě nikdo nepoužil. To není plán — to je sázka.”
Existuje tu jedna dobře známá oborová moudrost, a je zasloužená: druhý systém, velkolepý přepis, mívá ve zvyku trvat třikrát déle, než se odhadlo, a dorazit s méně funkcemi než to, co nahrazuje. Odhad není špatný proto, že by byli lidé nedbalí. Je špatný proto, že na začátku nikdo nevidí všechny ty drobnosti, které starý systém tiše dělá správně.

Co vlastně znamená „legacy“ (nejde o stáří)
Slovem legacy házíme, jako by znamenalo prostě staré. Neznamená. Spousta softwaru, který běží deset let, je naprosto v pořádku — nudný, stabilní, zaplacený, dělá svou práci. Samotné stáří není důvod se čehokoli dotýkat. Nejdražší chyba v celém tomhle oboru je modernizovat něco, co tiše fungovalo, jen proto, že to vypadalo staromódně.
Software si nálepku legacy vyslouží, když vám aktivně stojí v cestě. Když ho nemůžete bezpečně změnit, protože mu nikdo plně nerozumí. Když se nedokáže propojit s nástroji, na nichž teď závisíte. Když je jediný člověk tím jediným, kdo ho udrží naživu. Když je tak pomalý nebo křehký, že kolem něj tým vybudoval celý folklor obezliček. To je ta pravá definice — ne rok, kdy byl napsán, ale náklad, který vám ukládá dnes, a riziko, jež s sebou nese do zítřka.
Než se čehokoli dotknete, stanovte diagnózu
Než se přepíše jediný řádek, potřebujete poctivou mapu toho, kde bolest doopravdy sídlí. Většinou je systém, který všichni nesnášejí, z 80 % v pořádku. Potíž je soustředěná na pár konkrétních míst — jedna pomalá obrazovka, jedna rozbitá integrace, jeden pracovní postup, který nutí zadávat data dvakrát — a právě těch pár míst plodí téměř všechny stížnosti. Najděte je a máte celý svůj projekt.
Cesta, jak je najít, není nejprve technický audit — je to rozhovor. Sedněte si s lidmi, kteří tu věc používají každý den, a zeptejte se jich, kde to bolí. Kde čekají? Co přepisují? Čemu se vyhýbají, protože je to bolestivé? Kde si vedou soukromou tabulku, aby obešli oficiální systém? Tyhle obezličky jsou zlato: každá z nich je přesný rentgen problému, který stojí za opravu.
- Obrazovky a kroky, na něž si lidé stěžují nejvíc — ne teoreticky, ale ve své skutečné každodenní práci.
- Každé místo, kde se data zadávají dvakrát, protože spolu dva systémy nemluví.
- Integrace, které se rozbily, nebo nikdy neexistovaly, a nutí k ručnímu kopírování mezi nástroji.
- Cokoli, co umí ovládat nebo opravit jen jeden člověk — vaše jediná místa selhání.
- Části, které jsou opravdu v pořádku, abyste je ochránili a nechali být.
- Co bude firma potřebovat příští rok a do čeho současný systém prostě nedokáže dorůst.
Když to uděláte poctivě, projekt se obvykle smrskne. Majitel, který přišel se slovy „vyměňte všechno“, odchází s poznáním, že potřebuje opravit tři věci. To není zklamání — je to úleva. Tři opravitelné věci jsou projekt, který stihnete dokončit ještě toto čtvrtletí. Kompletní výměna je rok, který možná nepřežijete.
Strangler přístup: vyměňte to po jednom kousku
Pro bezpečné provedení existuje vzor a má trochu ponurý, ale zapamatovatelný název: strangler přístup, podle škrtícího fíkovníku — popínavé rostliny, která obrůstá strom a postupně přebírá jeho strukturu, až nakonec nová zeleň stojí sama o sobě a starý kmen je pryč. Aplikováno na software je ta myšlenka nádherně praktická: starý systém nevyměníte jediným hrdinským přehozem. Pěstujete kolem něj ten nový, po jednom kousku, dokud ze starého nezbude nic, co by kdokoli potřeboval.
V praxi to funguje takhle. Vyberete jeden bolavý kousek — řekněme fakturační modul, který všichni nesnášejí. Postavíte moderní náhradu jen pro ten jeden kousek. Fakturaci nasměrujete na nový modul, zatímco všechno ostatní běží dál na starém systému, nedotčeně. Chvíli to sledujete. Když je to spolehlivé, ta část starého systému utichne a vy se pustíte do dalšího kousku. Starý systém se zmenšuje postupně, jako svíčka, místo aby byl sražen naráz.

Co tohle dělá mnohem bezpečnějším než přepis, je to, že každý krok je malý, živý a vratný. Nikdy neletíte naslepo. Každý nový kousek se rychle dostane do reálného použití, takže rychle zjistíte, jestli vážně funguje. Když se něco pokazí, riskovali jste jen jeden modul, ne celou firmu — a obvykle se můžete vrátit na starou cestu, než to opravíte. Vítězství sklízíte cestou, místo jediného děsivého spuštění na konci. A firma celou tu dobu normálně běží dál.
Jak ten rytmus ve skutečnosti vypadá
- 1Vyberte nejbolavější, nejsamostatnější kousekChcete velkou bolest a čisté okraje — modul, který hodně bolí a nemá prsty ve všem ostatním. To je váš první cíl.
- 2Postavte tenkou vrstvu před starý systémMalá směrovací vrstva rozhoduje, které požadavky jdou na starý systém a které na nový kousek. To je ten spoj, který umožní všechno ostatní.
- 3Postavte a spusťte jen ten jeden kousekVyměňte jeden modul, dejte ho do reálných rukou a nasměrujte na něj jen tu výseč práce. Týdny, ne roky — a zbytek systému se ani nehnul.
- 4Stabilizujte, pak přejděte na další kousekJakmile je novému modulu důvěřováno, odpovídající část starého systému usne. Opakujte s dalším bolavým kouskem a učte se za pochodu.
- 5Vyřaďte starý systém, až bude prázdnýNakonec legacy systém nedělá nic, na co by se kdokoli spoléhal. Teprve pak ho vypnete — tiše, bez dramatu, protože vše důležité se už dávno přesunulo.
Všimněte si, čím se to liší od přepisu: není tu jediný den spuštění, kterého by se bát. Není tu paralelní vesmír k údržbě. Nový systém je v provozu od třetího týdne, vydělává si na sebe a učí vás věci, místo aby čekal v laboratoři na spuštění, které se pořád odkládá.
Někdy ho ani nemusíte vyměňovat
Než cokoli vyměníte, stojí za to se zeptat, jestli starý systém potřebuje výměnu, nebo jen potřebuje přestat být ostrovem. Překvapivá řada problémů typu „potřebujeme nový systém“ jsou ve skutečnosti problémy typu „naše systémy spolu nemluví“. Starý software je ve své práci dobrý — jen sedí v silu a nutí lidi přenášet data dovnitř a ven ručně.
V takových případech není nejlevnější a nejrychlejší řešení nový systém. Je to most. Starý software obalíte propojením — integrací, která mu umožní automaticky vyměňovat data s vašimi ostatními nástroji — a navrch moderní vrstvou pro části, kterých se lidé skutečně dotýkají. Zastaralý motor dál bzučí pod tím; tým dostane čistý povrch a konec kopírování. Není to okázalé, ale často je to nejvyšší návratnost na euro z celé snahy.
| Přístup | Riziko | Doba k hodnotě | Kdy se hodí |
|---|---|---|---|
| Integrovat / propojit | Nízké | Dny–týdny | Systém funguje, ale žije v silu |
| Nové rozhraní na starém motoru | Nízké | Týdny | Logika je v pořádku, bolí uživatelská zkušenost |
| Vyměnit kousek po kousku | Střední | Týdny na kousek | Konkrétní moduly vás brzdí |
| Kompletní přestavba | Vysoké | Měsíce+ | Základ vás opravdu nedokáže nést dál |
Kdy je kompletní přepis skutečně tou správnou volbou
Celého toho průvodce vás odrazuji od velkého přepisu, tak buďme féroví: někdy je opravdu odpovědí. Existují základy tak prohnilé, že je nezachrání žádné záplatování, přemosťování ani výměna kousek po kousku, a předstírat opak jen odkládá nevyhnutelné, zatímco utrácíte peníze za podpírání mrtvoly.
Poctivé příznaky jsou konkrétní. Technologie, na níž systém stojí, je mrtvá nebo umírá — žádná podpora, žádné bezpečnostní aktualizace, nikdo nezbyl, kdo by na ní uměl pracovat. Firma se změnila tak zásadně, že starý model už realitě vůbec neodpovídá. Nebo je systém tak zamotaný, že i malé změny pravidelně rozbíjejí věci na nesouvisejících místech, což obvykle znamená, že tu nejsou žádné čisté spoje, kde by se strangler přístup vůbec dal udělat. Když jsou dvě nebo tři z těchto pravdy zároveň, inkrementální práce přestává být bezpečnější volbou.
A tady je tichá odměna za to, že nejdřív uděláte inkrementální práci, i kdybyste nakonec přece jen přestavovali: než se tam dostanete, budete systému rozumět mnohem lépe než na začátku. Každý modul, který jste vyměnili, vás naučil něco, co původní autoři nikdy nezapsali. Přepis poučený touto znalostí je úplně jiné, mnohem bezpečnější zvíře než ten spuštěný na optimismu prvního dne.

Část, kterou nikdo nezmiňuje: je to hlavně o lidech
Tady je něco, co technické příručky přeskakují. Nejtěžší část modernizace starého softwaru obvykle není kód — jsou to lidé, kteří strávili roky tím, že se mu přizpůsobovali. Znají jeho zvláštnosti. Mají svalovou paměť na jeho podivné zkratky. Nový modul, objektivně lepší, může první dva týdny stejně působit hůř, prostě proto, že je neznámý. Když to budete ignorovat, může selhat i dokonalá technická migrace.
Inkrementální přístup pomáhá i tady, skoro mimochodem. Protože změna přichází po jednom malém kousku, lidé ji vstřebávají postupně, místo aby se měli znovu naučit všechno během jediného pondělního rána. Zapojte každodenní uživatele brzy. Nechte je utvářet náhradu dřív, než je hotová. Tým, který pomáhal navrhnout novou fakturační obrazovku, ji bude prosazovat; tým, kterému spadla na hlavu, ji bude nesnášet, i kdyby byla totožná. Modernizace je projekt řízení změn převlečený za software.
Máte systém, který se všichni pořád chystají vyměnit?
Než se upíšete přepisu, vyplatí se jeden poctivý rozhovor o tom, co opravdu potřebuje opravit. Pomůžeme vám zmapovat, kde bolest doopravdy sídlí, a najít nejlehčí cestu, která ji vyřeší — často o dost menší, než byste čekali.
Podívejte se, jak přistupujeme k softwaru na míruČasté otázky
Je levnější starý software přepsat, nebo modernizovat?
Co je strangler přístup jednoduše řečeno?
Můžeme udržet firmu v chodu i během modernizace?
Jak poznáme, které části modernizovat nejdřív?
Kdy je kompletní přepis skutečně tou správnou volbou?

Have a nice day je softwarové studio, které pomáhá malým a středním firmám s digitalizací — automatizace, umělá inteligence a software na míru, který funguje v každodenním provozu, ne jen na slidech.