Что такое YAGNI (вам это не понадобится)
Полное название: You Aren't Gonna Need It
Другие названия: YAGNI, you aren't gonna need it, принцип YAGNI
Определение
YAGNI (You Aren't Gonna Need It) это принцип из экстремального программирования: не делать функцию, пока в ней нет реальной нужды, а есть лишь догадка.
Почему это важно
Очень хочется строить под каждого клиента, который когда-нибудь может прийти.
Частые ошибки
Делать функции для клиентов, которых у вас еще нет.
Практический примерУсловный пример
Бонусная программа на всякий случай
Перед запуском сайта цветочного магазина управляющая просит бонусную программу с баллами, на всякий случай. Цену считаем в неделях работы.
- +2 недели
Цена создания
Еще две недели разработки.
- +2 недели
Цена задержки
Запуск сдвигается с 6-й недели на 8-ю, и сайт начинает приносить заявки на две недели позже.
Цена содержания
Любое следующее изменение формы заказа должно сохранять работу баллов.
Цена исправления
Когда постоянные клиенты наконец о чем-то просят, это напоминание перед праздниками, а не баллы.
Делать по запросу
Запуститься на 6-й неделе, посмотреть, что просят постоянные клиенты, и сделать это.
За угаданную функцию платят четыре раза. За запрошенную один.
Условный пример
Сделать на всякий случай?
Просьба управляющей перед запуском. Выберите ответ и посмотрите, во что он обойдется.
Ситуация
Сайт цветочного магазина почти готов, и управляющая хочет сначала добавить бонусную программу, на всякий случай. Ни один клиент об этом не просил.
Выберите вариант
Заплатить четыре раза или один
- 1Создание: еще две недели работы до запуска.
- 2Задержка: сайт начинает приносить заявки на две недели позже.
- 3Содержание: баллы должны работать после каждого изменения формы.
- 4Исправление: клиенты просят напоминание перед праздниками, а не баллы, и его все равно приходится делать.
Запуск на 8-й неделе. Магазин платит за баллы четыре раза: за разработку, двумя неделями без заявок, каждым следующим изменением и еще раз, когда клиенты просят другое.
Определение
YAGNI пришел из экстремального программирования (Extreme Programming). Мартин Фаулер (Martin Fowler) возводит термин к раннему разговору Кента Бека (Kent Beck) и Чета Хендриксона (Chet Hendrickson) в проекте C3. Правило такое: не создавать возможность ради функции, которая, как вы только предполагаете, понадобится. Фаулер называет четыре цены такой предполагаемой функции. Цена создания это усилия на анализ, программирование и тестирование. Цена задержки это полезная функция, которую за это время не сделали. Цена содержания это сложность, которую функция добавляет и из-за которой труднее менять все остальное. Цена исправления наступает, когда приходит настоящая потребность и оказывается, что функция сделана не так. У правила есть граница: Фаулер прямо пишет, что оно не относится к усилиям, которые упрощают изменение программы. Держать работу легкой для изменений не значит делать функцию на догадке.
Почему это важно
За каждую функцию «на всякий случай» платят не один раз: когда ее делают, упущенным вместо нее, при каждом изменении рядом с ней и еще раз, когда настоящая потребность оказывается другой. YAGNI держит первую версию маленькой, а план честным: делайте то, что просят сейчас, смотрите, как клиенты ведут себя на деле, и пусть это определит следующую функцию. Лишнее строительство к тому же увеличивает технический долг.
Напрямую связано: Содержание проекта (Scope), Agile (гибкий подход), Технический долг (Technical Debt).
Советы по улучшению
- Прежде чем делать функцию, спросите, кому она нужна сейчас и что это показывает.
- Ведите список идей на потом, чтобы «не сейчас» не превращалось в «забыли».
- Держите работу легкой для изменений, YAGNI этого не запрещает, чтобы реальную потребность можно было быстро добавить.
- Когда потребность подтверждена, делайте функцию тогда и в том объеме, который видно по этой потребности.
Частые ошибки
- Прикрываться YAGNI, оправдывая неряшливую работу, которую потом трудно менять.
- Откладывать уже подтвержденную потребность, как будто это догадка о будущем.
- Растягивать правило на любые деловые решения, хотя оно придумано для функций продукта.
Связанные термины
Содержание проекта (Scope)
Scope проекта (содержание проекта) это вся работа, которую проект выполнит, и то, что по договоренности в него не входит. Так видно, где дополнительная работа.
Agile (гибкий подход)
Agile (гибкий подход) это работа короткими циклами: показать работающий результат, получить отклик и поправить план. Scrum и Kanban это два таких способа.
Технический долг (Technical Debt)
Технический долг это будущая работа, которая возникает, когда сегодня выбирают быстрое решение в коде вместо правильного. Без погашения растут проценты.
Короткая проверка
Перед запуском управляющая просит бонусную программу на всякий случай. Что советует YAGNI?
Выберите ответ
Часто задаваемые вопросы
Нужно ли понимать YAGNI до открытия бизнеса?
Когда YAGNI становится важен для новой компании?
Как YAGNI помогает новому бизнесу беречь бюджет?
Не помешает ли YAGNI моему бизнесу расти?
Зачем YAGNI бизнесу, который уже работает?
Что идет не так, если бизнес игнорирует YAGNI?
Как начать применять YAGNI к нашим текущим планам?
Чем YAGNI отличается от просто плохой работы?
Как расшифровывается YAGNI и что это значит?
Не рискованно ли для бизнеса следовать YAGNI?
Нужен ли разработчик, чтобы понять, подпадает ли что-то под YAGNI?
Значит ли YAGNI, что не нужно планировать будущее?
Источники: Martin Fowler, Yagni, martinfowler.com, 26 May 2015
Последняя проверка: 2026-09-24
Работал с
- Google for Startups
- Дом бизнеса муниципалитета Сдерота
- Microsoft Reactor
- GameReady
- Eclipse Capital
- SderoTech
- IUCEL
- Resilience & Health Innovation Hub
- International Resilience Institute of Sderot
- Google for Startups
- Дом бизнеса муниципалитета Сдерота
- Microsoft Reactor
- GameReady
- Eclipse Capital
- SderoTech
- IUCEL
- Resilience & Health Innovation Hub
- International Resilience Institute of Sderot
Что говорят клиенты
Из разных сфер и на разных этапах бизнеса
Дэн Манто
Eclipse Capital
Инвестиции и финансы в недвижимости, США
Арти МакЛабин
GameReady
Обучение и аутсорсинг в разработке игр, международная компания

Анна
Косметолог
После курса косметологии в одной из ведущих компаний я была в растерянности. Не знала, как открыть бизнес, что продавать из дома и как привлекать клиентов. С тех пор как я обратилась в Mobius, всё изменилось. Мы составили чёткий план с понятными шагами, без лишних рисков. Сегодня я вижу результаты, расту и развиваюсь каждый месяц.

Марк
Массажист, Ган-Явне
Когда я закончил курс массажа, я представлял себе всё совсем иначе. Оказалось, что это тяжёлая сфера и найти финансовую стабильность непросто. Когда я пришёл в Mobius, что-то изменилось. Мы начали планомерную работу и составили бизнес-план. Без Mobius? Наверное, я бы сдался. Сегодня я верю в себя и в свой путь.
Проекты всегда опаздывают или выходят за бюджет?
Алекс помогает бизнесам в Израиле сдавать проекты вовремя и по плану. Первый звонок бесплатный.
+972 055-248-6151. Лучше в WhatsApp: большую часть дня я на встречах и отвечаю, как только освобождаюсь. Другие способы связи