Принцип «YAGNI» ( — «Вам це не знадобиться») — процес і принцип проєктування, при якому основною метою та цінністю є відмова від додавання функціональності, в якій немає безпосередньої потреби. Цей принцип варто застосувати ще на етапі формування юзкейсів та UX-тестування на прототипах, оскільки це дозволяє визначити потрібні для користувачів елементи програми та усунути непотрібні функції з вимог до початку їхньої розробки.
Обґрунтування Згідно з адептами принципу YAGNI, бажання писати код, який не потрібний прямо зараз, але може знадобитися в майбутньому, призводить до таких небажаних наслідків:
Витрачається час, який було б витрачено на додавання, тестування і поліпшення необхідної функціональності. Нова функціональність має бути налагоджена, документована і підтримувана. Нова функціональність обмежує те, що може бути зроблено в майбутньому, тому непотрібна функціональність може згодом перешкодити додаванню нової потрібної функціональності. Поки функціональність справді не потрібна, важко повністю передбачити, що вона має робити, і протестувати її. Якщо нова функціональність ретельно не протестована, вона може неправильно працювати, коли вона згодом знадобиться. Це призводить до того, що програмне забезпечення стає складнішим. Якщо вся функціональність не документована, вона може так і залишитися невідомою користувачам. Додавання нової функціональності може призвести до бажання ще новішої, приводячи до ефекту снігової кулі.
Див. також Гірше це краще Принцип «KISS» Don't repeat yourself Мінімально життєздатний продукт
Посилання You Arent Gonna Need It в Portland Pattern Repository Чи порушує рефакторінг принцип YAGNI? Мартін Фаулер Рон Джефріс. Принцип YAGNI