Nợ kỹ thuật
Nợ kỹ thuật là một phép ẩn dụ cho chi phí phát sinh trong tương lai khi các lựa chọn thiết kế hoặc triển khai ngắn hạn, tiện lợi được ưu tiên hơn các lựa chọn vững chắc hơn nhưng chậm hơn, giống như nợ tài chính phát sinh lãi suất.
Definition
Nợ kỹ thuật là chi phí ngụ ý trong tương lai của việc làm lại bổ sung do lựa chọn một giải pháp dễ dàng hoặc hạn chế hiện tại thay vì một phương pháp tốt hơn sẽ mất nhiều thời gian hơn, trong đó nỗ lực bổ sung liên tục để khắc phục lối tắt là lãi suất của khoản nợ đó.
Scope
Chủ đề này bao gồm nguồn gốc và định nghĩa của phép ẩn dụ nợ kỹ thuật; sự phân biệt giữa nợ cố ý và vô ý, nợ thận trọng và liều lĩnh; khái niệm gốc và lãi áp dụng cho phần mềm; các phương pháp để xác định, đo lường và ưu tiên nợ; và các chiến lược để quản lý và trả nợ trong quá trình phát triển.
Core questions
- Điều gì được coi là nợ kỹ thuật và nó khác với các lỗi thông thường như thế nào?
- Khi nào việc chấp nhận nợ là một sự đánh đổi thận trọng chứ không phải là sự bất cẩn?
- Làm thế nào để xác định, đo lường và ưu tiên nợ kỹ thuật?
- Những chiến lược nào giúp trả nợ mà không làm ngừng việc cung cấp tính năng?
Key theories
- Phép ẩn dụ về nợ
- Cunningham đã coi các lựa chọn thiết kế tiện lợi như việc vay mượn từ tương lai: chúng tăng tốc độ giao hàng hiện tại nhưng tích lũy lãi suất dưới dạng nỗ lực bổ sung cho mỗi thay đổi tiếp theo cho đến khi khoản nợ được trả bằng cách tái cấu trúc.
- Nợ cố ý so với nợ vô ý
- Nợ kỹ thuật được phân loại theo các trục ý định và sự thận trọng; nợ cố ý, thận trọng là một sự đánh đổi chiến lược có ý thức, trong khi nợ vô ý hoặc liều lĩnh phát sinh từ việc thiếu kỹ năng hoặc kỷ luật và nguy hiểm hơn.
Clinical relevance
Nợ kỹ thuật không được quản lý làm chậm quá trình phát triển, tăng tỷ lệ lỗi và cuối cùng có thể làm tê liệt một codebase; việc làm cho nợ trở nên rõ ràng và quản lý nó một cách có chủ đích cho phép các nhóm đánh đổi tốc độ ngắn hạn với khả năng bảo trì dài hạn một cách sáng suốt.
Evidence & guidelines
Các sáng kiến và công cụ nghiên cứu, bao gồm đo lường nợ dựa trên SQALE và các nền tảng phân tích tĩnh, cung cấp các phương pháp để định lượng và theo dõi nợ kỹ thuật, mặc dù chưa có một tiêu chuẩn duy nhất nào chiếm ưu thế.
History
Cunningham đã đặt ra phép ẩn dụ về nợ vào năm 1992 để giải thích các đánh đổi thiết kế gia tăng cho các bên liên quan; khái niệm này trở nên nổi bật vào những năm 2000 và 2010 với sự phát triển nhanh nhẹn, các hội thảo nghiên cứu chuyên biệt và các công cụ nhằm định lượng và quản lý nợ.
Debates
- Nợ kỹ thuật là một phép ẩn dụ hữu ích hay quá mức?
- Một số người cho rằng phép ẩn dụ về nợ được áp dụng quá lỏng lẻo cho bất kỳ thiếu sót nào của mã, làm loãng ý nghĩa của nó, trong khi những người khác thấy nó là một công cụ giao tiếp có giá trị cho các đánh đổi; các định nghĩa chính xác tìm cách giữ cho nó có thể hành động được.
Key figures
- Ward Cunningham
- Philippe Kruchten
- Ipek Ozkaya
- Robert Nord
Related topics
Seminal works
- cunningham1992
- kruchten2019
- avgeriou2016
Frequently asked questions
- Tất cả nợ kỹ thuật đều xấu ư?
- Không. Giống như nợ tài chính, việc chấp nhận nợ kỹ thuật có thể là một lựa chọn chiến lược hợp lý — ví dụ để đáp ứng một thời hạn quan trọng — miễn là nó có chủ đích, rõ ràng và được trả; mối nguy hiểm nằm ở nợ vô ý hoặc không được quản lý tích lũy lãi suất một cách âm thầm.
- Nợ kỹ thuật khác với lỗi như thế nào?
- Lỗi là hành vi không chính xác mà người dùng có thể nhìn thấy, trong khi nợ kỹ thuật là điểm yếu cấu trúc bên trong không nhất thiết tạo ra kết quả sai nhưng làm tăng chi phí và rủi ro của các thay đổi trong tương lai; hai điều này có thể liên quan nhưng là những mối quan tâm riêng biệt.