Mi a technikai adósság és hogyan öli meg a szoftverprojekteket?

A technikai adósság az egyetlen legjobban félreértett fogalom a szoftverfejlesztésben a nem technikai alapítók és válllat tulajdonosok számára. Elvontnak hangzik. Nem az. Ez az oka annak, hogy egy hat hónapja jól működő termékhez most háromszor annyi ideig tart hozzáadni egy funkciót, váratlanul leomlik, és kétszeres annyiba kerül fenntartani. A megértése megmentheti a vállalkozásodat.
Mi is valójában a technikai adósság?
A technikai adósság az, ami felhalmozdik, amikor a fejlesztők olyan implementációs döntéseket hoznak, amelyek gyorsan megépíthetők most, de többlet munkát hoznak létre később. Mint a pénzügyi adósságnak, van főkövetelése (az eredeti parancs) és kamata (a plusz erőfeszítés, amely minden alkalommal szükséges, amikor az érintett kódon dolgoznak). Kis mennyiség elkerülhetetlen és néha stratégiai. Nagy mennyiség egzisztenciálissá válik.
Az 'adósság' szó fontos. A jövőbeli fejlesztési kapacitásodra veszel fel kölcsönt. Minden ma felvett parancs nehezebbj teszi a holnapi munkát. És a pénzügyi adósságtól eltérően a technikai adósság gyakran nem jelenik meg semmilyen mérlegen — ezért hajlamos csendesen kamatozódni, amíg válsággá válik.
Honnan származik a technikai adósság?
Időnyomás és scope creep — "Péntekre szükségünk erre a funkcióra." Így a fejlesztők parancsokat vesznek fel: kihagyják a teszteket, duplikálják a kódot refaktorálás helyett, olyan módon implementálnak egy funkciót, amely nem illik a meglévő architektúrába. Mindkét nyomot hagy.
Junior fejlesztők szenior felügyelet nélkül — A junior fejlesztők működő kódot írnak. A szenior fejlesztők működő és karbantartható kódot írnak. Szenior felügyelet nélkül egy kódbázis olyan mintákat halmozhat fel, amelyek idővel egyre drágábban kibogozásra szorulnak.
Változó követelmények és rossz tervezés — Amikor egy termék pivotál, az eredeti architektúrára épített kódot gyakran foltozzak az újratervezés helyett. Idővel a kódbázis megkerülő megoldások sorozata lesz, amelyek más megkerülő megoldásokra épülnek.
Az üzleti következmények
A fejlesztés lelassul. Az egy hétig tartaniá funkciók egy hónapig tartanak, mert minden változás törékeny, egymásba kapcsolódó kódot érint. A hibaráta nő, ahogy az egyik területen történő javítások másokat trnek el. Új fejlesztők beépese hosszabb ideig tart, mert senki nem érti teljes egészében a rendszer működését. És végül a kódbázis olyan ponthoz ér, ahol új funkciók hozzáadása lassabb, mint nulláról újraépíteni.
A finanszírozott startupok esetében a technikai adósság különbséget tehet a következő mérföldkő elérése és három hónapos lekmés között. Az önfenntartó vállalkozások esetében a nyeresjéges növekedés és a bevételt meghaladó fejlesztési számla között tehet különbséget.
Hogyan tudod, hogy technikai adósság problémád van?
A tünetek gyakran nyilvánvalóak nem technikai alapítók számára is: a fejlesztők azt monják, hogy az egyszerű funkciók hetekig tartanak; minden új funkció új hibakat hoz be; a rendszer váratlan módon leáll; a fejlesztőid a kódbázis bizonyos részeit nem szereték érinteni. Ha bármelyik ismerősnek hangzik, a technikai adósság valószínűleg jelentős tényező.
A technikai adósság kezelése és csökkentése
A leghatékonyabb megközelítés az, hogy minden sprint egy következetes részét az adósság csökkentésére fordítására — a 20% elértése általános méröszam. Ez megakadályozza az adósság kamatozódását, miközben a funkciófejlesztés folytatható. Az igazán kritikussá vált adósság dedikált refaktorálási sprintet, vagy súlyos esetekben az érintett modulok részleges vagy teljes újraírását igényelheti.
A legfontosabb megelőzés az elejtől való kódátvizsgálati kultúra és architektúirális fegyelem. A TRAVLRD-nél minden pull requesten kódátvizsgálatot hajtébunk végre és fenntartunk architektúirális dokumentációt, amely biztosítja, hogy az új fejlesztők megismerik a rendszert, mielőtt módosítánák. Ha feltételezed, hogy a jelenlegi kódbázisodban jelentős adósság halmozódott fel, foglalj egy technikai értékelő callt és őszinte értékelést adunk.
A szerzőről

Máté vagyok, a TRAVLRD alapítója és cégvezetője. Napjaimat javarészt stratégiai, üzletfejlesztési és értékesítési feladatok, illetve projekt menedzsment tölti ki. A startupok világa mellett szenvedélyem a díjnyertes színvonalú web design, ezért a Top Design King Award zsűritagjaként is tevékenykedem. Szabadidőmben sakkozom, gitározom vagy windsurfözök.
Ajánlott cikkek
Olvass tovább további szakmai cikkeinkkel.







