Minh họa cho Định luật Hofstadter
Law #24 Lập kế hoạch

Định luật Hofstadter

Hofstadter's Law

Mọi việc thường mất lâu hơn dự tính, kể cả khi bạn đã nhớ rằng nó thường mất lâu hơn dự tính.

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

Tổng quan

Hofstadter nói mọi việc luôn lâu hơn dự tính, kể cả khi bạn đã tính đến Hofstadter. Tính đệ quy của câu này phản ánh việc con người vẫn thường under-estimate dù biết mình hay under-estimate.

Ý chính

  • Dự án phức tạp luôn có unknown unknowns xuất hiện trong lúc làm.
  • Buffer không đủ nếu estimate không học từ dữ liệu lịch sử và các rủi ro cụ thể.
  • Range, milestone và feedback loop thực tế hơn một ngày hoàn thành chính xác giả tạo.

Ví dụ từ nguồn

Team nghĩ feature mất một tháng, cộng buffer thành sáu tuần, nhưng khi làm mới phát hiện API bên thứ ba thiếu dữ liệu và phải đổi thiết kế.

Một migration tưởng đơn giản bị kéo dài vì dữ liệu production có ngoại lệ mà dữ liệu test không có.

Nguồn gốc

Douglas Hofstadter nêu luật này trong Gödel, Escher, Bach năm 1979, cuốn sách nổi tiếng về đệ quy và tự tham chiếu.

Lưu ý khi áp dụng

Hãy dùng luật này để khiêm tốn trong estimate, chia delivery nhỏ và cập nhật dự báo theo evidence mới thay vì giữ lời hứa cũ.

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