YAGNI có nghĩa là mọi thứ được hoàn thành khi họ cần hoàn thành và không phải trước đó. Điều đó không có nghĩa là họ không bao giờ hoàn thành, trừ khi họ không bao giờ cần thiết. Nó có nghĩa là bạn chỉ làm những gì mang lại cho khách hàng giá trị kinh doanh ngay lập tức . Giá trị kinh doanh ngay lập tức có nghĩa là chủ quan cho mọi khách hàng và mọi dự án.
Trong cả hai trường hợp, bạn không thể mất bất cứ điều gì với YAGNI.
Trong trường hợp khác, bạn mất thời gian viết mã không bao giờ được sử dụng và viết kiểm tra mã không bao giờ được sử dụng và viết tài liệu cho mã không bao giờ được sử dụng và bảo trì mã không bao giờ được sử dụng, mọi người tự hỏi mã này làm gì và nếu nó được sử dụng, quảng cáo sẽ được sử dụng.
Thí dụ
Nếu tôi đang làm việc trên một nguyên mẫu / bằng chứng về khái niệm hoặc phiên bản 1.0 của một ứng dụng thì tôi không cần một thiết kế để mở rộng theo cấp độ của Facebook. Địa ngục tôi không cần một thiết kế để mở rộng đến cấp độ của Facebook, cho đến khi tôi bắt đầu thấy rằng tôi có loại lưu lượng truy cập đó.
Bạn có nghĩ rằng Zuckerberg đã thiết kế phiên bản đầu tiên của Facebook để mở rộng tới 500 triệu người dùng không? Không, ông đã thiết kế và xây dựng nó để làm chỉ muốn nó cần làm và không còn nữa. Nếu anh ta cố gắng thiết kế cho 500 triệu người dùng ngay từ ngày đầu tiên, Facebook có lẽ sẽ không bao giờ được phát hành.
Cách thực tế để làm mọi việc là cách anh ấy đã làm nó. Ông bắt đầu với PHP và MySQL, và được thiết kế lại và viết lại khi cần dựa trên giá trị doanh nghiệp , nhân rộng cho hàng triệu người dùng có giá trị kinh doanh rất lớn, nhưng không phải vào ngày 0. Vào ngày 0, chỉ cần tung ra thứ gì đó là giá trị kinh doanh to lớn.
Ông đã lên kế hoạch thiết kế lại và viết lại. Đó là một suy nghĩ khác với kế hoạch cho bồn rửa nhà bếp và không bao giờ thực sự phát triển hoặc cung cấp bất cứ điều gì hữu ích đã hoàn thành.
Lập kế hoạch cuối đời cho một cơ sở mã và viết lại là bằng chứng Agile và tương lai. Cố gắng đưa ra một số mục tiêu không xác định là "linh hoạt" chỉ kết thúc trong thất bại mỗi lần. Bạn đang thiết kế mà không cần bất kỳ nhu cầu nào và lãng phí thời gian, bạn có thể phát triển những gì có giá trị kinh doanh thay vì mơ ước về các tính năng sẽ không bao giờ được sử dụng.