دين تقني (برمجيات)

الدين التقني هو مصطلح يستخدم في مشاريع تطوير البرمجيات لوصف الأعمال الإضافية الناجمة عن 1) تأجيل مهام صيانة البرامج (على سبيل المثال: تأجيل إصلاح الأعطال bugs، تأجيل المهام المتعلقة باختبار البرنامج، تأجيل مهمة تحديث الوثائق، تأجيل مهمة إعادة هيكلة البرنامج، الخ). أو 2) استخدام تصاميم أو تعليمات برمجية غير مطابقة لمعايير وممارسات الجودة. هذه المهام المؤجلة أو غير المطابقة لمعايير الجودة تمثل ديناُ تقنياُ على البرنامج.

فكرة الديون التقنية مشتقه من مفهوم الديون المالية [1][2]، حيث أن المقترض يستفيد من الدين في تحقيق بعض الأهداف قصيرة الأجل مثل الاستثمار أو شراء سلعة. ولكن هذا الدين يجلب تكاليف إضافية عن طريق سعر الفائدة. نفس الفكرة بالنسبة للديون التقنية، حيث يمكن للمطورين تحميل بعض الديون التقنية لتحقيق أهداف قصيرة الأجل مثل إصدار نسخة من البرنامج بأقل وقت وجهد ممكن. ولكن إبقاء الديون التقنية لفترة طويلة يتسبب في تعقيد البرنامج وبالتالي زيادة في تكلفة صيانة البرنامج على المدى البعيد. حيث أن أي برنامج أو تطبيق يتغير وينمو بشكل متسارع. وبالتالي المواصلة في تأجيل مهام الصيانة سيزيد من تكلفتها مستقبلاٌ [3]، لإن البرنامج أصبح أكبر من حيث الحجم وعدد المميزات.

مجموعة من الباحثين والمطورين وضعوا تعريفًا محددًا للديون التقنية وهو "مجموعة من التصاميم و التعليمات البرمجية المناسبة في الوقت الحالي، ولكن تجعل التغييرات المستقبلية للبرنامج أكثر صعوبة. الديون التقنية تمثل مسؤولية والذي تأثيرها يقتصر على الجودة الداخلية للبرنامج وبالتحديد سهولة الصيانة والتطوير".[4]

مراجععدل

  1. ^ Ward Cunningham (1992). "The WyCash Portfolio Management System".in Addendum to the proceedings on object-oriented programming systems, languages, and applications, 1992, pp. 29-30. "نسخة مؤرشفة". Archived from the original on 22 ديسمبر 2019. اطلع عليه بتاريخ 24 يونيو 2019. الوسيط |CitationClass= تم تجاهله (مساعدة)صيانة CS1: BOT: original-url status unknown (link)
  2. ^ Allman, Eric (2012). "Managing Technical Debt". Communications of the ACM. 55 (5): 50–55. نسخة محفوظة 20 أكتوبر 2017 على موقع واي باك مشين.
  3. ^ Lehman, M (1996). "Laws of Software Evolution Revisited". EWSPT '96 Proceedings of the 5th European Workshop on Software Process Technology: 108–124. Retrieved 19 November2014. "نسخة مؤرشفة". Archived from the original on 27 يونيو 2017. اطلع عليه بتاريخ 25 يونيو 2019. الوسيط |CitationClass= تم تجاهله (مساعدة)صيانة CS1: BOT: original-url status unknown (link)
  4. ^ P. Avgeriou, P. Kruchten, I. Ozkaya, and C. Seaman, “Managing Technical Debt in Software Engineering (Dagstuhl Seminar 16162),” Dagstuhl Reports, vol. 6, no. 4, pp. 110--138, 2016. نسخة محفوظة 24 يونيو 2019 على موقع واي باك مشين.
 
هذه بذرة مقالة عن هندسة البرمجيات بحاجة للتوسيع. شارك في تحريرها.