Technical Debt
Định nghĩa
Technical Debt là chi phí tích lũy từ các quyết định kỹ thuật làm hệ thống khó thay đổi, khó nâng cấp hoặc khó vận hành hơn theo thời gian.
Cách hiểu bằng lời của tôi
Technical debt không chỉ là code xấu. Nó có thể là framework nội bộ cũ, dependency bị khóa version, build pipeline khó đổi, hoặc platform khiến các team không thể nâng runtime độc lập. Debt nguy hiểm nhất là loại âm thầm chặn mọi cải tiến sau này.
Ví dụ từ nguồn Netflix
Netflix từng bị khóa ở JDK 8 vì framework nội bộ cũ và dependency coupling. Ngay cả khi Java mới có lợi ích rõ, service owner vẫn khó nâng cấp vì platform không sẵn sàng. Cách xử lý là migration có tooling, baseline Spring Boot mới, compatibility layer và lý do vận hành rõ ràng.
Trong case Salesforce, nợ không chỉ là code cũ mà là static method, global state, dependency graph không rõ và thiếu documentation. Khi đưa hệ thống vào môi trường multi-tenant, các giả định cũ trở thành rủi ro kiến trúc.