Futured Blog
Jak vyřešit technologický dluh aplikace: 5 kroků ke zlepšení
Tomáš Wojcik
Tomáš Knězek
13. 5. 2024
Technologický dluh je situace, kdy se kód aplikace stává zastaralým a obtížně udržitelným.

Jeho typickým důsledkem je výrazné zpomalení vývoje, ze kterého nemá radost obchod, marketing ani šéf produktu. Nemožnost rychlých změn často vede k odlivu zákazníků (to potvrzují i naše zkušenosti), což může – a zpravidla má – zásadní dopad na obchodní výsledky. Vývoj se kvůli němu navíc často prodražuje. V některých případech vede situace i k odchodu vývojářů nespokojených s funkčností aplikace.

Jak vypadá technologický dluh z pohledu uživatele

  • padající aplikace
  • pomalé načítání obsahu
  • nedokončené funkce
  • bezpečnostní riziko – to pravděpodobně uživatel nedohlédne, ale v momentě, kdy uniknou citlivá data, mizí s nimi zpravidla i zákazník
  • z praxe: Setkali jsme se také se situací, kdy klient kvůli zastaralému systému pro správu uživatelských účtů nebyl schopen rychle a efektivně odbavovat zákazníky.

To samozřejmě vede k velké frustraci na straně uživatele – a hledání alternativ, tedy použití produktu konkurence.

3 hlavní důvody, proč je potřeba technologický dluh dohnat

  • schopnost doručovat lepší služby (spokojený uživatel = lepší obchodní výsledky)
  • úspora nákladů na zákaznickou podporu nebo personál
  • náskok před konkurencí

Kde technologický dluh vzniká

  • Zastaralá technologie. Jeden z důvodů může být čistě historický, kdy se kód nebo technologie stane zastaralou částí projektu bránící rychlejšímu vývoji nových funkcionalit a provádění změn.
  • MVP co nejdříve. Zejména u start-upů, které rychle potřebují MVP (Minimum Viable Product), se často setkáváme s rychlým vývojem produktu na úkor kvality kódu. Po vydání aplikace a otestování, že je na trhu o produkt zájem, přestane start-up investovat čas a peníze na dohnání technologického dluhu.

Jak začít dluh odstraňovat

S přechodem ze starých technologií na nové máme bohaté zkušenosti. Tohle je 5 důležitých kroků, které vás navedou, pokud chcete technologický dluh vaší webové nebo mobilní aplikace začít řešit:

1 – Identifikujte problém

Na začátku jakéhokoliv projektu je potřeba začít analýzou současného stavu, kdy technologický dluh zmapujete. Zpravidla mohou být na vinně tyto 3 faktory:

  • záměrné rozhodnutí – příkladem může být již zmíněný start-up, který se rozhodl pro rychlý vývoj na úkor kvality kódu
  • neúmyslné rozhodnutí – vzniká např. zastaralou technologií neumožňující navrhovat nové funkcionality
  • softwarové neuspořádání neboli entropie – ta zhoršuje výkon v čase, protože aplikaci není možné efektivně spravovat a pracovat s ní

Futured tip: Doporučujeme text Martina Fowlera, který popsal čtyřtypovou klasifikaci technického dluhu.

2 – Plánujte

Vytvořte si plán, jak budete při řešení technologického dluhu postupovat:

  • Stanovte si jasné cíle, kterých chcete dosáhnout.
  • Vytvořte seznam změn, které budete napříč týmem sledovat.
  • Připravte časové a cenové odhady na všechny popsané změny.

Zajistěte, že všichni v týmu (obchod, stakeholdeři projektu, designéři, vývojáři, QA) rozumí situaci, v jaké váš projekt je a co způsobilo aktuální stav. Díky společné diskuzi budete schopni naplánovat další kroky, které pomohou nastavit očekávání všech zúčastněných.

3 – Definujte priority

Agilní přístup vám umožní dělat rychlé změny v krátkém čase za pomoci častých iterací. Díky kratším cyklům a rychlejšímu dodávání změn jste schopni postupně odbavovat prioritní úkoly. Nezapomeňte na týmovou hygienu: Díky společným rozhovorům mezi vývojem a manažery (v agilním přístupu tzv. standupy) zajistíte tok informací mezi všemi zúčastněnými stranami, což předchází vzniku dalších chyb a případným nedorozuměním. Schůzky vám samozřejmě pomohou i při plánování dalších kroků.

4 – Refaktorujte* a připojte automatizované testy

  • Ujistěte se, že máte jasno v technické specifikaci, cílech a očekávaných výstupech při plánovaném refaktorování. Pochopení zadání a požadavků na změny je pro úspěšný průběh refaktoringu klíčové.
  • Navrhněte udržitelnou architekturu aplikace, která vám umožní kód snadno spravovat, jednoduše ho měnit a dále rozšiřovat. Budete pak například schopni snáze škálovat na počet uživatelů nebo bez omezení přidávat další funkcionality.
  • Dělejte průběžně code review, která vám pomohou odhalit chyby daleko dříve, než se dostanou na produkci.
  • Používejte automatizované testy. Vývoj je díky nim efektivnější a levnější. „Opravovat chyby až na produkci je nejdražší, protože se developer musí zpětně zorientovat v kódu, což opět vede k riziku zanesení dalších chyb,” popisuje Miroslav Ořeský v článku, který si můžete přečíst zde.
  • Definujte standardy kódu, aby všem bylo jasné, jakým způsobem s ním pracujete, a dokumentujte veškeré aktivity. Oceníte to zejména v budoucnu, kdy přijdou noví kolegové/vývojáři.

Nezapomeňte, že... i u nově napsaných aplikací se v čase začne hromadit technický dluh, který je přirozeným jevem vývoje softwaru, jakým je např. aktualizace knihoven, odstranění duplicitního kódu, čištění kódu nebo doplňování automatických testů. Proto si nezapomeňte vyčlenit část svého času na refaktorování nově napsaného kódu.

*Refaktorování je přepsání stávajícího kódu a systému vedoucí k lepší funkčnosti a výkonu aplikace.

5 – Optimalizace a další vývoj

Sledujte provedené změny a optimalizujte výkon vašeho technologického řešení. Je potřeba vyhodnocovat, zda je aplikace výkonnější z hlediska odezvy na požadavky uživatelů, zda se změnila doba implementace nových funkcionalit, načítání obsahů a dalších částí, které ovlivňují chod aplikace. Díky optimalizaci se budete schopni posouvat dopředu rychleji.

Agilní způsob řešení projektů vám v tomto případě pomůže dělat změny ve vaši aplikaci rychleji a zároveň umožní produktovému týmu udržet plánování projektu plně pod kontrolou. I to je jeden z důvodů, proč máme agilní přístup ve Futured tak rádi.

Autoři textu: Tomáš Wojcik a Tomáš Knězek

Chcete se nás na něco zeptat?

Chcete se dozvědět jak snížit technologický dluh konkrétně ve vašem případě nebo se chcete poradit? Domluvte si bezplatnou konzultaci u Matěje Gajdošecha, který se společně s vámi podívá na technologické potřeby vašeho produktu: [email protected] & +420 777 900 617

O Futured. Futured je předním poskytovatelem mobilních a webových řešení, která přinášejí užitek milionům lidí po celém světě. Věříme, že v dnešní době začíná většina uživatelských potřeb v mobilním zařízení, proto pomáháme našim zákazníkům přenášet řešení z mobilních zařízení do dalších platforem. Více na Futured webu a/nebo nás sledujte na LinkedIn profilu.