Преждевременный успех

Также известен как

Premature success, «работает на моей машине» агентной эпохи.

Контекст

Агент закончил фичу: юнит-тесты зелёные, curl вернул 200, сборка прошла. Он рапортует «готово», разработчик кивает и идёт дальше — или автономная сессия переключает статус и берёт следующую задачу.

Проблема

Работа объявляется сделанной без сквозной проверки как пользователь. Юниты проверяют куски, curl проверяет эндпоинт — никто не проверил, что фича работает целиком: от клика в интерфейсе до результата на экране.

Почему так делают

  • Зелёные тесты выглядят как доказательство — хотя проверяют только то, что в них написано.
  • Сквозная проверка дорогая: поднять окружение, пройти сценарий руками или браузерной автоматизацией — дольше, чем прогнать юниты.
  • Агент искренне уверен в успехе: он не врёт, он экстраполирует.
  • «Компилируется и тесты проходят» — привычный человеческий критерий, перенесённый на исполнителя, который пишет и код, и тесты.

Последствия

  • ➖ Фича «работает» до первого пользователя: разрыв обнаруживается в проде или на демо — в самых дорогих точках.
  • Список фич врёт: статус passing, подтверждённый юнитами, не пережил бы одного клика.
  • ➖ Ломается доверие к рапортам агента — а с ним и вся автономная работа: «готово» перестаёт что-либо значить.
  • ➖ Интеграционные разрывы копятся: каждая «готовая» фича добавляет свой, и разбирать их приходится скопом.

Признаки

  • В отчёте агента нет доказательств: ни вывода сквозного прогона, ни скриншота — только слова.
  • «Проверено» означает «юнит-тесты прошли».
  • Приложение никто не открывал: ни агент через браузер, ни человек руками.
  • На демо фичу показывают впервые.

Как лучше

Развести «код написан» и «фича работает» — и закрыть зазор петлёй обратной связи со сквозной проверкой: агент проходит сценарий как пользователь — для веба через браузер, со скриншотами — и предъявляет доказательства. В списке фич это правило встроено: статус переключает только сквозной прогон. Юниты и TDD остаются — они ловят регрессии кусков, но финалом работы они не являются.

Пример

Было:

— Фича готова: все 14 тестов проходят.

Стало:

Пройди сценарий как пользователь: создай расписание через UI, дождись письма с отчётом в тестовом ящике, приложи скриншоты обоих шагов. Готово — это когда пройден сценарий, а не когда зелёные юниты.

Связанные паттерны и анти-паттерны

  • Петля обратной связи — противоядие: проверка с доказательствами вместо рапорта «готово».
  • Список фич — институционализирует правило: статус переключает сквозной прогон, а не ощущение.
  • TDD с агентом — юниты нужны, но они — страховка кусков, а не финал: зелёный красно-зелёный цикл не отменяет сквозной проверки.
  • Вайб-кодинг — сосед по духу: там не читают код, здесь не проверяют поведение.

results matching ""

    No results matching ""