Занадто ревне застосування YAGNI (яке називається Design by Enumeration в Підводні камені об'єктно-орієнтованого розвитку ) в середовищі, коли будь-яка розсудлива людина може сказати, що вимоги, безумовно, мають змінитися. І міняти повторно.
Якщо ви (важко) зашифрували все точно відповідно до сучасних вимог - при цьому побиваючи тих, хто каже, "чи не могло це бути більш загальним?" з вашим молотком YAGNI - і тоді вимоги різко змінюються (але таким чином, що можна було б обґрунтовано передбачити), то це може бути різницею між тим, що потрібно адаптуватися 2 тижні проти 20 хвилин.
ОНОВЛЕННЯ: Для уточнення, ось надуманий приклад, який не надто далеко від того, що сталося. Переповнення стека було розроблено для підтримки значків, але припустимо, що спочатку вони могли думати лише про чотири значки. Лише чотири, така невелика кількість, тому вони твердо кодували підтримку рівно чотирьох значків за всією логікою на сайті. У базі даних, в інформації про користувача, у всіх відображуваних кодах. Тому що "вам не знадобляться" будь-які значки, про які ви не можете придумати, правда? Припустимо, тоді сайт починає працювати, і люди починають пропонувати нові значки. Кожен знакпотрібно до двох тижнів, тому що існує стільки жорсткого кодування, щоб налаштувати всюди. Але все-таки "Я вам не знадобиться" більше значків, ніж сьогоднішній список, тому ніколи не існує рефакторингу для підтримки загальної колекції значків. Чи зайняла б така родова колекція більше часу? Не багато, якщо вони є.
YAGNI є цінним принципом, але його не слід (ab) використовувати для виправдання поганого дизайну та неналежного жорсткого кодування. Є рівновага, і, маючи досвід, я вважаю, що я наближаюся до цього.