Блог

Как я «Симулятор ПМ-а» делал

В бигтехе, где я работаю, департаментов много. Прям, я бы сказал, до#уя.
И зоны ответственности этих департаментов иногда совершенно неочевидны.
Настолько, что в какой-то момент даже старожилы начинают сомневаться:

«А вот эту кнопку должны делать те, кто занимается красными кнопками? Или это уже достаточно светлая, чтобы отнести к специалистам по розовым?».

Куда идти с конкретной задачей? Кто ответственный? Да, есть база знаний, но переварить ее, и тем более запомнить все - задача очень непростая. А для новичка, который только что перешел к нам из небольшого стартапа - так вообще невыполнимая.

Именно такой новичок как раз недавно появился в нашем департе. Толковый, бодрый, с горящими глазами и желанием “починить” все процессы. Но услышав как скрипят шестеренки в его голове, пытающейся переварить весь этот объем данных, я подумал, что вместо того чтобы отправлять его стучаться во все чаты и получать оттуда редиректы, надо попробовать пойти другим путем.

Идея: «Симулятор ПМа»

Так родилась идея игры «Симулятор ПМа» - простого тренажёра, где игроку нужно на время распределять задачи по департаментам компании, ориентируясь на краткое описание задачи.

Механика простая и знакомая каждому ПМу:
  • есть таска от бизнеса
  • есть несколько департаментов
  • задачу нужно отнести в правильный департ
  • время на перенос зависит от приоритета таски

Звучит просто? Конечно!

Особенно если желание собрать такую игру совпало с желанием попробовать наконец-то этот ваш вайбкодинг.

Итерация №1. «Cursor, сделай игру»

Как и положено человеку, вдохновлённому AI-революцией начинающему вайбкодеру, я начал с максимально наивного промпта:
Ну и список департаментов еще дописал.

10 минут размышлений Курсора, и вот, он сообщает, что игра готова и можно запускать. Что? Серьезно? Это все? Вот так теперь выглядит разработка продукта? В общем, полнейший шок от чуда технологий.

Игра запускалась, и даже карточки можно было таскать.
Всякую NDA-щину приходится блюрить
Конечно же были и “но”:

  • интерфейс в стиле «детская браузерная игра 2000 года»
  • задачи, вообще не имеющие ничего общего с реальной работой компании
  • названия департов, захардкоженные наглухо в код (причем я так даже и не смог найти, откуда они тянутся)
  • лидерборд… отсутствует (да и имя игрока тоже)
  • ах да, баллы тоже не начисляются
  • соревноваться с коллегами нельзя - всё хранится локально
  • карточку можно перетаскивать только за текст (попал - молодец, не попал - страдай).

Формально - всё логично. Я не попросил - мне не сделали.
В попытках все исправить, я вводил все новые и новые запросы ИИшке, а Cursor старательно размышлял и что-то правил. При этом любая правка превращалась в:
  • новый деплой
  • пачку неожиданных багов
  • новые внезапные элементы верстки, которые появлялись не потому что я просил, а просто потому что Cursor захотел их добавить
После нескольких итераций я получил идеальный результат - полностью неработоспособную игру. Видимо число фич, которые теперь были вкостылены в код, который их изначально не предполагал, превысило критическое значение, и архитектура окончательно рассыпалась.

Итерация №2. «Ладно, давай как взрослые»

Набив все возможные шишки, я сделал то, что разрабы обычно просят сделать сразу - написал нормальное ТЗ.

Для начала я попросил уже ChatGPT (ну не самому же расписывать такое в 2026-м), чтобы он написал подробное ТЗ для Курсора, которое бы учло что:
  • департаменты и названия задач тянем из отдельных таблиц Supabase (чтобы не деплоить по всякой фигне)
  • туда же складываем результаты игроков, формируя лидерборд
  • игровые настройки (уровни, баллы, тайминги) берем из отдельного конфига
  • иконки департаментов и аватарки авторов задач теперь не рандом от Курсора, а ассеты из облачного S3-хранилища Supabase
  • визуал отрисовываем в стиле корпоративного таск-трекера
  • карточку можно тянуть за любую её часть
  • обязательный запрос имени игрока + возможность его редактирования
  • и еще штук 25 прочих мелочей, которые вылезли в первой итерации

Думающий ChatGPT венулся с большим документом, где расписал все до мелочей. Я внес минимальные правки и скормил это снова в Курсор.

Мэджик! С первого промпта в Cursor я получил результат, который:

  • выглядел как корпоративный инструмент
  • работал стабильно
  • позволял настраивать параметры игры без повторного деплоя
  • не разваливался при первой же правке
  • и вообще… соответствовал ТЗ и выполнял свою задачу (нифигасе)
Заливаю это все на Cloudflare Pages и вуаля, тренажер по департам готов.

Рассуждения про ИИ и суровую реальность

К чему я вообще написал эту статью? Совсем не для того, чтобы рассказать как я попробовал вайбкодинг, а чтобы поделиться парой мыслей, возникших в процессе. Вот первая из них:
ИИ не сможет полностью заменить разработчиков до того момента, пока заказчики не научатся писать нормальные ТЗ.
И проблема совсем не в том, что ИИ тупой.

Проблема в том, что:
  • «сделай игру» - это не требование,
  • «примерно как Jira, только проще» - это не спецификация,
  • «давай сначала сделаем, а потом разберёмся» - это путь в пропасть с костылями.

ИИ просто очень честно отражает качество входных данных.

Казалось бы, следующий очевидный вывод: Пишите хреновое ТЗ, сохраните работу людям”. Но нет, есть другой.

Главный вывод

В процессе создания тренажёра для ПМа я понял, что вайбкодинг сам по себе - это и есть лучший тренажёр для ПМа.
Он идеально имитирует работу команды разработки и дает возможность быстро и дешево понять как качество постановки задачи влияет на результат:
  • плохое ТЗ - кривой результат с костылями
  • мутные требования - баги, «странное поведение» и внезапные элементы в верстке
  • чётко прописанное ТЗ - внятный результат уже в первой итерации
Так что если вы хотите прокачать себя как проджекта - попробуйте не только читать книжки и проводить митинги, а один раз собрать что-нибудь работающее с помощью ИИ.

Гайды