Minh họa cho Nợ kỹ thuật
Law #30 Chất lượng

Nợ kỹ thuật

Technical Debt

Mọi quyết định làm nhanh hôm nay nhưng làm chậm việc thay đổi ngày mai đều đang tạo thêm nợ kỹ thuật.

Nguồn tham khảo: Laws of Software Engineering

Tổng quan

Nợ kỹ thuật là chi phí tương lai tạo ra bởi quyết định làm nhanh hoặc trì hoãn thiết kế tốt hôm nay. Giống khoản vay, nó có thể hợp lý nếu có chủ đích, nhưng sẽ sinh lãi nếu không được quản lý.

Ý chính

  • Shortcut giúp giao hàng nhanh trước mắt nhưng làm thay đổi sau này chậm và rủi ro hơn.
  • Lãi của nợ là thời gian mất vào workaround, bug, onboarding khó và sợ sửa code.
  • Nợ không luôn xấu; nợ có chủ đích, ghi nhận và trả đúng lúc có thể là trade-off kinh doanh hợp lý.

Ví dụ từ nguồn

Bỏ qua test để kịp deadline có thể ship được, nhưng mỗi lần sửa sau đó cần manual regression lâu hơn và dễ tạo bug mới.

Prototype dùng schema tạm có thể chấp nhận được nếu có kế hoạch migration trước khi scale dữ liệu.

Nguồn gốc

Ward Cunningham đặt ra ẩn dụ technical debt tại OOPSLA năm 1992 khi giải thích trade-off trong một ứng dụng tài chính.

Lưu ý khi áp dụng

Hãy ghi rõ loại nợ, lý do vay, lãi đang trả và điều kiện trả nợ; nếu không, nợ kỹ thuật biến thành lối sống.

← Quay lại danh sách 56 luật