Преждевременный успех
Также известен как
Premature success, «работает на моей машине» агентной эпохи.
Контекст
Агент закончил фичу: юнит-тесты зелёные, curl вернул 200, сборка прошла. Он рапортует «готово», разработчик кивает и идёт дальше — или автономная сессия переключает статус и берёт следующую задачу.
Проблема
Работа объявляется сделанной без сквозной проверки как пользователь. Юниты проверяют куски, curl проверяет эндпоинт — никто не проверил, что фича работает целиком: от клика в интерфейсе до результата на экране.
Почему так делают
- Зелёные тесты выглядят как доказательство — хотя проверяют только то, что в них написано.
- Сквозная проверка дорогая: поднять окружение, пройти сценарий руками или браузерной автоматизацией — дольше, чем прогнать юниты.
- Агент искренне уверен в успехе: он не врёт, он экстраполирует.
- «Компилируется и тесты проходят» — привычный человеческий критерий, перенесённый на исполнителя, который пишет и код, и тесты.
Последствия
- ➖ Фича «работает» до первого пользователя: разрыв обнаруживается в проде или на демо — в самых дорогих точках.
- ➖ Список фич врёт: статус
passing, подтверждённый юнитами, не пережил бы одного клика. - ➖ Ломается доверие к рапортам агента — а с ним и вся автономная работа: «готово» перестаёт что-либо значить.
- ➖ Интеграционные разрывы копятся: каждая «готовая» фича добавляет свой, и разбирать их приходится скопом.
Признаки
- В отчёте агента нет доказательств: ни вывода сквозного прогона, ни скриншота — только слова.
- «Проверено» означает «юнит-тесты прошли».
- Приложение никто не открывал: ни агент через браузер, ни человек руками.
- На демо фичу показывают впервые.
Как лучше
Развести «код написан» и «фича работает» — и закрыть зазор петлёй обратной связи со сквозной проверкой: агент проходит сценарий как пользователь — для веба через браузер, со скриншотами — и предъявляет доказательства. В списке фич это правило встроено: статус переключает только сквозной прогон. Юниты и TDD остаются — они ловят регрессии кусков, но финалом работы они не являются.
Пример
Было:
— Фича готова: все 14 тестов проходят.
Стало:
Пройди сценарий как пользователь: создай расписание через UI, дождись письма с отчётом в тестовом ящике, приложи скриншоты обоих шагов. Готово — это когда пройден сценарий, а не когда зелёные юниты.
Связанные паттерны и анти-паттерны
- Петля обратной связи — противоядие: проверка с доказательствами вместо рапорта «готово».
- Список фич — институционализирует правило: статус переключает сквозной прогон, а не ощущение.
- TDD с агентом — юниты нужны, но они — страховка кусков, а не финал: зелёный красно-зелёный цикл не отменяет сквозной проверки.
- Вайб-кодинг — сосед по духу: там не читают код, здесь не проверяют поведение.