TechBord Logo
TechBord detail

بدهی فنی (Technical Debt) چیست؟

بدهی های فنی باری است نرم افزار (Software) که توسعه دهندگان از تصمیمات قدیمی کد منبع (Source Code) و معماری با آن روبرو هستند. این می تواند از توابع بد نوشته شده تا چارچوب (Framework) که دیگر پشتیبانی نمی شوند متغیر باشد. در برخی موارد، بدهی های فنی را می توان با بازنویسی کد مدیریت کرد، در حالی که در برخی دیگر، توسعه دهنده (Developer) ممکن است نیاز به بازنویسی کل برنامه ها داشته باشد.

اجتناب از بدهی فنی

بهترین ها راه مدیریت بدهی فنی این است که در وهله اول از انباشت آن جلوگیری شود. این کار با معماری برنامه (Program) با یک برنامه بلند مدت آغاز می شود. یک مهندس نرم افزار عاقل یک برنامه کاربردی (Application) برای آینده طراحی می کند، نه فقط وضعیت فعلی نرم افزار و سخت افزار (Hardware). انتخاب چارچوب‌های «آینده مقاوم» زبان برنامه نویسی (Programming Language) و قابل اعتماد دو تصمیم مهم در فرآیند معماری هستند.

همچنین برای جلوگیری از بدهی فنی، باید از شیوه‌های کدگذاری خوب پیروی کرد. به عنوان مثال، اگر یک منطق چندین بار در یک برنامه تکرار شود، باید به یک کلاس (Class) یا تابع (Function) ادغام شود. در غیر این صورت، مکان یابی و به روز رسانی هر نمونه در آینده دشوارتر خواهد بود، به خصوص اگر توسعه دهندگان جدید روی پروژه کار می کنند. نوشتن کد برای بررسی و به‌روزرسانی کد در آینده نیز ضروری است.

مدیریت بدهی فنی

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

1. بازنویسی کد

بازنویسی یا "بازنویسی" کد رایج ترین راه برای رسیدگی به بدهی های فنی است. به عنوان مثال، یک توسعه‌دهنده ارشد ممکن است کد نوشته شده توسط یک توسعه‌دهنده جوان را بررسی کند و راه‌هایی برای بهینه‌سازی عملکرد بیابد. همچنین ممکن است لازم باشد توابع منسوخ (Deprecated) به‌روزرسانی شود تا کد بتواند روی یک سکو (Platform) جدیدتر اجرا شود. در برخی موارد، ممکن است برای کار با رابط برنامه کاربردی (API) جدید، نیاز به بازنویسی بخش‌های بزرگی از کد باشد. این نوع به روز رسانی ها در دنیای برنامه نویسی رایج هستند و یکی از دلایلی هستند که توسعه دهندگان نسخه های جدید را منتشر می کنند.

2. شروع از ابتدا

اگر مقدار بدهی فنی به اندازه کافی بزرگ باشد، ممکن است به زمان بیشتری برای به روز رسانی کد نسبت به نوشتن یک برنامه جدید از ابتدا نیاز داشته باشد. در برخی موارد، ممکن است نیاز به کدگذاری مجدد یک برنامه در یک زبان برنامه نویسی جدید باشد که با نرم افزار مدرن کامپایلر (Compiler) سازگار است. بازسازی برنامه (App) از ابتدا یک سرمایه گذاری قابل توجه است، اما ممکن است مزایای بیشتری را به همراه داشته باشد. به عنوان مثال، یک برنامه جدید می تواند از آخرین فناوری های سخت افزاری و عناصر رابط کاربری (User Interface) مدرن استفاده کند.

تعریف اصطلاح بدهی فنی (Technical Debt) توسط تک بورد

تعریف بدهی فنی (Technical Debt) در این صفحه یک تعریف پایه نگاشته شده توسط تک بورد است. اگر مایل به ارجاع به این صفحه یا استناد به این تعریف هستید، با شرط درج لینک به این صفحه می توانید از این محتوا استفاده کنید.

هدف تک بورد توضیح اصطلاحات کامپیوتری به روشی است که به راحتی قابل درک باشد. ما برای سادگی و دقت با هر تعریفی که منتشر می کنیم تلاش می کنیم. اگر بازخوردی درباره تعریف بدهی فنی (Technical Debt) دارید یا می‌خواهید یک اصطلاح فنی جدید پیشنهاد کنید، لطفاً با ما تماس بگیرید.

آیا می خواهید اصطلاحات فنی بیشتری یاد بگیرید؟ در خبرنامه روزانه یا هفتگی مشترک شوید و شرایط و آزمون های ویژه را در ایمیل خود تحویل بگیرید.