Preskočiť na obsah

Technický dlh brzdí vývoj: ako ho zmerať a čo riešiť prvé

Pre CTO a vývojárovRozhodnutia CTO · Aktualizované

Filip Papraneczakladateľ Digitaliko

Technický dlh brzdí vývoj. Začnite tam, kde sa kód mení. Ilustrácia: zoznam súborov zoradený podľa počtu zmien, najčastejšie menené sú zvýraznené.Technický dlh brzdí vývoj. Začnite tam, kde sa kód mení. Ilustrácia: zoznam súborov zoradený podľa počtu zmien, najčastejšie menené sú zvýraznené.

Technický dlh brzdí vývoj vtedy, keď každá nová funkcia trvá dlhšie ako tá predošlá. Pre firmu to znamená roadmapu, ktorá sa posúva, a vývojárov, ktorí hasia namiesto toho, aby stavali.

Zmerať sa dá bez drahého nástroja, z histórie gitu a z chýb. Opraviť treba najprv dlh v kóde, ktorý sa mení najčastejšie, nie ten najškaredší.

AI dnes píše všetok náš kód a za výsledok ručí senior. Filip predtým 7 rokov vyvíjal jeden SaaS produkt. Dlh v produkte, ktorý žije roky, nevyriešite jedným šprintom. Splácate ho priebežne.

Ako spoznáte, že vás brzdí technický dlh?

Dlh sa neohlási sám. Prejaví sa ako pomalosť, ktorú si každý vysvetlí inak. Tlačidlo, ktoré malo trvať deň, trvá týždeň. Zaškrtnite, čo o vašom tíme platí. Každý nezaškrtnutý bod je jeden signál dlhu.

Ako zmerať technický dlh bez drahého nástroja?

Nepotrebujete platformu na analýzu kódu. Potrebujete odpovede na otázku, kde vás zmeny stoja najviac.

Čo meraťKde to nájdeteČo vám to povie
Ako často sa súbor meníhistória gitukde dlh bolí najviac
Kde vznikajú chybytracker, hotfixy, incidentyktoré časti sú krehké
Testy v často menenom kódereport z CIkde je každá zmena riziko
Kto modulu rozumiegit blame, reviewkde máte jediného človeka
Čas od zlúčenia po nasadenieCI a záznamy nasadeníči vás brzdí kód, alebo proces
Odhad oproti realitešprinty, trackerkoľko platíte za dlh pri každej úlohe

Najsilnejší signál je kombinácia prvých dvoch riadkov. Súbor, ktorý sa mení často a zároveň z neho chodia chyby, je dlh s úrokom. Zoznam najčastejšie menených súborov vám dá jeden príkaz:

git log --since="6 months ago" --format= --name-only | sort | uniq -c | sort -rn | head -20

Ku každému súboru z výsledku si poznačte chyby, ktoré sa ho týkali. Prvých pár riadkov je váš zoznam.

Čo opraviť ako prvé?

Nie to, čo je najškaredšie. To, čo vás stojí najviac času práve teraz. Poradie, ktoré používame:

  1. Dlh v ceste roadmapy

    Splatenie sa prejaví hneď pri najbližšej funkcii a obhájite ho pred vedením.

  2. Často menený kód s chybami

    Platíte zaň pri každej úlohe.

  3. Testy a CI, ktoré vedia zlyhať

    Bez nich je každé ďalšie splácanie riskantné.

  4. Znalosť jedného človeka

    Ak odíde, dlh sa zmení na výpadok.

Na koniec patria estetika a prechod na novší framework „lebo je novší“. Kód, na ktorý mesiace nikto nesiahne, môže byť škaredý. Nestojí vás nič. Ak sa nepoužíva vôbec, nesplácame ho, ale zmažeme. Tak to robíme aj vo vlastných repozitároch: nepoužitý kód a nástroje, ktoré nikto nevolá, idú preč.

Ak je dlh v jednej časti taký veľký, že zvažujete prepis, začnite rovnako. Najprv testy na súčasné správanie, až potom rozhodnutie. Ako nastaviť testy a review, ktoré zlú zmenu naozaj zastavia, rozpisujeme v článku Ako zaviesť AI do vývojového tímu.

Ako dlh splácať bez zastavenia roadmapy?

V rovnakom toku ako funkcie. Nie v „refaktoringovom šprinte“, ktorý sa stále posúva, lebo prišla urgentná funkcia.

  • Pevný podiel kapacity. Dohodnite ho s produktom vopred a nesiahajte naň pri prvej urgencii.
  • Splácajte tam, kde pracujete. Keď robíte funkciu v dlhom module, upracte ho v tom istom pull requeste.
  • Najprv test, potom zmena. Test na súčasné správanie zachytí, čo by ste inak pokazili.
  • Žiadny nový dlh bez záznamu. Ak vedome volíte skratku, zapíšte ju ako úlohu s dôvodom.

Takto to vyzerá na jednej funkcii z roadmapy:

