بدهی فنی هزینه آینده‌ای است که از انتخاب‌های فنی امروز ایجاد می‌شود، مانند کد تکراری، تست ناکافی، وابستگی منسوخ یا طراحی دشوار برای توسعه.

همه بدهی‌ها اشتباه نیستند، گاهی انتخاب آگاهانه برای تحویل سریع منطقی است. مسئله زمانی ایجاد می‌شود که هزینه نگهداری مدیریت نشود.

وقتی برای تحویل سریع منطق سفارش را در چند Controller کپی می‌کنیم، اصلاح آینده پرهزینه می‌شود. این هزینه عقب‌افتاده بخشی از Technical Debt است.

نمونه بدهی فنی قابل ثبت

Debt: duplicated tax logic in 5 controllers
Impact: inconsistent calculations after policy changes
Plan: extract TaxPolicy service, add regression tests

بدهی فنی گاهی تصمیم آگاهانه برای تحویل سریع است، اما باید هزینه بهره‌اش، مالک و زمان بازپرداخت مشخص باشند. هر کد ساده یا قدیمی لزوماً بدهی فنی نیست.

برای تکمیل این بحث، صفحه نیازمندی نان‌فانکشنال را نیز ببینید.