Kazalo:
Opredelitev - Kaj pomeni tehnični dolg?
Tehnični dolg je koncept v programiranju, ki odraža dodatno razvojno delo, ki nastane, ko se uporabi koda, ki jo je enostavno kratkoročno uporabiti, namesto da bi uporabili najboljšo skupno rešitev.
Tehnični dolg je ponavadi povezan z ekstremnim programiranjem, zlasti v zvezi z refaktoringom. To pomeni, da je v okviru razvojnega procesa potrebno prestrukturiranje obstoječe kode (refactoring). V tej smeri razmišljanja niso samo posledica slabo napisane kode, ampak tudi na podlagi razvijajočega se razumevanja težave in najboljšega načina za rešitev te težave.
Tehnični dolg je lahko znan tudi kot obligacijski dolg.
Techopedia razlaga tehnični dolg
Izraz je skoval Ward Cunningham, programer, znan tudi po razvoju prvega wikija. Tehnični dolg je metafora, ki razvoj programske opreme enači s finančnim dolgom. Predstavljajte si, da imate projekt, ki ima dve potencialni možnosti. Ena je hitra in enostavna, vendar bo v prihodnosti potrebna sprememba. Drugi ima boljši dizajn, vendar bo potreboval več časa za njegovo izvedbo. V razvoju je izdaja kode kot hiter in enostaven pristop kot nastanek dolga - prihaja z obveznostjo obresti, ki za tehnični dolg v prihodnosti pride v obliki dodatnega dela. Vzeti čas za refaktor je enakovredno plačilu glavnice. Čeprav to traja čas na kratki rok, pa tudi zmanjšuje prihodnja plačila obresti.
Ward Cunningham leta 1992 ta koncept opisuje na naslednji način:
"Prvo pošiljanje kode je kot dolgovanje. Malo dolga pospeši razvoj, če se takoj vrne s prepisom. Predmeti naredijo stroške te transakcije sprejemljive. Nevarnost se pojavi, ko dolga ne poplačamo. Vsako minuto porabljena za ne povsem pravilno kodo, se šteje za obresti za ta dolg. Celotne inženirske organizacije se lahko postavijo v stanje mirovanja pod dolžniškim bremenom nekonsolidirane izvedbe, usmerjene v objekt ali drugače. "
Koncept ne pomeni, da dolga nikoli ne bi smeli nastati. Tako kot finančni vzvod lahko podjetju pomaga pri pravilni uporabi, hitra rešitev lahko pomeni tudi hitrejši čas za razvoj programske opreme. Poleg tega tehnični dolg ni le slaba koda. Slaba koda je slaba koda, tehnični dolg pa lahko izhaja iz dela dobrih programerjev pod nerealnimi omejitvami projektov.