Technický dlh v štyroch krokoch na príklade: git ukáže najčastejšie menený súbor invoice.ts s chybami, funkcia z roadmapy Nová cenotvorba ho potrebuje, testy a CI ho zabezpečia a upratanie ide v tom istom pull requeste. Kód report.php, na ktorý nikto nesiaha, počká.Technický dlh v štyroch krokoch na príklade: git ukáže najčastejšie menený súbor invoice.ts s chybami, funkcia z roadmapy Nová cenotvorba ho potrebuje, testy a CI ho zabezpečia a upratanie ide v tom istom pull requeste. Kód report.php, na ktorý nikto nesiaha, počká.

AI tu mení ekonomiku. Testy na existujúci kód, presuny a premenovania boli drahé, preto sa odkladali. S AI sú lacné. Bez pravidiel a review však AI dlh rovnako rýchlo pridáva. Čo jej preto dávame do repozitára, opisujeme v článku Pravidlá pre AI kód v tíme.

Prvé kroky na tento mesiac:

  1. Vytiahnite z gitu zoznam najčastejšie menených súborov.
  2. Ku každému si poznačte chyby za posledné mesiace.
  3. Vyberte tri miesta, ktoré blokujú najbližšiu funkciu z roadmapy.
  4. Dohodnite s produktom pevný podiel kapacity na dlh.
  5. Overte, že CI vie zastaviť zlé zlúčenie.

Kedy to neodporúčame

  • Dlh vás nebrzdí, len sa vám nepáči. Ak sa ten kód nemení, nechajte ho tak. Kapacitu dajte do roadmapy.
  • Produkt sa o pár mesiacov vypína alebo nahrádza. Splácať dlh v kóde, ktorý končí, sa neoplatí.

Chcete dlh splácať s niekým, kto to robí denne?

Senior sa zapojí do vášho repozitára a pull requestov od prvého týždňa. Spláca dlh v ceste roadmapy, popri funkciách, nie namiesto nich. Takto pracujeme ako externý vývojár pre produktový tím.

Napíšte nám, ktorá časť systému vás brzdí najviac. Ozveme sa do dvoch pracovných dní a spolu vyberieme, čo vyriešime ako prvé.

Ak sa chcete najprv porozprávať, dohodnite si meeting na 15 minút s Filipom.

Ktorý súbor vo vašom repozitári sa bojí otvoriť celý tím?

V skratke

  • Technický dlh zmeriate z histórie gitu a z chýb, bez drahého nástroja.
  • Najprv opravte dlh v ceste najbližšej funkcie z roadmapy, nie najškaredší kód.
  • Pred zmenou testy na súčasné správanie a CI, ktoré vie zlyhať.
  • Splácajte v bežných pull requestoch, s pevným podielom kapacity.

Časté otázky

Ako zmerať technický dlh?

Najjednoduchšie z histórie gitu a z chýb. Súbory, ktoré sa menia najčastejšie a zároveň v nich vznikajú chyby, sú dlh, ktorý vás naozaj stojí čas. K tomu sledujte, ako sa predlžujú odhady pri malých zmenách.

Čo opraviť ako prvé?

Dlh v kóde, ktorý potrebujete pre najbližšiu funkciu z roadmapy. Potom často menený kód s chybami. Kód, na ktorý nikto nesiaha, nechajte tak, aj keď je škaredý.

Ako vysvetliť technický dlh vedeniu?

Cez čas a riziko, nie cez kvalitu kódu. Ukážte, o koľko dlhšie trvajú zmeny v konkrétnej časti a koľko chýb z nej prichádza. Najlepšie na funkcii z roadmapy, na ktorú vedenie čaká.

Zvyšuje AI technický dlh?

Bez pravidiel a review áno, lebo píše rýchlo a bez kontextu. S pravidlami v repozitári, testami a review od niekoho iného ho pomáha splácať. Testy a presuny kódu sú s AI lacné.

Opýtajte sa AI na tento článok

AI pri odpovedi využije aj naše ďalšie články a skúsenosti z reálnych projektov.

ChatGPTClaudePerplexity
Engineering

Ostatné články

Rozhodnutia CTO

Claude Code pricing: cena pre tím, API a agentov

Claude Code pricing podľa verejného cenníka Anthropicu (október 2026): Pro, Max, miesta v Team pláne, Enterprise a API tokeny. Čo sedí vývojárom, na čom beží AI agent a reviewer v CI a aké poistky zastavia agenta na pozadí, aby neminul rozpočet.

Rozhodnutia CTO

Alternatívy k Vercelu: prečo máme Vercel aj Cloudflare

Vercel sme nenahradili, prácu sme rozdelili. Next.js weby ostávajú na Verceli, nové aplikácie bežia na Cloudflare Workers a D1, deklarované v TypeScripte cez Alchemy. Ceny so zdrojmi, naša konfigurácia a blokovaný deploy od AI agenta.

Rozhodnutia CTO

Better Auth vs Clerk: prečo sme si vybrali Better Auth

Better Auth vs Clerk sa rozhoduje podľa toho, kde žijú vaši používatelia a session. Z NextAuth sme v nových aplikáciách prešli na Better Auth a Clerk sme si nevybrali. Naša reálna konfigurácia, pluginy v produkcii, cenník Clerku a kedy je Clerk lepšia voľba.

Čas prestať plánovať a začať riešiť.

Kontakt

  • Digitaliko s.r.o.
    Šípková 377/17
    958 03 Malé Uherce, Slovensko
  • Ozvite sa nám
    info@digitaliko.com
    +421 950 595 506
    WhatsApp