Я для себя чётко определил смысл YAGNI так, чтобы он был мне полезен в повседневном кодинге.
То, что мне не понадобится — это не абстракции и паттерны, а бизнес-требования, которые отсутствуют в текущей постановке задачи.
Одна из сложностей кодинга в том, что нельзя абсолютно всё предусмотреть в техническом задании, программисту часто приходится самому додумывать некоторые аспекты. Принцип YAGNI помогает не додумывать несуществующие бизнес-требования в стиле «а как должна себя вести система если…». Следует реализовывать логику настолько просто, насколько необходимо для соблюдения всех озвученных требований, но делать это так, чтобы код был максимально адаптирован к изменению и появлению новых требований. А вот этому как раз помогает грамотное применение абстракций и паттернов, соблюдение принципов SOLID и прочие программистские премудрости.