Tổng quan
Thuyết cửa sổ vỡ trong phần mềm nói rằng bad code, hack, TODO bỏ mặc và quyết định sai nếu không sửa sẽ gửi tín hiệu rằng tiêu chuẩn thấp là chấp nhận được. Codebase xuống cấp thường bắt đầu từ các vết nứt nhỏ.
Ý chính
- Vấn đề nhỏ bị bỏ qua tạo tiền lệ cho vấn đề lớn hơn.
- Codebase sạch khuyến khích người sau giữ sạch; codebase bừa khuyến khích cắt góc.
- Sửa sớm khi chi phí còn thấp giúp tránh vòng xoáy technical debt.
Ví dụ từ nguồn
Một vài hàm có comment "TODO fix hack" nhiều tháng không xử lý khiến newcomer dễ thêm hack mới theo cùng chuẩn thấp.
Test flaky không được sửa làm team dần bỏ qua CI đỏ và mất niềm tin vào pipeline.
Nguồn gốc
Khái niệm gốc từ criminology của James Q. Wilson và George Kelling năm 1982; Andy Hunt và Dave Thomas đưa ẩn dụ này vào The Pragmatic Programmer năm 1999.
Lưu ý khi áp dụng
Không cần sửa mọi thứ ngay. Hãy có nguyên tắc không để vấn đề mới bị normalize và trả nợ nhỏ khi đang chạm đúng khu vực.