Ловушка спецификаций: почему AI-кодерам нужны идеально чёткие требования
Проблема спецификаций стара как мир — ИИ просто её высветил
В разработке с ИИ-агентами есть неудобная правда, которую все игнорируют: узкое место никогда не было в написании кода. Оно всегда было в том, чтобы понять, какой код писать.
Фред Брукс в 1986 году в книге No Silver Bullet разобрал это по косточкам. Новшества вроде объектно-ориентированного программирования или структурированных методов давали скромный прирост. Они упрощали случайную сложность — ту самую мороку с синтаксисом и отладкой. А вот сущностная сложность — умение четко определить задачу — оставалась. Основная работа в софте всегда сводилась к спецификациям: согласовать ожидания стейкхолдеров, взвесить компромиссы и описать систему, которой ещё нет.
Сейчас ИИ генерирует код на раз-два. Все ждут, что спецификации тоже уйдут в прошлое. Не дождутся.
Почему "подробные описания" — это не то же самое, что "точные спецификации"
Многие инструменты — от генераторов PRD на ИИ до валидаторов спецификаций — строятся на иллюзии: пусть ИИ задаст правильные вопросы, и пробелы закроются сами.
Это ошибка. Естественный язык полон двусмысленностей, именно поэтому появились формальные нотации. Можно набросать шикарный продукт-brief: он льётся, убеждает, все кивают. Но без технической строгости ИИ-агент выдаст код с сюрпризами. "Дашборд грузится быстро" — это не то же, что "P95 латентность <2000 мс, с потолком в 5000 мс на 99-м перцентиле". Первое — сторителлинг. Второе — спецификация.
Кормишь ИИ расплывчатым текстом — получаешь одно из двух:
Неясность вылазит в странном коде. Агент соберёт рабочий прототип, но с кривой архитектурой. Потом три спринта на переписывание.
Агент самодельно заполнит пробелы. Возьмёт шаблоны из тренировочных данных — тысячи похожих проектов — и впихнёт свои предположения. Уверенно и без вашего ведома.
Ни один вариант не радует.
Где ИИ-агенты реально тащат (и где буксуют)
Честно говоря, агентная разработка круто работает в простых сценариях. Лендинги, CRUD-приложения, типовые интеграции, стандартный e-commerce — здесь всё сходится. В данных полно примеров, агент просто подбирает паттерны.
Это полезно. Один фаундер в 10 раз ускоряет работу. Маленькая команда строит админку за часы, а не недели. Настоящий буст.
Но фишка в том, что успех рождается из ясных спецификаций, а не вопреки им. Задачи знакомые, спецификация почти подразумевается.
А для всего остального — уникальной бизнес-логики, новых интеграций, архитектурных выборов — думай сам. ИИ ускоряет набор кода. Мысли не ускоряет. Он не скажет: "Стоп, есть идея получше". Выполнит только то, что велено.
Один девелопер подметил: "ИИ пишет код, но не отказывается от него, пока не объяснишь, почему вариант X лучше". Это продуктовое мышление, а не кодинг. И оно бесценно.
Настоящее узкое место: трения между людьми
Если спецификации — боль, а ИИ её не лечит, то что поможет?
Всё просто: убрать трения в общении между людьми.
Когда продакт-менеджер сливает бриеф инженеру, а тот неделю уточняет эдж-кейсы — это провал спецификаций. Когда дизайн не вяжется с бэкендом — то же самое. Когда ИИ генерит код на основе недосказанностей — привет, спецификационный бардак.
Решение не в крутых агентах или фреймворках. Нужно вбить точность в разговор до запуска агента. Как:
- Спецификации как основной артефакт. Не бумажка, а контракт для генерации кода.
- Явная фиксация компромиссов. Почему eventual consistency, а не strong? Почему такая модель данных? Пиши чёрным по белому.
- Формальные инструменты для точности. SQL-схемы, API-контракты, бюджеты на производительность — используй, где не обойтись без ясности.
- Ранние петли с ИИ. Сгенери код на кусочке спецификации, посмотри, где вылезла неоднозначность, доработай.
Как это меняет ваш workflow
Если строите продакшн с ИИ, вывод не "бросьте агентов". А: вкладывайтесь в спецификации ещё больше.
Звучит странно в эпоху "двигайтесь быстро". Но быстро с хреновой спецификацией — это просто быстрее промахнётесь. Команды, которые выигрывают, не просят ИИ гадать. Они думают заранее и используют агентов для исполнения.
Для стартапов и маленьких тимов преимущество не в генерации кода. Оно в чётких спецификациях. Если сформулировал бизнес-логику так, что ИИ воплотит без косяков, — ты уже герой. Код — теперь мелочь.
Итог
Брукс был прав в 1986-м, и в 2025-м ничего не изменилось. Сущностная сложность софта — в замысле, не в сборке. ИИ не перевернул это. Он просто сделал разрыв между размытыми идеями и точным кодом очевидным.
Прорыв в продуктивности ждёт не от суперагентов. От команд, которые жёстко дисциплинируют спецификации, делают requirements engineering полноценной инженерной дисциплиной и пускают ИИ усиливать ясность, а не прятать кашу.
Вот настоящая фишка на стыке ИИ и разработки. И она требует того, чего агенты не умеют: глубоко думать о цели.