Как оценить эффект фичи на собеседовании
Формулировка кейса
Команда выкатила новую фичу (например, персонализированные рекомендации). Как вы оцените её эффект на бизнес-метрики?
Один из любимых кейсов в продуктовых командах. Задают на middle-senior позиции: Авито, Яндекс, Ozon, Wildberries, ВК.
Шаг 1. Уточнения
- Фича уже выкачена или только планируется?
- Выкачена через A/B или на 100% сразу?
- Какую метрику хотим оценить? Одну или несколько.
- Какой горизонт? 2 недели / 3 месяца / год?
- Есть ли pre-period данные?
От этих вопросов зависит, какой метод использовать.
Шаг 2. Методы оценки
1. A/B-тест (золотой стандарт)
Если фича выкатывается через сплитер — строгий способ.
Плюсы: каузальный эффект, статистическая значимость, защита от external factors.
Минусы: нужно планировать заранее, долго (2-4 недели), не все фичи можно A/B-тестить.
Когда использовать: новая кнопка, изменение рекомендаций, тест нового UX.
2. Pre/Post анализ
Сравниваем метрику до релиза и после.
SELECT
CASE WHEN DATE < '2026-04-01' THEN 'pre' ELSE 'post' END AS period,
AVG(conversion) AS avg_conv
FROM events GROUP BY 1;Плюсы: легко, быстро, работает для 100% rollout.
Минусы: смешивается с другими изменениями (маркетинг, сезонность, конкуренты). Не каузально.
Когда использовать: для быстрого приближённого ответа + иллюстрации.
3. Difference-in-Differences (DiD)
Если фичу выкатили для одной группы (например, iOS), а на другой платформе нет — сравниваем изменения во времени:
DiD = (iOS_post - iOS_pre) - (Android_post - Android_pre)Плюсы: контролирует общие тренды (сезонность, рынок).
Минусы: требует parallel trends до релиза.
Когда использовать: частичный rollout по сегментам (gradual), когда A/B невозможен.
4. Синтетический контроль (synthetic control)
Строим «искусственный» контроль как взвешенную комбинацию похожих групп/единиц. Используется в academic research и economics.
Когда использовать: большие unit (регион, страна), когда A/B и DiD не подходят.
5. Causal Impact (Google)
Bayesian time-series метод: моделирует, как бы метрика развивалась без интервенции.
# Python package CausalImpact
from causalimpact import CausalImpact
pre_period = ['2026-01-01', '2026-03-31']
post_period = ['2026-04-01', '2026-04-30']
ci = CausalImpact(data, pre_period, post_period)
print(ci.summary())Плюсы: автоматический, даёт confidence interval.
Минусы: нужен набор covariate series (не-затронутых метрик), результат — эвристика.
Шаг 3. Выбор метода
| Ситуация | Метод |
|---|---|
| Фича на A/B-тесте | A/B-тест |
| Выкатили на 100% сразу, есть pre-data | Pre/Post + DiD |
| Выкатили на сегмент (iOS/регион) | Difference-in-Differences |
| Регион-уровень, большие unit | Synthetic Control |
| Бизнес-решение, быстрый ответ | CausalImpact |
Больше таких примеров с разборами — в Telegram-тренажёре. Короткие сессии, прогресс по темам, объяснения после каждого ответа.
Шаг 4. Практический пример
Команда выкатила персонализированные рекомендации на всех iOS-пользователей. Android не получил. Как оценить эффект на GMV?
Решение DiD:
WITH stats AS (
SELECT
platform,
CASE WHEN DATE < '2026-04-01' THEN 'pre' ELSE 'post' END AS period,
SUM(amount) AS gmv
FROM orders
GROUP BY 1, 2
)
SELECT
(SELECT gmv FROM stats WHERE platform='iOS' AND period='post') -
(SELECT gmv FROM stats WHERE platform='iOS' AND period='pre') AS ios_delta,
(SELECT gmv FROM stats WHERE platform='Android' AND period='post') -
(SELECT gmv FROM stats WHERE platform='Android' AND period='pre') AS android_delta;Разница между delta = каузальный эффект (при условии parallel trends).
Проверка parallel trends: в pre-period iOS и Android двигались похоже? Если да — DiD валиден.
Шаг 5. Guardrail-метрики
Не только main-метрика:
- Retention D7.
- Crash rate / app errors.
- Скорость загрузки.
- Revenue (если main ≠ revenue).
Если main выросла, но guardrail просел — результат неоднозначный.
Шаг 6. Segmentation
Эффект может быть гетерогенным:
- Work для новых, не работает для старых.
- Работает на iOS, хуже на Android.
- Работает в Москве, хуже в регионах.
Смотрим эффект по сегментам.
Шаг 7. Что говорим PM
«Фичу оценил через DiD: iOS получил фичу, Android — контроль. В pre-period тренды parallel (OK). Post-period: iOS GMV +8%, Android +1% — каузальный эффект ~7%. Confidence interval [+4%, +10%]. Guardrails ок. Рекомендую раскатать на Android».
Типичные ошибки
- Использовать только pre/post и называть это оценкой фичи. Это не каузальный метод.
- Игнорировать external factors (сезонность, другие изменения).
- Не проверять parallel trends для DiD.
- Один метод — один ответ. Лучше показать 2-3 метода с разных сторон.
Если готовишься к собесу — бот @kariernik_bot закрывает 80% технических вопросов. SQL, Python, A/B, продуктовые метрики — всё в одном месте.
Шаблон ответа
- Уточнения (rollout strategy, метрики, горизонт).
- Выбор метода (A/B, pre/post, DiD, CausalImpact).
- Расчёт эффекта.
- Guardrails + segmentation.
- Интерпретация + доверительные интервалы.
- Рекомендация (катить / не катить / продолжить наблюдение).
Как тренироваться
Impact assessment — senior-тема. Требует понимания всех методов. Тренажёр Карьерник содержит кейсы на оценку фич, A/B и квази-эксперименты.
Совет: на собесе упомяните все 4-5 методов, и уверенно выберите один под текущую ситуацию. Это показывает и знания, и критическое мышление.
Читайте также
FAQ
A/B-тест или пре/пост — что выбрать?
A/B всегда строже. Pre/post — быстро, но смешивается с внешними факторами. Если можно A/B — A/B.
Difference-in-Differences — когда не работает?
Когда нарушены parallel trends: до релиза группы двигались по-разному. Или когда обе группы одновременно затронуты внешним event. DiD тогда даёт смещённую оценку.
Synthetic Control — сложно?
Да, требует навыков в причинно-следственном анализе и доступ к Python/R пакетам (CausalImpact, SCM). Но для больших решений (раскатка на страну) это главный метод.
Сколько ждать, чтобы оценить эффект?
Зависит от фичи. Для UX-изменений — 2 недели (отработает novelty). Для retention — 30+ дней. Для LTV — 90+ дней. Всегда заранее определяйте минимальный период.