Quá hăng say áp dụng YAGNI (được gọi là Thiết kế bởi Enumeration trong Cạm bẫy của Object Oriented Development ) trong một môi trường mà bất kỳ người nào hợp lý có thể nói rằng các yêu cầu đã được chắc chắn sẽ thay đổi. Và thay đổi nhiều lần.
Nếu bạn (cứng-) mã hóa mọi thứ chính xác theo yêu cầu hiện tại, trong khi đánh bại bất cứ ai nói rằng "không thể chung chung hơn sao?" với trung tâm mua sắm YAGNI của bạn và sau đó các yêu cầu thay đổi mạnh mẽ (nhưng theo cách có thể dự đoán một cách hợp lý), thì đó có thể là sự khác biệt giữa mất 2 tuần để thích nghi, so với mất 20 phút.
CẬP NHẬT: Để làm rõ, đây là một ví dụ hư cấu không quá xa so với những gì đã xảy ra. Stack Overflow được thiết kế để hỗ trợ huy hiệu, nhưng giả sử lúc đầu họ chỉ có thể nghĩ ra bốn huy hiệu. Chỉ có bốn, một con số nhỏ như vậy, vì vậy họ đã mã hóa cứng hỗ trợ cho chính xác bốn huy hiệu trong toàn bộ logic trong trang web. Trong cơ sở dữ liệu, trong thông tin người dùng, trong tất cả các mã hiển thị. Bởi vì "Ya sẽ không cần" bất kỳ huy hiệu nào mà bạn không thể nghĩ ra, phải không? Giả sử sau đó trang web đi vào hoạt động và mọi người bắt đầu đề xuất các huy hiệu mới. Mỗi huy hiệumất tới hai tuần để thêm, bởi vì có quá nhiều mã hóa cứng để điều chỉnh mọi nơi. Tuy nhiên, "Ya sẽ không cần" bất kỳ huy hiệu nào nhiều hơn danh sách ngày nay, vì vậy không bao giờ có bất kỳ tái cấu trúc nào để hỗ trợ một bộ huy hiệu chung. Một bộ sưu tập chung như vậy có mất thêm thời gian trước không? Không nhiều, nếu có.
YAGNI là một nguyên tắc có giá trị, nhưng nó không nên được sử dụng để bào chữa cho thiết kế kém và mã hóa không phù hợp. Có một sự cân bằng, và với kinh nghiệm, tôi tin rằng tôi đang tiếp cận nó.