Skip to content

Часть A. Контекст и постановка

One-pager: A/B‑платформа Лотти — как это встраивается в приложение

Section titled “One-pager: A/B‑платформа Лотти — как это встраивается в приложение”

Представьте, что команда делает экран с кнопкой «Купить». Возникает типичный спор: какой цвет даст больше покупок — синий или красный? Лотти не хочет принимать решение «на вкус». Ему нужен ответ по бизнесу: что приносит больше пользы и при этом не ухудшает продукт.

Эта платформа нужна, чтобы пройти путь от идеи до решения спокойно и предсказуемо: показать вариант, собрать факты, принять решение и сохранить объяснение, почему так.

На третьем году существования олимпиады по промышленной разработке Лотти понял: хороший IT‑продукт нельзя «сделать один раз и забыть». Его нужно постоянно улучшать, но улучшать не на ощущениях, а опираясь на данные.

Однажды Лотти поспорил с продакт‑менеджером и предложил добавить в сервис подбора книг новую функцию. Продакт сомневался, но Лотти настоял: «Не волнуйся, я уверен, что пользователям понравится».

Команда потратила две недели на разработку и тестирование. После запуска стало ясно, что идея «не зашла»: пользователи начали оставлять негативные отзывы. Цена ошибки оказалась высокой, а уверенность в идее не помогла.

После этого Лотти больше не спорит на “кажется/не кажется”. В команде закрепилось простое правило:

Любая новая фича сначала проверяется экспериментом на части аудитории. Затем команда принимает решение: раскатываем победителя или откатываемся.

Чтобы эксперименты можно было запускать часто и безопасно, Лотти хочет внутреннюю A/B‑платформу. Вам нужно реализовать backend, который решает ключевые продуктовые проблемы:

  • хранит feature flags: ключ, тип значения, значение по умолчанию;
  • запускает experiments на этих флагах и раздаёт варианты по долям аудитории;
  • отвечает продукту «что показать конкретному пользователю» в момент запроса;
  • принимает события (показы/конверсии/ошибки/латентность) и строит отчёты;
  • автоматически реагирует на деградации через guardrails;
  • прозрачно разрешает конфликты, когда несколько команд тестируют изменения в одной зоне продукта.