Tổng quan
Luật hệ quả ngoài ý muốn nhắc rằng thay đổi trong hệ thống phức tạp có thể tạo ra kết quả không được dự đoán. Kết quả đó có thể tốt, xấu hoặc thậm chí làm vấn đề ban đầu tệ hơn.
Ý chính
- Không thể thấy hết tác động của thay đổi lớn chỉ bằng phân tích trên giấy.
- Side effect thường xuất hiện ở nơi liên quan gián tiếp: quota, log, cache, chi phí vận hành hoặc hành vi người dùng.
- Rollout nhỏ, monitoring và rollback plan là cách giảm thiệt hại khi hệ thống phản ứng bất ngờ.
Ví dụ từ nguồn
Bật logging chi tiết để debug có thể làm đầy disk và gây crash, trái ngược với mục tiêu tăng ổn định.
Tối ưu một chỉ số latency có thể làm tăng retry và khiến downstream chịu tải lớn hơn.
Nguồn gốc
Khái niệm này được nhà xã hội học Robert K. Merton phổ biến trong thế kỷ 20 và được mượn vào phần mềm như một cách nhìn hệ thống phức tạp.
Lưu ý khi áp dụng
Hãy thiết kế change management như một thí nghiệm có đo lường, không phải một lần deploy rồi hy vọng mọi thứ đúng như dự tính.