
بدهی فنی یا Technical Debt چیست؟
بدهی فنی یک مفهوم در توسعه پرشتاب است؛ به این معنی که تیم توسعه کدی را که در کوتاه مدت مشکلی را حل می کند به پیدا کردن راه حل کلی ترجیح می دهد.
به این ترتیب همزمان به توسعه راه حل انتخاب شده شما در حال قرض کردن زمان بیشتری از آینده تیم خود هستید، زیرا باید مدت زمان بیشتری را صرف refactor کردن و یا در حالت بدتر بازنویسی کد نوشته شده کنید.
بدهی های فنی نیز ممکن است به عنوان بدهی طراحی شناخته شوند.
گفته می شود وارد کانینگهام به نوشتن اولین ویکی معروف است، این اصطلاح را وارد دنیای برنامه نویسی کرده است. او چنین مثالی می زند(به این ترتیب بدهی فنی را به بدهی مالی تشبیه می کند)
ارایه اولین نسخه از کد به معنای مقروض شدن است. مقدار کمی بدهی سرعت توسعه را افزایش می دهد تنها در صورتی که بدهی به موقع با انجام اصلاحات پرداخت شود. خطر زمانی است که بدهی پرداخت نشود. هر دقیقه ای که صرف توسعه بر روی کد اشتباه می کنید به معنای سود قرضی است که زیر بار آن هستید.
از دیدگاه او تمامی سازمان های مهندسی محور زیر بار بدهی فنی هستند. البته او نمی گوید که هرگز نباید زیر بار قرض رفت اما همانطور که در دنیای واقعی با آن رو به رو هستید قرض سنگین ممکن است شما را ورشکست کند.
نکته دیگر اینکه بدهی فنی تنها کد ضعیف نیست، می تواند ناشی از کار یک برنامه نویس خوب تحت شرایط غیرواقعی و محدودیت های پروژه باشد.
بد نیست در انتها چارت زیر را هم ببینید. پروژه های محبوب PHP چه مقدار بدهی فنی دارند؟
اقتباسی از: Technopedia