На демо руководитель проводит тестовый заказ: оплата проходит, отчёт открывается, команда кивает — пилот готов. Через неделю менеджер просит добавить корпоративного клиента, ограничить ему права и подтянуть данные из системы учёта 1С. Первая реальная правка затрагивает половину системы.
Проблема обычно начинается раньше большого трафика: второй сценарий, новая роль или интеграция затрагивают решения, принятые для демонстрации. Поэтому до запуска мы фиксируем то, что дорого переделывать, а функции и мощности наращиваем после подтверждения спроса.
Привет, я — Антон Фокин, CEO Qtim. В Qtim мы запускаем цифровые продукты и подключаемся к системам, которые уже пережили первую версию. Пилот с планом на рост проверяет узкую гипотезу и сохраняет пространство для следующей версии. Ниже разберу, какие решения мы принимаем до первого пользователя, а какие откладываем до подтверждённого спроса.
У пилота одна работа: дать бизнесу основание продолжить проект, изменить гипотезу или остановиться. Для ИИ-чатбота таким тестом может быть один процесс — ответы на типовые вопросы сотрудников по ограниченной базе знаний. Для маркетплейса — путь от поиска товара до оплаты. Для образовательного сервиса — покупка курса, доступ к уроку и фиксация прогресса.
До разработки мы фиксируем три вещи: какое действие проверяем, по какой метрике судим о результате и что сделаем при каждом исходе. После пилота команда расширяет сценарий, меняет его или закрывает идею. Формулировка «покажем продукт пользователям и посмотрим» оставляет слишком много свободы для творческой интерпретации. Особенно когда бюджет уже потрачен и всем очень хочется увидеть успех.
Граница первой версии проходит по пользовательской ценности. Для проверки ИИ-чатбота мы подключаем ограниченную базу знаний, настраиваем один-два сценария и прогоняем тестовые диалоги. Систему управления клиентами (CRM), сложную модель ролей, несколько каналов и полный мониторинг качества добавляем после ответа на главный вопрос: помогает ли бот выбранному процессу.
Функций нужно мало, а технических развилок уже несколько. На демо их почти не видно. Зато от них зависит стоимость каждого следующего изменения.
Если пилот держится на памяти одного разработчика, план масштабирования подозрительно совпадает с его календарём. Схема данных, короткая документация, тестовая среда и понятная выкладка выглядят скучно. Именно эти вещи позволяют другой команде продолжить продукт без археологической экспедиции по коду.
Подготовка к росту легко превращается в попытку заранее построить финальную систему. Появляются отдельные сервисы, инфраструктура на Kubernetes для управления контейнерами, несколько мобильных приложений, универсальная админка и расчёт нагрузки на аудиторию, которой пока нет. Пилот дорожает, срок ответа на гипотезу отодвигается.
Первой версии чаще хватает модульной структуры, согласованной схемы данных, API для основного сценария, базовых прав и мониторинга: журналов событий, метрик и оповещений. Мы разделяем такой контур по мере появления реальных причин: части продукта нужно выпускать независимо, нагрузка на один участок мешает остальным или командам требуются отдельные зоны ответственности.
В кейсе Онлайн-школы №1 продуктовая логика — роли, авторизация, расписание и записи занятий — осталась на серверной платформе NestJS. Видеосвязь потребовала другого контура: WebRTC передаёт медиапоток, а SFU маршрутизирует его между участниками. Медиаконтур вынесли на язык Go, когда граница задачи стала понятна. У решения есть цена: отдельная среда исполнения, сборка, выкладка, мониторинг и распределённая отладка. Её платят ради изоляции конкретного узкого места.
С мобильной частью действует тот же принцип. Если основной путь целиком проходит в браузере, первую версию можно запустить по ссылке. Серверная логика и данные остаются за API, поэтому приложение позже подключается к готовому ядру. Так мы раньше проверяем спрос, а бюджет первой версии не уходит на публикацию в магазинах приложений.
Пустая инфраструктура спокойно выдерживает любой наплыв. Даже обидно, если пользователи так и не пришли.
Сигналом к масштабированию служит наблюдаемое изменение в работе продукта. Круглая цифра в презентации сама по себе ничего не запускает. Обычно всё начинается с таблицы: сотрудник раз в неделю переносит данные между CRM и админкой. Интеграция уже стала частью процесса; её скорость пока зависит от календаря сотрудника.
Проблему с правами выдают обходные решения. Менеджеру временно дают общий аккаунт, куратор видит лишние группы, администратор просит разработчика поменять статус напрямую в базе. Такие ситуации показывают, что текущей модели прав мало.
Мы пересматриваем архитектуру и тогда, когда тяжёлая операция задерживает основной путь. В кейсе «Стадикэтс» ученики могут массово сдавать задания перед дедлайном, а обработка файлов требует времени. Мы вынесли такие задачи в фоновую очередь на BullMQ и Redis. Кабинет принимает работу, отдельный обработчик (воркер) разбирает файл и обновляет результат. Пользователь продолжает заниматься, пока очередь сглаживает пик.
Видеопоток, конвертация файла и обычный запрос к кабинету потребляют разные ресурсы. Мы выделяем отдельный контур, когда можем точно описать место задержки, дефицит ресурса и способ проверить результат после разделения.
В проекте HOTZ за три месяца запустили платформу электронной коммерции для четырёх продуктовых линеек с разными аудиториями. Если бы каждое направление получило отдельный каталог и собственные правила, команда быстро собрала бы четыре похожие системы и четыре набора будущих проблем.
В основу первой версии положили сквозной каталог и связь с 1С. Интерфейс сразу работал с реальной товарной матрицей: ценами, остатками, фасовками и номенклатурой. Сверху появились разные визуальные коды для продуктовых направлений, а коммерческое ядро осталось общим — каталог, корзина, заказ, доставка и обмен данными.
Так четыре линейки HOTZ вошли в первую версию через одно коммерческое ядро. Архитектура сохранила основу для развития корпоративных сценариев продаж. Новые способы покупки можно добавлять поверх единой модели товаров и заказов.
У каждого типа продукта своё ядро. Для ИИ-бота это качество ответа в одном процессе и понятная работа с источниками. Для системы управления обучением (LMS) — учебный сценарий, прогресс и права. Для сервиса подписки — тариф, статус оплаты и доступ. Мы заранее определяем эту часть: она должна пережить пилот и стать основой следующей версии.
После пилота мы сопоставляем обещанную метрику с поведением пользователей: сколько дошло до ключевого действия, где ушли, какие обходные операции появились у сотрудников и какие ошибки повторялись. Из этих наблюдений собираем план следующей версии.
Мы раскладываем план на четыре слоя. Продуктовый — какой сценарий подтвердился и что мешает повторному использованию. Данные — хватает ли текущих сущностей, статусов и истории. Технический — какой участок уже создаёт задержки или ошибки. Операционный — может ли команда выпускать изменения, видеть сбои и передавать ответственность.
Затем работаем по узким местам. Автоматизируем повторяющуюся передачу данных, уточняем права, отправляем тяжёлую обработку в фон. Отдельный сервис появляется, когда профиль нагрузки действительно отличается от остальной системы. У каждого раннего решения остаётся проверяемая причина.
Главный критерий можно записать в одну строку: в пилот закладывают дорогие в переделке решения; мощности и функции добавляют после подтверждения спроса.
С таким планом демо проверяет гипотезу, а первая реальная правка затрагивает только нужный модуль.
Если вы готовите пилот цифрового продукта и хотите заранее отделить основу от будущих задач, можно обсудить состав первой версии с нами. Разберём ключевой сценарий, ограничения и границы запуска, чтобы проверить гипотезу и оставить понятный путь к дальнейшему развитию.