YAGNI berarti hal-hal yang dilakukan ketika mereka perlu dilakukan dan bukan sebelumnya. Itu tidak berarti mereka tidak pernah selesai, tidak kecuali mereka tidak pernah dibutuhkan. Ini berarti Anda hanya melakukan apa yang memberi pelanggan nilai bisnis langsung . Apa nilai bisnis langsung berarti subjektif bagi setiap pelanggan dan setiap proyek.
Dalam kedua kasus tersebut, Anda tidak dapat kehilangan apapun dengan YAGNI.
Dalam kasus lain, Anda kehilangan waktu menulis kode yang tidak pernah digunakan, dan menulis tes untuk kode yang tidak pernah digunakan, dan menulis dokumentasi untuk kode yang tidak pernah digunakan, dan pemeliharaan pada kode yang tidak pernah digunakan, orang bertanya-tanya apa yang dilakukan kode ini , dan jika itu pernah digunakan, ad nauseum.
Contoh
Jika saya mengerjakan prototipe / bukti konsep atau versi 1.0 dari aplikasi maka saya tidak perlu desain untuk skala ke tingkat Facebook. Sial, saya tidak perlu desain untuk meningkatkan ke tingkat Facebook, sampai saya mulai melihat bahwa saya memiliki lalu lintas semacam itu.
Apakah Anda pikir Zuckerberg merancang versi Facebook yang paling pertama untuk skala hingga 500 juta pengguna? Tidak, ia mendesain dan membangunnya agar hanya ingin itu perlu dilakukan dan tidak lebih. Jika ia mencoba menyiram desain untuk 500 Juta pengguna sejak hari pertama, Facebook mungkin tidak akan pernah dirilis.
Cara praktis untuk melakukan sesuatu adalah bagaimana ia melakukannya. Dia mulai dengan PHP dan MySQL, dan desain ulang dan penulisan ulang sesuai kebutuhan berdasarkan nilai bisnis , penskalaan ke jutaan pengguna adalah nilai bisnis yang luar biasa, tetapi tidak pada hari ke 0. Pada hari 0 hanya meluncurkan sesuatu adalah nilai bisnis yang luar biasa.
Dia berencana mendesain ulang dan menulis ulang. Yang merupakan pola pikir yang berbeda dari perencanaan untuk wastafel dapur dan tidak pernah benar-benar mengembangkan atau memberikan sesuatu yang bermanfaat yang lengkap.
Merencanakan akhir masa hidup untuk basis kode, dan penulisan ulang adalah Agile dan bukti di masa depan. Mencoba untuk datang dengan beberapa tujuan "fleksibel" yang tidak ditentukan hanya berakhir dengan kegagalan setiap saat. Anda mendesain tanpa perlu dan membuang waktu Anda bisa mengembangkan apa yang bernilai bisnis, bukan bermimpi tentang fitur yang tidak akan pernah digunakan.