В бигтехе, где я работаю, департаментов много. Прям, я бы сказал, до#уя.
И зоны ответственности этих департаментов иногда совершенно неочевидны.
Настолько, что в какой-то момент даже старожилы начинают сомневаться:
«А вот эту кнопку должны делать те, кто занимается красными кнопками? Или это уже достаточно светлая, чтобы отнести к специалистам по розовым?».
Куда идти с конкретной задачей? Кто ответственный? Да, есть база знаний, но переварить ее, и тем более запомнить все - задача очень непростая. А для новичка, который только что перешел к нам из небольшого стартапа - так вообще невыполнимая.
Именно такой новичок как раз недавно появился в нашем департе. Толковый, бодрый, с горящими глазами и желанием “починить” все процессы. Но услышав как скрипят шестеренки в его голове, пытающейся переварить весь этот объем данных, я подумал, что вместо того чтобы отправлять его стучаться во все чаты и получать оттуда редиректы, надо попробовать пойти другим путем.
И зоны ответственности этих департаментов иногда совершенно неочевидны.
Настолько, что в какой-то момент даже старожилы начинают сомневаться:
«А вот эту кнопку должны делать те, кто занимается красными кнопками? Или это уже достаточно светлая, чтобы отнести к специалистам по розовым?».
Куда идти с конкретной задачей? Кто ответственный? Да, есть база знаний, но переварить ее, и тем более запомнить все - задача очень непростая. А для новичка, который только что перешел к нам из небольшого стартапа - так вообще невыполнимая.
Именно такой новичок как раз недавно появился в нашем департе. Толковый, бодрый, с горящими глазами и желанием “починить” все процессы. Но услышав как скрипят шестеренки в его голове, пытающейся переварить весь этот объем данных, я подумал, что вместо того чтобы отправлять его стучаться во все чаты и получать оттуда редиректы, надо попробовать пойти другим путем.
Идея: «Симулятор ПМа»
Так родилась идея игры «Симулятор ПМа» - простого тренажёра, где игроку нужно на время распределять задачи по департаментам компании, ориентируясь на краткое описание задачи.
Механика простая и знакомая каждому ПМу:
Звучит просто? Конечно!
Особенно если желание собрать такую игру совпало с желанием попробовать наконец-то этот ваш вайбкодинг.
Механика простая и знакомая каждому ПМу:
- есть таска от бизнеса
- есть несколько департаментов
- задачу нужно отнести в правильный департ
- время на перенос зависит от приоритета таски
Звучит просто? Конечно!
Особенно если желание собрать такую игру совпало с желанием попробовать наконец-то этот ваш вайбкодинг.
Итерация №1. «Cursor, сделай игру»
Как и положено человеку, вдохновлённому AI-революцией начинающему вайбкодеру, я начал с максимально наивного промпта:
Ну и список департаментов еще дописал.
10 минут размышлений Курсора, и вот, он сообщает, что игра готова и можно запускать. Что? Серьезно? Это все? Вот так теперь выглядит разработка продукта? В общем, полнейший шок от чуда технологий.
Игра запускалась, и даже карточки можно было таскать.
10 минут размышлений Курсора, и вот, он сообщает, что игра готова и можно запускать. Что? Серьезно? Это все? Вот так теперь выглядит разработка продукта? В общем, полнейший шок от чуда технологий.
Игра запускалась, и даже карточки можно было таскать.
Конечно же были и “но”:
Формально - всё логично. Я не попросил - мне не сделали.
- интерфейс в стиле «детская браузерная игра 2000 года»
- задачи, вообще не имеющие ничего общего с реальной работой компании
- названия департов, захардкоженные наглухо в код (причем я так даже и не смог найти, откуда они тянутся)
- лидерборд… отсутствует (да и имя игрока тоже)
- ах да, баллы тоже не начисляются
- соревноваться с коллегами нельзя - всё хранится локально
- карточку можно перетаскивать только за текст (попал - молодец, не попал - страдай).
Формально - всё логично. Я не попросил - мне не сделали.
В попытках все исправить, я вводил все новые и новые запросы ИИшке, а Cursor старательно размышлял и что-то правил. При этом любая правка превращалась в:
- новый деплой
- пачку неожиданных багов
- новые внезапные элементы верстки, которые появлялись не потому что я просил, а просто потому что Cursor захотел их добавить
После нескольких итераций я получил идеальный результат - полностью неработоспособную игру. Видимо число фич, которые теперь были вкостылены в код, который их изначально не предполагал, превысило критическое значение, и архитектура окончательно рассыпалась.
Итерация №2. «Ладно, давай как взрослые»
Набив все возможные шишки, я сделал то, что разрабы обычно просят сделать сразу - написал нормальное ТЗ.
Для начала я попросил уже ChatGPT (ну не самому же расписывать такое в 2026-м), чтобы он написал подробное ТЗ для Курсора, которое бы учло что:
Думающий ChatGPT венулся с большим документом, где расписал все до мелочей. Я внес минимальные правки и скормил это снова в Курсор.
Мэджик! С первого промпта в Cursor я получил результат, который:
Для начала я попросил уже ChatGPT (ну не самому же расписывать такое в 2026-м), чтобы он написал подробное ТЗ для Курсора, которое бы учло что:
- департаменты и названия задач тянем из отдельных таблиц Supabase (чтобы не деплоить по всякой фигне)
- туда же складываем результаты игроков, формируя лидерборд
- игровые настройки (уровни, баллы, тайминги) берем из отдельного конфига
- иконки департаментов и аватарки авторов задач теперь не рандом от Курсора, а ассеты из облачного S3-хранилища Supabase
- визуал отрисовываем в стиле корпоративного таск-трекера
- карточку можно тянуть за любую её часть
- обязательный запрос имени игрока + возможность его редактирования
- и еще штук 25 прочих мелочей, которые вылезли в первой итерации
Думающий ChatGPT венулся с большим документом, где расписал все до мелочей. Я внес минимальные правки и скормил это снова в Курсор.
Мэджик! С первого промпта в Cursor я получил результат, который:
- выглядел как корпоративный инструмент
- работал стабильно
- позволял настраивать параметры игры без повторного деплоя
- не разваливался при первой же правке
- и вообще… соответствовал ТЗ и выполнял свою задачу (нифигасе)
Заливаю это все на Cloudflare Pages и вуаля, тренажер по департам готов.
Рассуждения про ИИ и суровую реальность
К чему я вообще написал эту статью? Совсем не для того, чтобы рассказать как я попробовал вайбкодинг, а чтобы поделиться парой мыслей, возникших в процессе. Вот первая из них:
ИИ не сможет полностью заменить разработчиков до того момента, пока заказчики не научатся писать нормальные ТЗ.
И проблема совсем не в том, что ИИ тупой.
Проблема в том, что:
ИИ просто очень честно отражает качество входных данных.
Казалось бы, следующий очевидный вывод: “Пишите хреновое ТЗ, сохраните работу людям”. Но нет, есть другой.
Проблема в том, что:
- «сделай игру» - это не требование,
- «примерно как Jira, только проще» - это не спецификация,
- «давай сначала сделаем, а потом разберёмся» - это путь в пропасть с костылями.
ИИ просто очень честно отражает качество входных данных.
Казалось бы, следующий очевидный вывод: “Пишите хреновое ТЗ, сохраните работу людям”. Но нет, есть другой.
Главный вывод
В процессе создания тренажёра для ПМа я понял, что вайбкодинг сам по себе - это и есть лучший тренажёр для ПМа.
Он идеально имитирует работу команды разработки и дает возможность быстро и дешево понять как качество постановки задачи влияет на результат:
- плохое ТЗ - кривой результат с костылями
- мутные требования - баги, «странное поведение» и внезапные элементы в верстке
- чётко прописанное ТЗ - внятный результат уже в первой итерации
Так что если вы хотите прокачать себя как проджекта - попробуйте не только читать книжки и проводить митинги, а один раз собрать что-нибудь работающее с помощью ИИ.