Přeskočit na obsah
Codedock
SlužbyJak pracujemeReferenceInsightsKariéraKontakt
Zpět na všechny články
Migrace & SEO

·

7 min čtení

·

Napsal Tomáš Mikeš

Náhrada legacy enterprise systému za 3 měsíce: kompromisy, které fungují

JUST potřeboval nahradit 15letý systém pro správu prodejní sítě za 3 měsíce. Playbook pro scope triage, parallel running, cut-over day, rollback plán — a co jsme záměrně nedodali.

LegacyMigraceEnterpriseDelivery

„Máme starý systém, ale migrace je nereálná, big bang nepůjde.“ Slyšíme to často. Důvod je zdravý strach z rewrite, který končí jako 18měsíční projekt bez funkčního výstupu. Pro JUST jsme měli opačný problém: starý systém přestával fungovat a měli jsme 3 měsíce na celou náhradu, protože licence legacy systému končila.

Stihli jsme to. Tady je, jak — a co jsme záměrně nedodali v první verzi, aby to šlo.

Pravidlo 1: Scope triage před kickoff

Starý systém JUSTu uměl ~120 business use cases. Plná replikace by byla 9-12 měsíců. Za 3 měsíce jdeme, pokud scope stáhneme namust-have k Day 1 produkce.

Triage proběhla tak, že jsme s CFO a IT manažerem sedli a kategorizovali každou funkci:

  • Day 1 MUST (40 %): bez toho nejede byznys. Provize, objednávky prodejců, core CRM.
  • Day 30 OK (25 %): chybí, ale admin umí udělat ručně 30 dní. Reporting dashboardy, některé admin UI, historical comparisons.
  • Day 90 OK (20 %): nikdo by si toho nevšiml 3 měsíce. Bulk export funkce, některé integrace s third parties.
  • Day 360 MAYBE (15 %): nikdo je vlastně nepoužívá. Legacy features ze starého systému, zbytky z let minulých.

Výsledek: dodáváme 40 % funkcionality v Day 1, 65 % do měsíce, 85 % do čtvrt roku. 15 % se nikdy nedodalo — nikdo o ně nepožádal.

Pravidlo 2: Core data model první, UI poslední

V 3měsíčním rewrite je lákavé start frontendem — je to to, co klient uvidí. Ale když data model musíš později změnit, přepíšeš taky frontend. Ztráta času.

My pro JUST:

  • Týden 1-2: data model (SQL schema) + migrace legacy dat
  • Týden 3-5: business logika (provize, objednávky, sdílené workflows) jako pure funkce + unit tests
  • Týden 6-8: API nad business logikou
  • Týden 9-11: UI (React admin + prodejní portál)
  • Týden 12: UAT, dual run, cutover

Frontend poslední znamená, že core logika je hotová a otestovaná, než někdo napíše první button. Pokud se v UAT ukáže, že něco v byznys logice je špatně, fix je jednorázový — nemá co cascade-ovat napříč UI.

Pravidlo 3: Parallel run minimálně 2 týdny

Před DNS switchem / uživatel-cutoverem musí oba systémy běžet vedle sebe a přijímat stejné transakce. Detaily:

  • Nový systém dostává kopii každé transakce ze starého systému (read replica nebo event sourcing)
  • Uživatelé stále pracují ve starém
  • Každou noc porovnání — jsou stavy v obou systémech konzistentní?
  • Odchylka > 0,1 % = alert, nezapínáme cutover

Pro JUST jsme v parallel run odhalili 4 case, kde se systémy lišily. 3 byly naše bugy, 1 byl bug v legacy, který byznys nikdy neviděl. Cutover se odehrál, když deltové byly pod 0,05 %.

Pravidlo 4: Cutover day — rollback je nepovinný, ale řešený

Cutover day pro JUST:

  • Pátek 22:00 — freeze starého systému, read-only režim
  • 22:15 — poslední delta dat z legacy do new
  • 22:30 — DNS switch + uživatelé přesměrováni na nový
  • 22:45 — smoke testy (login, vytvořit objednávku, zobrazit provize)
  • 23:00 — signal „live“ nebo rollback trigger

Rollback trigger: pokud do 22:55 smoke testy selžou, DNS flipne zpět na legacy, migration reset. Legacy běží v read-only přes weekend, znovu cutover v pondělí. Ve 3měsíčním projektu s kritickým termínem musí rollback plán existovat — ale my ho nikdy nepotřebovali. Dobrá příprava to eliminuje.

Pravidlo 5: Week 1 post-launch = bug-fixing sprint

Produkce se liší od staging. I po důkladném UAT se objevují bugy — edge cases, které nikdo netestoval. První týden jsme rezervovali 100 % kapacity týmu na bug fixing. Žádný development, žádné nové featury, jen hot-fixes.

Z praxe: 10-20 bugů první týden, 3-5 druhý, 1-2 třetí. Ve 4. týdnu se vrátíme k roadmap. Kdo si naplánuje na týden 1 nové featury, udělá chaos.

Co jsme nedodali a nikdy nedodali

Z 15 % „Day 360 MAYBE“ věcí:

  • Custom report pro starou kvartální strukturu, která se změnila v 2019 (nikdo to neřekl; byznys ji nepotřebuje)
  • Integrace na ERP, který klient nahradil v průběhu projektu
  • 3 specifické bonusy pro top 5 prodejců, které se daly nahradit manualem

Legacy systém nabobtnal 15 let featurami, které kdysi někdo potřeboval a později ne. Rewrite je šance to zjednodušit. Nezopakovat ten cyklus = nedělat featury, o které si byznys výslovně nezažádá.

Co si z toho vzít

3měsíční legacy replacement je možný, když:

  • Scope triage s business je na začátku, ne v půlce
  • Data model → business logic → API → UI, ne naopak
  • Parallel run > 2 týdny bez deltaz
  • Cutover day má rollback plán, i když ho nepoužiješ
  • Week 1 post-launch = bug-fixing sprint, ne roadmap

Klientů, kterým tohle sedí, je víc, než se říká. Strach z rewrite je často z jiné story — 12měsíční projekt, který selhal kvůli absenci triage. Když triage uděláš dobře, 3 měsíce stačí.

Řešíš něco podobného?

Domluvme si 30min technický call. Bez obchodních procesů — přímá architekturní zpětná vazba.

Vybrat termín

Architektura, cloud a integrace pro komplexní systémy. Senior architekt na každém projektu.

Navigace

SlužbyJak pracujemeReferenceInsightsKariéraKontaktSrovnání s agenturou

Služby

VývojCloudDevOpsAI & DataKonzultaceŘízení

Kontakt

CodeDock s.r.o.

Zlenická 863/9, 104 00 Praha 22

Česká republika

info@codedock.com

IČO: 14292769

DIČ: CZ14292769


© 2026 Codedock

KontaktOchrana osobních údajů
Domluvit call