Minh họa cho Thuyết Cửa sổ vỡ
Law #29 Chất lượng

Thuyết Cửa sổ vỡ

Broken Windows Theory

Những chỗ xấu nhỏ bị bỏ mặc trong codebase thường kéo theo thêm nhiều chỗ xấu và tiêu chuẩn thấp hơn.

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

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.

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