Vývoj softwaru na míru znamená neustálé hledání rovnováhy mezi rychlostí, rozpočtem a kvalitou. Klienti vyžadují rychlé uvedení produktu na trh, často si ale neuvědomují, že tlakem na vzniká technický dluh. O co jde a proč ho řešit?
Dobře navržený software na míru nevychází pouze z aktuálních potřeb, ale počítá se i s budoucími změnami. Právě proto se vyplatí přemýšlet nad snížením rizika technického dluhu hned na počátku a držet vývoj v dobré kondici.
Co je to technický dluh?
Technický dluh jednoduše řečeno znamená problém v použitých technologiích a architektuře systému. Vývoj se krátkodobě urychlí, vytváří se dočasná řešení, ale dlouhodobě se neřeší, čímž vzniká dluh.
Microsoft rozlišuje dva druhy dluhu ve vývoji:
- Technický dluh: důsledek rychlejšího nebo zjednodušeného vývoje, který momentálně pomůže, ale později prodraží úpravy, údržbu a další rozvoj softwaru.
- Technologický dluh: podobný problém, ale na úrovni použitých technologií a technického zázemí systému. Typicky jde o zastaralý stack, problematické integrace nebo technologie, které brzdí vývoj.
Rizika technického a technologického dluhu
Technický ani technologický dluh nejsou samy o sobě špatně. Vědomě přijatý dluh je ve vývoji na míru přirozený. Firma si například v rámci MVP ověří tržní poptávku, spustí pilotní verzi projektu nebo dodá první verzi interní aplikace.
Problém nastává, když se technický dluh neřeší. Nikdo neví, že dluh vzniká, ani kde přesně se problémy nacházejí. Tím pádem nikdo neví, kolik stojí náklady na opravu případných problémů, které tím pádem narůstají.
Jak vzniká technický dluh?
Obvykle jde o kombinaci několika příčin, které mají společného jmenovatele – tlak na termín. Technický dluh vzniká na základě rozhodnutí, která dávají smysl v krátkodobém pohledu, ale v dlouhodobém horizontu vývoj na míru brzdí.
Příčiny technického dluhu
- Omezený rozpočet
- Rychlé a náhlé změny zadání
- Nejasné požadavky
- Nedostatek testů
- Odkládaný refaktoring
- Nedostatečný code review
Kdo za to může? Vina obvykle neleží pouze na jednom člověku. Jedná se o sérii rozhodnutí, která se neřeší. Technický dluh navíc často způsobí nevědomky zadavatel, který tlačí na rychlost a pracuje s omezeným rozpočtem, čímž komplikuje vývoj softwaru na míru.
Projevy technického dluhu
Problémy se nikdy neprojeví okamžitě. Systém pořád funguje, proto se nikdo nezaměřuje na dílčí problémy. Integrace nových funkcí ale stojí stále více peněz. Opravy v kódu navíc často rozbijí jiné funkcionality, čímž dochází k řetězení komplikací.
V dlouhodobém horizontu se projevuje několika způsoby:
- Každá úprava trvá déle, než by měla.
- Roste chybovost po uvedení produktu na trh.
- Byznysové odhady nesedí.
- Údržba projektu vyžaduje stále vyšší kapacity.
- Onboarding nových lidí do projektu trvá déle.
Jak se zbavit technického dluhu?
Problémů se nezbavíte jedním velkým úklidem. Nejlépe funguje audit projektu, seřazení problémů podle priority a jejich postupné řešení. Důležité je udržování projektu ve stávající fázi tak, aby nevznikaly další komplikace.
Pomáhá průběžná údržba, pravidelný refaktoring a nastavená pravidla vývoje. Díky tomu se technický dluh nehromadí, ale postupně mizí. Cílem totiž není dostat projekt do dokonalého stavu, ale udržet software na míru dlouhodobě funkční, přehledný a připravený na další rozvoj.
V MEMOS Software bereme technický dluh jako přirozenou součást vývoje. Proto ho průběžně hlídáme a pracujeme s ním. Už při návrhu projektů myslíme na dlouhodobý rozvoj a v rámci údržby řešíme úpravy, které udrží software v dobré kondici.
