A/B тест уничтожил мой любимый дизайн. И это был лучший урок
Основной чат
Чат для вайбкодеров: новости, гайды, поиск исполнителей, маркетплейс и разбор реальных кейсов.
Я три недели рисовал этот экран. Переделывал композицию, подбирал интонацию иллюстраций, спорил с продактом про длину заголовка. На ревью дизайн хвалили, в Figma он смотрелся как обложка кейса. Я искренне считал, что это лучшее, что я сделал за квартал.
А потом мы запустили A/B тест. И мой красивый, выстраданный, «правильный» вариант проиграл скучному контролю с разницей, которую невозможно списать на шум. Конверсия просела, время до целевого действия выросло, и даже на качественных интервью пользователи как будто не заметили, что мы вообще что-то меняли.
Это было больно. И это был лучший урок за всю мою карьеру.
Почему именно этот провал важнее десяти успешных релизов
Когда тест выигрывает, ты редко учишься чему-то новому. Ты подтверждаешь свою гипотезу, ставишь галочку, идёшь дальше. Ощущение приятное, но мышца не растёт.
Когда тест проигрывает — особенно проигрывает дизайн, в который ты вложился эмоционально — ломается твоя внутренняя модель того, как работает продукт. А именно эта модель определяет качество всех будущих решений. Чем чаще она сталкивается с реальностью, тем точнее становится.
Большинство дизайнеров проживают такие моменты как травму. Защищаются, ищут ошибки в сетапе теста, обвиняют разработчиков в кривой реализации, продакта — в неправильной метрике. Иногда они правы. Но чаще — нет. И тогда единственный способ извлечь из этого пользу: пройти через стадию «дизайн не равно я» и начать разбирать, что именно произошло.
Первая ошибка: я тестировал то, что нравилось мне, а не то, что мешало пользователю
Если разобрать мой проигравший вариант честно, окажется, что я решал не пользовательскую задачу. Я решал визуальную. Мне не нравилась плотность старого экрана, не нравились отступы, не нравился контраст у CTA. Я переделал всё это — и упаковал в гипотезу про «улучшение восприятия».
Это типовая ловушка. Она звучит так: «новый дизайн понятнее / чище / современнее, поэтому конверсия вырастет». Между «чище» и «конверсия вырастет» — пропасть, через которую дизайнер мысленно перепрыгивает, не замечая.
Антипаттерны гипотез, которые почти всегда проигрывают или дают ноль
- «Сделаем современнее» — без конкретной поведенческой проблемы, которую это решает
- «Уберём визуальный шум» — если шум мешал тебе на ревью, а не пользователю в задаче
- «Добавим воздуха» — воздух не конвертирует, конвертирует ясность следующего шага
- «Поменяем иллюстрации на более брендовые» — это работа на бренд-метрики, а не на воронку
- «Перепишем заголовок более вдохновляюще» — вдохновение редко двигает клик, ясность двигает
Как переформулировать гипотезу, чтобы она была честной
Хорошая гипотеза для A/B имеет три части: наблюдение, механизм, ожидаемый эффект на метрику.
- Наблюдение: «на шаге выбора тарифа 40% уходят, в сессионках видно, что люди не понимают разницу между планами»
- Механизм: «если показать сравнительную таблицу с ключевыми отличиями сверху, пользователь быстрее найдёт подходящий план»
- Ожидаемый эффект: «вырастет переход с шага выбора на шаг оплаты»
Если хотя бы одной части нет — ты тестируешь вкус, а не продукт.
Вторая ошибка: красивый вариант ломал привычку
Старый экран был некрасивым. Но он был привычным. Пользователи, которые приходили повторно, проходили его на автопилоте: глаз знал, где кнопка, рука знала траекторию.
Новый дизайн перерисовал иерархию. CTA переехал, заголовок стал длиннее, добавился новый блок «социального доказательства», которым я очень гордился. Для нового пользователя — возможно, лучше. Для возвращающегося — внезапное препятствие там, где раньше был автоматизм.
Чеклист «не сломал ли я привычку»
- Положение основного CTA сохранилось или сдвинулось менее чем на высоту экрана
- Порядок шагов в флоу не поменялся
- Якорные элементы (логотип, навигация, primary action) остались на привычных местах
- Изменения в копирайте не меняют смысл действия, только формулировку
- Если ломаешь привычку осознанно — есть гипотеза, почему выигрыш для новых перекроет проседание у возвращающихся
Вопросы, которые стоит задать себе до запуска
- Какой сегмент пользователей я оптимизирую: новых, возвращающихся, всех?
- Как этот сегмент сейчас проходит экран — на автопилоте или вдумчиво?
- Что из старого варианта я ломаю не специально, а как побочный эффект редизайна?
- Готов ли я разделить тест по сегментам, если общий результат будет нулевым?
Короткий итог этой части: дизайн проиграл не потому что был плохим, а потому что я перепутал «лучше выглядит» с «лучше работает» и не учёл, что у пользователей уже была рабочая модель экрана. Дальше — про то, как читать результаты теста, не врать себе и вытащить из проигрыша конкретные решения.
Как читать результат, не подгоняя его под себя
Когда тест проигран, мозг автоматически запускает режим адвоката: ищет, к чему придраться в сетапе, чтобы спасти решение. Это не всегда нечестно — иногда сетап правда сломан. Но если ты начинаешь разбор с вопроса «как доказать, что мой вариант на самом деле выиграл», ты уже не аналитик, ты защитник. А защитник в проигранном деле — плохой источник решений.
Полезнее идти в обратную сторону: сначала допустить, что результат честный, и только потом проверять, нет ли реальных причин ему не верить.
Что проверить, прежде чем спорить с цифрами
- Достаточная ли мощность теста — не «по ощущениям достаточно», а по расчёту до запуска
- Распределение трафика между группами ровное, без перекоса по платформам, источникам, гео
- Нет ли пересечения с другим тестом, который шёл параллельно на тех же экранах
- Сегменты новых и возвращающихся видны отдельно, а не схлопнуты в одну метрику
- Метрика теста — это та, которую ты заявил до старта, а не та, которая внезапно «лучше выглядит»
Если все пункты в порядке — тест честный. Спорить дальше можно только с собственной гипотезой, не с цифрами.
Анти-паттерны интерпретации, в которые легко скатиться
- «Давайте подождём ещё неделю, может, выровняется» — после того, как стат-значимость уже достигнута в минус
- «А давайте посмотрим только на мобайл, там же мой вариант лучше» — пост-хок нарезка сегментов до победы
- «Метрика верхнего уровня просела, но вовлечённость выросла» — подмена цели теста на удобную
- «Это аномалия из-за выходных / распродажи / погоды» — без проверки, что у контрольной группы то же самое
- «Команда не так реализовала» — без диффа макета и продакшена
Как разобрать проигрыш на полезные куски
Проигранный тест — это не ноль. Это данные. Задача — вытащить из него гипотезы, которые иначе пришлось бы покупать через ресёрч.
Разбор по слоям
Полезно разложить проигрыш на три слоя и посмотреть, какой именно сработал против тебя.
| Слой | Что проверять | Сигнал, что проблема здесь |
|---|---|---|
| Восприятие | первые секунды, считываемость экрана | drop на самом первом шаге нового флоу |
| Поведение | клики, скроллы, путь к CTA | люди доходят, но не нажимают |
| Контекст | сегмент, устройство, повторный визит | проседание только у возвращающихся |
Дальше под каждый слой можно достать сессионки, хитмапы или просто пройти флоу руками с тестового аккаунта новичка и аккаунта со стажем — и разница станет видна.
Вопросы для ревью проигравшего макета
- Где именно в новом варианте пользователь тратит больше времени, чем в старом?
- Какой элемент я добавил «для красоты», и можно ли его убрать без потери смысла?
- Что из старого варианта работало как якорь, и я его случайно сдвинул?
- Если бы я делал только одно изменение из пяти — какое было бы реально про задачу пользователя?
Последний вопрос обычно и есть настоящий тест, который стоило запускать с самого начала.
Как переносить это в макет на следующий день
Главный практический вывод — не «тестируй меньше», а «изолируй изменения». Большой редизайн на A/B — это всегда смешанный сигнал: что-то внутри сработало в плюс, что-то в минус, в сумме ноль или минус, и ты не знаешь, что именно.
Рабочий процесс, который снижает шанс такого провала
- До макета — формулируешь гипотезу в формате наблюдение / механизм / эффект. Если не получается — это вкус, не задача.
- В макете — держишь две версии: «минимальное изменение под гипотезу» и «как я бы сделал, если бы дали волю». Тестируешь первую.
- На ревью — отдельно проговариваешь, что меняется для нового пользователя и что для возвращающегося.
- Перед запуском — фиксируешь стоп-критерии: на какой метрике и через сколько ты признаёшь результат, не торгуясь.
- После теста — пишешь короткий разбор даже при выигрыше, чтобы не закрепить случайную удачу как «свой стиль».
Чеклист дизайнера перед отправкой макета в тест
- Я могу одной фразой сказать, какое поведение пользователя должно измениться
- В макете нет изменений, которые не работают на эту гипотезу
- Якорные элементы для возвращающихся остались на месте — или я осознанно их двигаю
- Метрика теста выбрана до старта и не будет меняться по ходу
- Я заранее знаю, что сделаю, если тест проиграет: откатить, доработать, разрезать по сегментам
Короткий итог: проигравший тест становится уроком только тогда, когда ты разрешаешь себе поверить цифрам раньше, чем начнёшь их оспаривать. Дальше — про то, как встроить эту привычку в команду, чтобы не каждый дизайнер проходил эту боль в одиночку.
Когда в команде появляется AI и MCP — что меняется в самом тесте
Раньше дизайнер делал один макет за неделю и защищал его как ребёнка. Сейчас за вечер можно собрать пять вариантов через Figma + MCP-агента и AI-генерацию контента — и соблазн «давайте протестируем все» становится опасным. Чем дешевле произвести вариант, тем дороже становится дисциплина гипотезы.
Что AI реально ускоряет, а что нет
- Ускоряет: набросать альтернативные раскладки, переписать микрокопию под разный тон, сгенерить варианты иллюстраций, собрать прототип с реальными данными
- Ускоряет: сделать summary проигравшего теста по сырым выгрузкам и подсветить, на каком шаге упало
- Не ускоряет: формулировку гипотезы — она по-прежнему рождается из наблюдения за пользователем
- Не ускоряет: выбор метрики и стоп-критериев — это управленческое решение, не генеративное
Анти-паттерны «AI-щедрого» тестирования
- Запускать 4 варианта против контроля, потому что «MCP всё равно собрал» — каждая лишняя ветка ест трафик и размывает значимость
- Просить модель «придумать гипотезу под макет» — это обратный порядок, гипотеза должна быть до макета
- Дать AI переписать всю микрокопию и катить в тест, не пройдя флоу руками
- Закидывать в чат сырые персональные данные пользователей ради «давай проанализируем сессии» — это не вопрос вкуса, это политика
Минимальный чеклист, если в процессе участвует AI/MCP
- Я сам могу объяснить, чем варианты B и C отличаются по гипотезе, а не по картинке
- Сгенерированная копия прочитана вслух и прошла проверку на юридические/тональные грабли
- Данные, которые ушли в модель, не содержат того, что не должно покидать контур
- У MCP-агента нет прав катить изменения в прод без человеческого approve
- Если AI помог с разбором результата — я перепроверил цифры в источнике, а не доверился пересказу
Как проверять качество самого теста, а не только макета
Бывает, что проигрыш — это не про дизайн, а про сломанный эксперимент. Прежде чем хоронить вариант, стоит пройтись по технической гигиене.
Короткий QA-список для теста
- Сплит реально 50/50 — проверено по трафику, а не только по конфигу
- Сегменты на входе одинаковые: новые/старые, платформы, гео
- Событие, по которому считается метрика, срабатывает в обоих вариантах одинаково надёжно
- Нет утечки между группами — пользователь не видит то один вариант, то другой между сессиями
- Тест шёл достаточно долго, чтобы покрыть недельный цикл, а не три будних дня
- Параллельно не катился второй эксперимент, который трогает тот же экран
Если хоть один пункт мимо — результат можно ставить под сомнение честно, а не из-за обиды.
Как отличить «дизайн проиграл» от «тест сломан»
- Проигрыш равномерный по сегментам и стабильный во времени — скорее дизайн
- Проигрыш только у одного канала трафика и совпадает с релизом аналитики — скорее инструмент
- Контрольная группа ведёт себя не как обычно — скорее внешний фактор
- Метрика просела, но событие в варианте B логируется реже технически — это не поведение, это телеметрия
Как объяснять проигрыш команде, не теряя авторитета
Самое неприятное в проигранном тесте — не сами цифры, а разговор с продактом, разработчиком и тимлидом. Если зайти в него с защитой, доверие к дизайну падает. Если зайти честно — наоборот, растёт.
Структура разговора, которая работает
- Что мы проверяли — одна фраза про гипотезу, без макета на экране
- Что увидели в цифрах — метрика, направление, на каком сегменте
- Что это значит для пользователя — перевод цифр в поведение
- Что мы делаем дальше — откат, доработка, новая гипотеза
- Что мы поняли про процесс — одна строка, чтобы не повторить
Этого хватает на пять минут стендапа и закрывает 90% вопросов «а почему».
Вопросы, к которым стоит готовиться заранее
- «Можем мы хотя бы для новых пользователей оставить новый вариант?» — ответ зависит от того, был ли сегмент заложен в тест заранее
- «А может, дотюнить и перезапустить?» — ок, но с явной новой гипотезой, иначе это тот же тест
- «Почему мы вообще это катили, если результат такой?» — здесь спасает зафиксированная до старта гипотеза
- «Сколько мы потеряли на тесте?» — честная оценка экспозиции лучше, чем уход в сторону
Чего не стоит делать на разборе
- Винить разработку без диффа макета и реализации
- Винить аналитику без конкретного события, которое поломано
- Обещать «в следующий раз точно сработает» — это не вывод, это эмоция
- Прятать проигрыш в общий статус-апдейт мелким шрифтом
Короткий итог сегмента: AI и MCP делают производство вариантов почти бесплатным, и именно поэтому дисциплина гипотезы, чистота теста и честный разговор с командой становятся главным навыком дизайнера. Проигравший тест перестаёт быть личной катастрофой ровно в тот момент, когда команда умеет разбирать его по одной и той же схеме.
Чеклист перед стартом следующего теста
Проигранный тест перестаёт обижать, когда есть привычка проходить один и тот же список до запуска. Это не бюрократия, это страховка от ситуации, когда через две недели нечего сказать команде, кроме «ну вот так получилось».
Перед запуском
- Гипотеза записана одной фразой в формате «если — то — потому что», а не «мы хотим попробовать»
- Главная метрика выбрана до того, как кто-либо увидел макет
- Есть guardrail-метрика, которую тест не должен сломать (отписки, ошибки, обращения в поддержку)
- Заранее решено, что считается успехом, а что — статистическим шумом
- Известно, на каком сегменте мы ждём эффект сильнее всего, и почему
- Согласовано, что мы делаем при ничьей: оставляем старое, не «выбираем красивее»
Во время теста
- Никто не правит копию, иконки и анимации «по дороге»
- Маркетинг не запускает параллельную акцию на тот же экран
- Логи событий проверены руками хотя бы раз после старта
- Тест не остановлен раньше срока из-за того, что «уже видно тренд»
После теста
- Результат разобран по сегментам, а не только по общему числу
- Записан в общий журнал экспериментов, даже если проиграли
- Сделан вывод про процесс, а не только про макет
- Откат или раскат запланирован конкретной задачей, а не «надо будет»
Анти-паттерны, которые легко не заметить в себе
Большая часть провалов — не из-за плохого дизайна, а из-за нечестного отношения к процессу. Эти ловушки удобно ловить на себе раньше, чем их поймает продакт.
Анти-паттерн «тест как защита макета»
Дизайнер катит тест, потому что хочет доказать, что был прав. Гипотеза подгоняется под решение, а не наоборот. В итоге результат — либо победа без выводов, либо обида.
Анти-паттерн «бесконечный тюнинг»
После проигрыша вариант B переименовывается в B', потом B'', и тест перезапускается без новой гипотезы. Команда теряет время, а дизайн — фокус.
Анти-паттерн «AI сгенерил, я подписал»
Десять вариантов от модели уходят в тест без внятного объяснения, чем они отличаются по смыслу. На разборе нечего сказать, кроме «ну тут кнопка ниже». Это убивает доверие к дизайну быстрее любого проигрыша.
Анти-паттерн «победил — значит, хорошо»
Метрика выросла, тест закрыт, шампанское. Через месяц вылезает просадка в retention, потому что guardrail никто не смотрел. Победа без проверки побочек — это отложенный проигрыш.
Анти-паттерн «дизайнер вне разбора»
Аналитик присылает табличку, продакт пересказывает её на стендапе, дизайнер узнаёт результат последним. Так теряется не только контекст, но и право голоса в следующих гипотезах.
Вопросы для ревью результата
Этот короткий список удобно проговаривать вслух на разборе — с собой или с командой. Он работает и для победы, и для проигрыша.
- Что именно мы узнали про пользователя, чего не знали до теста?
- Какой кусок результата объясняется дизайном, а какой — контекстом (сезон, релиз, канал)?
- Если бы мы запускали этот тест заново, что поменяли бы в самой постановке?
- Какой сегмент повёл себя не так, как мы ожидали, и почему?
- Что в этом тесте было сделано руками AI, и где мы это перепроверяли?
- Какое решение мы принимаем прямо сейчас: откат, раскат, доработка, новый тест?
- Какую одну строчку мы добавим в общий журнал, чтобы через полгода это можно было найти?
Если на половину вопросов ответа нет — это не плохой тест, это незавершённый разбор. Стоит вернуться к нему через день, а не закрывать задачу из вежливости.
Практический итог
Любимый дизайн, проигравший в A/B, — это не приговор вкусу и не повод чинить метрику под себя. Это самый дешёвый способ узнать, что пользователь живёт не в той же системе координат, в которой живёт дизайнер. Дисциплина гипотезы до старта, чистая телеметрия во время и честный разбор после — три привычки, которые превращают каждый проигрыш в актив команды, а не в личную травму. AI и MCP в этом контуре полезны ровно настолько, насколько человек рядом с ними умеет задавать правильные вопросы и не подписывать то, что не может объяснить словами.