- الدين المتعمد المسجل مقبول، وغير المسجل هو الخطر.
- الفائدة تظهر في بطء إضافة المميزات لا في الكود نفسه.
- السداد يكون مع العمل الجاري لا في مشروع تنظيف منفصل.
- ما لا يمس ولا يتغير قد لا يستحق السداد أصلا.
أنواع الدين
- متعمد قصير الأجل — اختصار واع لإطلاق في موعد، مسجل بخطة معالجة. هذا دين صحي.
- متعمد طويل الأجل — قرار معماري اتخذ بوعي وسيكلف لاحقا. مقبول إن كتب سببه.
- غير متعمد — نتج عن نقص خبرة أو فهم ناقص للمتطلبات. يكتشف لاحقا ويعالج.
- الإهمال — ليس دينا بل ضررا: لا اختبارات، ولا مراجعة، ولا معايير. لا يبرر بشيء.
كيف تقيس الفائدة
الدين لا يقاس بجمال الكود بل بأثره: كم يستغرق إضافة ميزة كانت تستغرق أقل؟ وكم عطلا يتكرر في المنطقة نفسها؟ وكم مرة يخاف المطور من لمس ملف؟ وكم يستغرق مطور جديد ليصبح منتجا؟
وهذه المؤشرات تحول نقاشا ذوقيا إلى حجة تفهمها الإدارة: نحن نبطؤ بنسبة يمكن قياسها، وهذا هو الثمن.
السداد الذكي
مشروع تنظيف كبير منفصل عن العمل نادرا ما يصل: يوقف تسليم القيمة، ويصعب تبريره، وينتهي مبتورا. والأنجح قاعدة الكشافة: كلما لمست ملفا اتركه أنظف قليلا. فيتركز التحسين حيث يعمل الفريق فعلا لا حيث لا يمر أحد.
- خصص نسبة ثابتة من كل دورة للسداد — لا فائضا يلغى عند الضغط.
- أصلح أولا ما يعيق العمل الجاري، لا أقبح ما في النظام.
- أضف اختبارا قبل إعادة الهيكلة، وإلا كانت مقامرة.
- اترك ما لا يمس ولا يتغير — الكود القبيح المستقر لا يكلف شيئا.
كيف تشرحه للإدارة
لا تتحدث عن الكود بل عن الأثر: هذه الميزة كانت تستغرق أسبوعا وصارت ثلاثة، وهذا العطل تكرر أربع مرات في ربع واحد. واربط السداد بهدف تجاري: نريد إطلاق كذا في الربع القادم، وهذا يستلزم معالجة كذا أولا.
المنع خير من السداد
مراجعة الكود، ومعايير مكتوبة، واختبارات آلية، ووقت كاف للتصميم قبل التنفيذ — هذه تمنع تراكم الدين غير المتعمد. وكلفتها أقل بكثير من كلفة معالجته بعد سنتين، لكنها تحتاج انضباطا حين يكون الضغط عاليا.
أسئلة شائعة
متى نعيد كتابة النظام من الصفر؟
نادرا جدا. فإعادة الكتابة تعني إعادة اكتشاف كل قاعدة عمل تراكمت في النظام القديم، وأغلبها غير موثق. والتحديث التدريجي بعزل الأجزاء واستبدالها واحدا واحدا أقل مخاطرة وإن بدا أبطأ.
كم نسبة الوقت المخصصة للسداد؟
تتفاوت بحسب حال النظام، والمهم أن تكون نسبة ثابتة معلنة لا فائضا يلغى أول ضغط. والفريق الذي يلغي هذه النسبة كل دورة يجدها تلتهم دوراته كلها بعد سنة.
هل الدين التقني مسؤولية المطورين وحدهم؟
لا. كثير منه ينشأ من ضغط مواعيد أو تغيير نطاق متكرر أو غموض متطلبات. ومعالجته تحتاج قرارا تنظيميا لا جهدا فرديا من المطورين.
- الديون التقنية
- جودة الكود
- إعادة الهيكلة
- صيانة البرمجيات
- إدارة المشاريع التقنية
- سرعة التطوير
- هندسة البرمجيات
- تطوير البرمجيات والتطبيقات