Technikai tartozás

A technikai adósság (más néven kódolási adósság ) a szoftverfejlesztés metaforája, amely a szoftverkódban vagy az architektúrában felhalmozódott problémákra utal, amelyek a szoftverfejlesztés minőségének elhanyagolásával kapcsolatosak, és a jövőben további munkaerőköltségeket okoznak. A műszaki adósság általában láthatatlan a termék végfelhasználói számára, de a karbantarthatóság , a tesztelhetőség, az érthetőség, a módosíthatóság és a hordozhatóság hiányosságaihoz kapcsolódik . A pénzügyi adóssághoz hasonlóan a technikai adósság is felhalmozhat " kamatot» - a fejlesztés folytatásának megnehezítése (vagy akár lehetetlenné tétele), többletidő, amit a fejlesztők a szoftvertermék cseréjére, hibák kijavítására, karbantartására stb. fordítanak. Bár a technikai adósságállomány növekedése általában negatívan befolyásolja a projekt jövőjét, ez is tudatos, kompromisszumos döntés legyen a körülmények alapján.

Önmagában a rossz kód nem mindig technikai adósság, mivel a kár ("tartozás kamata") abból ered, hogy idővel meg kell változtatni a kódot [1] .

A műszaki adósság kifejezés elsősorban a szoftverfejlesztéssel kapcsolatban használatos, de alkalmazható más mérnöki területekre is.

Néha a kifejezést helytelenül használják, és olyan örökölt kódot jelöl, amely már nem támogatott ,  amely rossz minőségű és valaki más írta [1] .

Okok

A technikai tartozás gyakori okai (több is lehet) [2] :

Következmények

A „kamatfizetés” a helyi fejlesztés során és más projektfejlesztők technikai támogatásának hiányában is megjelenik. A projekt folyamatos fejlesztése a jövőben növelheti az "adósság-visszafizetési" munkálatok költségeit. A technikai tartozást egyszerűen a folyamatban lévő munkák befejezésével lehet visszafizetni.

A technikai adósság felhalmozódása a projekt késések egyik fő oka. Nehéz pontosan megbecsülni, hogy mennyi munkát kell végezni az adósság törlesztéséhez. Minden változtatással meghatározatlan mennyiségű folyamatban lévő munka kerül a projektbe. A határidők „égnek”, amikor a projekt megérti, hogy még mindig sokkal több a folyamatban lévő munka (tartozás), mint amennyi idő a befejezésére. A kiszámítható kiadási ütemezés érdekében a fejlesztőcsapatnak olyan szintre kell korlátoznia az elvégzett munka mennyiségét, amely minimálisra csökkenti a folyamatban lévő munka mennyiségét (technikai adósság).

Míg Manny Lehman A növekvő összetettség törvénye már bebizonyította, hogy a programok folyamatos fejlesztése növeli a komplexitásukat és rontja a tervezésüket, miközben dolgoznak rajtuk, Ward Cunningham először egy 1992-es jelentésben hasonlította össze a technikai összetettséget és az adósságot:

Joshua Kerievsky 2004-es "Refaktoring with Patterns" című cikkében az építészeti visszásság kezelésének költségeinek összehasonlítása mellett érvel, amelyet "strukturális adósságnak" nevez [5] .

A késleltethető műveletek közé tartozik a dokumentáció, a tesztek írása, a „TODO” jelzésű megjegyzésekre való odafigyelés, a fordító elleni küzdelem és a statikus kódelemzésre vonatkozó figyelmeztetések . A technikai adósság egyéb esetei közé tartozik a szervezeten belül nem megosztott tudásbázis és a kód, amely túl bonyolult ahhoz, hogy könnyen módosítható legyen.

A nyílt forráskódú szoftverekben a fő projekt helyi módosításainak késleltetése technikai adósság. .

Lásd még

Jegyzetek

  1. 1 2 Tornhill, 2018 , Műszaki adósság megkérdőjelezése.
  2. Csebanov. Emberi tényezők a szoftverfejlesztésben: pszichológiai és matematikai szempontok . habr.com (2014. december 2.). Letöltve: 2019. november 21.
  3. Lehman, MM Programok, életciklusok és a szoftverfejlődés törvényei  //  Proceedings of the IEEE. - 1980. - Iss. 68 , sz. 9 . - P. 1060-1076 . - doi : 10.1109/PROC.1980.11805 . Archiválva az eredetiből 2015. május 18-án.
  4. Cunningham, Ward . A WyCash portfóliókezelő rendszer (1992. március 26.). Hozzáférés dátuma: 2008. szeptember 26. Az eredetiből archiválva : 2008. december 23.
  5. Kerijevszkij, Joshua. Refaktorálás mintákra ( neopr  .) . - 2004. - ISBN 0-321-21335-1 .

Linkek

Irodalom