Иллюзия прогресса: вайб-кодинг быстрый, но не проверяемый

Пятница. Вы открыли репозиторий: с понедельника коммитов — как за квартал, дифы зеленеют. А вопрос простой — готово ли это для конкретного человека снаружи? — всё ещё без ответа. «Вот-вот» тянется уже который спринт.
Здесь не сравниваем промпты и не выбираем «лучшую» модель. Речь о том, почему ощущение скорости так легко спутать с реальным движением — с тем, что держит нагрузку в проде, а не красиво смотрится в ветке.
Этот цикл — про критерии готовности, данные, доверие и эксплуатацию, а не про волшебные две строчки в чат. Это первая статья: задаём общие термины и рамку. Дальше — отдельные тексты про три уровня «готово», про контекст ассистентов, про данные и остальное.
Два смысла слова «прогресс»
В подходе Lean Startup Эрика Риса прогресс — не «закрыли много задач». Это validated learning (по-русски часто говорят «проверенное обучение»): вы что-то попробовали и проверили выводы на людях и цифрах, а не на слайде.
На странице про validated learning на lean.st прямо сказано: сводные метрики вроде общей выручки сами по себе мало что объясняют. Нужен разбор по воронке, по юнит-экономике, по реакции тех, кто уже пользуется продуктом. С инженерной стороны идея близкая: горы кода не заменяют ни одного сценария, который стабильно проходит «как у пользователя».
Вайб-кодинг — привычное название плотной работы с LLM, когда результат иногда принимают без нормального разбора. В статье Wikipedia это описано как практика, где выход модели не всегда внимательно ревьюят. Саймон Уиллисон формулирует жёстче: если вы просмотрели патч, прогнали проверки и могли бы объяснить коллеге, как устроен код, — это уже не «вайб» в узком смысле, а разработка с ассистентом.
Тезис этой статьи прост: накопление артефактов (строк, мёрджей, ответов в чате) не равно накоплению обоснованного знания о том, жив ли продукт для пользователя.
Что мы называем иллюзией прогресса
Иллюзия прогресса — это когда растут видимые следы работы, а критерии «готово» для продукта никто не зафиксировал. Ниже четыре частых сигнала. Это не нравоучение, а ориентиры: узнали себя — имеет смысл сместить фокус со скорости на проверяемый шаг.
1. Коммиты и тикеты вместо метрик
Закрыть четырнадцать задач приятно. Но менялись ли конверсия, отвал на оплате, время до первой пользы для пользователя?
Если у спринта нет definition of done (критерии готовности, DoD), легко повторить planning fallacy: мы снова уверены, что на этот раз уложимся в срок, хотя в прошлый раз не уложились. Дедлайн без ясного DoD почти гарантирует путаницу занятости с результатом.
2. «У меня в IDE работает»
Для шага к продукту обычно нужны стейджинг с данными близкими к жизни, автотест на регрессию и ручной сценарий, который вы не бросили после демо.
Фраза «у меня сейчас сработало» нормальна для прототипа. Она опасна, если это единственный аргумент, что всё готово.
3. Модель согласилась — значит, всё верно
Модель отвечает уверенно по умолчанию. Объём ответа вырос — а проверки на реальных данных вы не добавили.
Речь не только про «галлюцинации». Тезис проще: согласие в чате и проверка в мире — разные уровни доказательств.
4. «Сначала накатаем фичу, потом напишем тесты»
Ассистент и агент реально ускоряют перебор вариантов. Но у модели конечный контекст: внимание не безгранично, это хорошо разобрано у Anthropic в гайде по контексту для агентов.
Пока нет зафиксированного сигнала — метрики, дымового теста, сценария, который не отпускает после зелёного дифа, — растёт скорее число черновых решений, а не доказанная согласованность системы.
Лендинг, прототип и продукт: три разных «готово»
Следующий материал серии разберёт три разных «готово». Здесь — коротко, на одном дыхании:
- Лендинг — в основном статика и заявка: без живого состояния, ролей и ответственности за данные.
- Прототип — можно показать поведение, моки нормальны, «как работает» часто проверяют руками.
- Продукт — есть данные, границы доверия, эволюция схемы, понятно, кто тушит пожар и сколько стоит содержание.
Иллюзия прогресса часто выглядит как прыжок с красивой ветки сразу к «клиенты в облаке», без промежуточных критериев.
Мини-тест: где вы сейчас?
Ответьте честно: да, нет или не уверен.
- У критичной фичи есть три негативных сценария и способ их воспроизвести (тест или сценарий, а не «помню, как кликал»).
- Соберёте релиз на чистой машине без секретного
.env, которого нет у коллеги. - Кто дежурный, если падает оплата или блок с персональными данными?
- Если репозиторий сгорит сегодня, чем завтра докажете, что «готово» — не то, во что вас убедил чат?
Три ответа «нет» или «не уверен» на фоне денег или логина пользователей — не повод стыдиться. Это сигнал: пора усилить критерии, а не только генерацию.
Шпаргалка: симптом → как читать → что сделать
| Симптом | Как это может выглядеть | Что подкрутить |
|---|---|---|
| Много зелёных PR, снаружи тишина | Скорость сборки без опоры на инварианты | Минимальная проверка на main; релиз-ноты; ясно, кто выкатывает |
| «Ночью ассистент нагенерил» | Объём без сверки с реальностью | Счастливый путь + два плохих сценария вручную или автотест |
| Срок сорван, в Jira всё зелёное | Тикет ≠ пользователь; снова planning fallacy | DoD привязан к наблюдаемому событию для потребителя |
| В чате убедительно, в мире не проверяли | Согласие модели ≠ эксперимент | Критерий и источник данных вне LLM — до разрастания спора в переписке |
| «Сначала MRR, потом тесты» | Validated learning только в презентации | Тесты на критический поток + метрика оттока/оплаты на том же участке (MRR — месячная регулярная выручка по подписке, если кратко) |
Куда дальше по серии
- Следующий текст — три «готово» чеклистами: данные, роли, деньги, SLO, право.
- Потом — контекст ассистентов, данные, угрозы, стек, операционка. Углубиться в контекст можно в гайде Anthropic; про границу vibe и инженерии — у Уиллисона.
Глоссарий
- Вайб-кодинг — широко: плотная работа с LLM, иногда без ревью (Wikipedia). Узко по Уиллисону: без разбора патча — «вайб», с ревью и проверками — уже инженерия.
- Иллюзия прогресса — много следов работы при неясных критериях «готово» и без validated learning по этапу продукта.
- DoD (definition of done) — когда релиз правда ок для пользователя, а не «тикет закрыт».
Коротко в FAQ
- Вы против ИИ в разработке? Нет. Мы за раздельный учёт сигналов: скорость генерации и проверка результата.
- Почему не сравниваем модели и окна? Они устаревают каждые месяцы; важнее принцип конечного контекста и проверка вне чата (см. Anthropic; отдельно разберём в серии).
- Что за «следующая статья»? Три уровня «готово»: лендинг, прототип, продукт — с чеклистами.