จาก paper เรื่อง Towards an Ontology of Terms on Technical Debt
นั้นทำการสรุปชนิดของ technical debt ออกมาได้อย่างน่าสนใจ
รวมทั้งตัวชี้วัดของแต่ละชนิด
จึงทำการบันทึกไว้นิดหน่อย
น่าจะมีประโยชน์ สำหรับการการปรับปรุงคุณภาพของ software ให้ดีขึ้น

ชนิดของ Technical Debt ใน paper มีดังนี้

  • Architecture Debt ว่าด้วยเรื่องของ architecture ของระบบ ที่ส่งผลต่อการพัฒนา ทดสอบ และ ส่งมอบที่ยากหรือนานขึ้น
  • Build Debt ในการพัฒนานั้นจะมีขั้นตอนของการ build ทั้งการ compile code, download dependency ซึ่งช้าลงเรื่อย ๆ
  • Code Debt เรื่องของ source code ที่ไม่ตรงตามหลักการเขียน หรือ code smell ต่าง ๆ
  • Defect Debt เรื่องของ defect ที่มักจะแก้ช้า หรือ จัดลำดับความสำคัญไว้ทีหลัง
  • Design Debt เรื่องของโครงสร้างของ code ที่วิเคราะห์ออกมาพบว่า ไม่เป็นไปตามแนวปฏิบัติที่ดี เช่น แต่ละ class ผูกมัดกันมากจนเกินไป
  • Documentation Debt พบเจอบ่อย ๆ ที่เอกสารไม่สามารถอธิบายการทำงานของระบบปัจจุบันได้ ไม่ update หรือ ไม่เพียงพอต่อการใช้งาน
  • Infrastructure Debt เช่นเรื่องความล่าช้าของการสร้าง หรือการ update/fix/patch ต่าง ๆ
  • People Debt มีคอขวดที่คนบางคน ส่งผลให้เกิดปัญหา หรือ ส่งมอบล่าช้า
  • Process Debt ขั้นตอนการทำงานที่เยอะ หรือ ไม่จำเป็น หรือ ต้องรอนานเกินไป
  • Requirement Debt ต้องมีทั้งจาก business และ technical รวมทั้ง functional และ non-functional เสมอ
  • Test Automation Debt เรื่องของ fast feedback ของ development life cycle รวมทั้งความเชื่อมั่นที่น้อยลงเรื่อย ๆ
  • Test Debt เช่นการทดสอบไม่ครอบคลุม หรือ ไม่เสร็จจริง ๆ ตามที่วางแผนไว้

ในระบบของเราของ Technical Debt อะไรกันบ้างนะ ?