Přejít na hlavní obsah

Znalostní báze · Rozhodování

Přepsat, nebo opravit web?

Tři možnosti, jedno správné rozhodnutí pro váš projekt. Podle čeho se rozhoduju mezi opravou, postupnou modernizací a přepisem od nuly — a proč to nikdy neříkám bez analýzy.

Vždy existují tři cesty

Opravit

Nejlevnější

Cílené zásahy do funkčního základu. Nejnižší riziko i cena.

Modernizovat

Střední cesta

Web jede dál a po částech nahrazujete rizikové oblasti.

Přepsat

Nejdražší

Nový základ od nuly. Nejvyšší riziko — někdy ale jediná cesta.

Skoro každý, kdo zdědil starší web nebo aplikaci, dřív nebo později položí tuhle otázku. A skoro vždy s ní přijde i vlastní názor — buď „určitě to celé zahodit a udělat znovu“, nebo „jen to nějak záplatovat, ať to vydrží“. Pravda bývá někde mezi a rozhoduje o ní stav projektu, ne pocit.

Nejdřív analýza, pak rozhodnutí

Nikdy neřeknu „přepsat“ ani „opravit“, dokud projekt nevidím zevnitř. Bez pohledu do kódu, databáze a architektury je jakékoliv doporučení jen hádání. Proto první krok není programování, ale posouzení stavu — co projekt dělá, jak je postavený, kde jsou rizika a kolik by stála která cesta.

Teprve s těmihle informacemi má smysl porovnávat. Rozhodnutí totiž není technické, ale ekonomické: která varianta přinese nejvíc hodnoty za rozumnou cenu a unese i to, co přijde za dva roky.

Kdy stačí opravit

Oprava je správná volba častěji, než lidé čekají. Vyplatí se, když:

  • základ je rozumně postavený a problémy jsou lokální (konkrétní chyby, výkon, bezpečnost),
  • technologie je stále podporovaná a dá se v ní pokračovat,
  • v kódu se jde zorientovat a změny nerozbíjejí věci jinde,
  • web vydělává a hlavní cíl je stabilizovat ho a posunout dál.

Méně kódu většinou znamená méně chyb, nižší cenu a delší životnost. Pokud projekt jde opravit, je to skoro vždy nejrozumnější začátek.

Kdy dává smysl postupná modernizace

Střední cesta je ideální pro projekty, které firma nemůže na měsíce zastavit. Web zůstává v provozu a vydělává, ale po částech nahrazujete to nejrizikovější — zastaralou knihovnu, neudržitelný modul, pomalou část administrace. Riziko velkého výpadku i náraz do rozpočtu se rozloží v čase.

Tahle varianta dává smysl, když je základ z větší části v pořádku, ale některé části už brzdí rozvoj nebo představují bezpečnostní riziko. Modernizujete tam, kde se to vyplatí, a zbytek necháte být.

Kdy se vyplatí přepsat

Přepis od nuly je nejdražší a nejrizikovější varianta — a právě proto ho doporučuju až jako poslední možnost. Dává smysl, když:

  • oprava by dlouhodobě stála víc než nový základ,
  • architektura už neunese další rozvoj a každá změna je boj,
  • technický dluh je tak velký, že se v projektu nedá bezpečně pracovat,
  • technologie je mrtvá nebo ji není kým udržovat.

Důležité je, že přepis doporučím, i když to znamená, že přijdu o část zakázky. Pokud je to pro projekt správně, řeknu to — a naopak, pokud někdo tlačí na přepis tam, kde stačí oprava, řeknu to taky.

Varovné signály, že je čas na změnu

Jeden signál sám o sobě nic neznamená. Ale když se sejde víc z nich, je čas situaci vážně posoudit:

  • každá nová funkce trvá nepřiměřeně dlouho a něco jiného přitom rozbije,
  • nikdo se v kódu nevyzná a chybí dokumentace,
  • web stojí na verzi jazyka nebo frameworku, která už nedostává aktualizace,
  • náklady na opravy jsou chronicky vyšší než přínos,
  • bojíte se na cokoliv sáhnout, protože nikdo neví, co to udělá.

Jak to rozhodnutí vypadá v praxi

U převzatého projektu nejdřív udělám technický audit — projdu kód, architekturu, bezpečnost a výkon. Výstupem není „přepsat / opravit“ jako verdikt, ale srozumitelné porovnání: co která cesta obnáší, kolik zhruba stojí a jaká nese rizika. Rozhodnutí pak děláme společně, s ohledem na rozpočet i byznys cíle.

Cílem totiž není napsat co nejvíc kódu. Cílem je, aby projekt zase dával smysl — technicky i ekonomicky.

Nejčastější otázky

Je levnější web opravit, nebo přepsat?
Většinou je levnější opravit nebo postupně modernizovat — přepis od nuly je nejdražší a nejrizikovější varianta. Přepis se vyplatí, až když je oprava dlouhodobě dražší než nový základ: architektura už neunese další rozvoj, technický dluh je obrovský nebo technologie není kým udržovat. Rozhodnout se dá až po analýze stavu, ne od stolu.
Jak poznám, že je čas web přepsat?
Hlavní signály: každá nová funkce trvá nepřiměřeně dlouho a něco jiného přitom rozbije, projekt stojí na zastaralé technologii bez podpory, nikdo se v kódu nevyzná a chybí dokumentace, nebo jsou náklady na opravy chronicky vyšší než přínos. Jeden signál sám o sobě nestačí — důležité je, jestli se opravy ekonomicky vrací.
Co je postupná modernizace?
Střední cesta mezi opravou a přepisem. Web zůstává v provozu a vydělává, ale po částech nahrazujete rizikové nebo zastaralé části za nové. Snižuje to riziko velkého výpadku i náraz do rozpočtu a často je to nejrozumnější varianta u projektů, které firma nemůže na měsíce zastavit.
J

Jan Matoušek

Webový vývojář. Programuju od 2004, profesně od 2009. Převzetí cizích projektů a rozhodnutí opravit / modernizovat / přepsat řeším jako jednu z hlavních oblastí — vždy až po analýze stavu.

Napište mi

Potřebujete poradit,
něco udělat nebo
druhý názor?

Nemusíte se připravovat ani znát technické detaily. Stačí pár vět o tom, co máte a co potřebujete — ozvu se do 24 hodin a řeknu, jak se na to dívám.

Konzultace 30 minut zdarma - bez závazku
Cenu domluvíme předem

Telefon / WhatsApp

+420 773 202 288

První napsání je zdarma a nezávazné. Ozvu se do 24 hodin.

Napsat mi