{ "index": 183, "slug": "editorial-2022-12-practice-user-research", "title": "Как проверить пользовательскую проблему до изменения интерфейса", "excerpt": "Команда часто начинает с готового UI-решения, хотя проблема ещё не описана. Разбираем цепочку от наблюдения до проверяемого следующего шага и показываем, когда изменение нужно отложить.", "contentHtml": "
Команда получает просьбу «сделать форму понятнее» и сразу выбирает средство: добавить подсказку, поменять подпись, переставить поля. Через спринт появляется новый экран, но никто не может точно сказать, какую трудность он устраняет. Пользователь по-прежнему останавливается на том же шаге, а разработчики тратят время на поддержку решения, которое приняли до проверки проблемы.
\nСимптом здесь простой: задача содержит ответ, но не содержит наблюдаемого вопроса. Цена ошибки — не только лишняя разработка. Команда закрепляет предположение как факт, теряет исходный контекст и не может проверить результат после изменения. Поэтому пользовательское исследование нужно начинать с разделения утверждений: что увидели, откуда узнали, как это объясняем и что ещё надо проверить.
\nРабочая запись состоит из пяти уровней. Наблюдение описывает действие или высказывание без объяснения причины. Источник показывает, где это наблюдение можно сверить. Интерпретация предлагает возможное объяснение. Гипотеза связывает объяснение с ожидаемым результатом проверки. Решение или следующий опыт появляется только после этих уровней.
\nТакой порядок не превращает исследование в бюрократию. Он защищает от подмены. Фраза «люди не понимают поле, поэтому нужен tooltip» склеивает три разных шага. «Не понимают» требует источника. «Поэтому» выдаёт интерпретацию за доказанную причину. «Нужен tooltip» уже закрывает пространство альтернатив. Разделение возвращает вопрос: какое наблюдение подтвердит или опровергнет это объяснение?
\n| Симптом | Причина | Проверка | Действие |
|---|---|---|---|
| «Нужно сделать проще» | Решение записали вместо пользовательской трудности | Найти конкретный шаг, на котором возникает препятствие | Отложить макет и сформулировать вопрос |
| «Пользователь путается» | Наблюдение смешали с мотивом | Отделить буквальное действие от объяснений | Сохранить действие и добавить альтернативы |
| «Добавим подсказку» | Гипотезу приняли за готовый ответ | Назвать ожидаемое изменение поведения | Проверить прототип или другой обратимый вариант |
| «Так попросили» | Авторитет заменил источник | Уточнить контекст и доступность записи | Ограничить силу вывода |
| «Выпустим быстро» | Скорость подменяет критерий успеха | Проверить, что будет считаться улучшением | Выбрать малый шаг с понятным откатом |
Источник не обязан быть числом. Им может быть запись согласованного наблюдения, обращение в поддержку, результат тестовой сессии или артефакт, доступный команде. Но слова «все знают» источником не являются. Без контекста нельзя понять, кто видел ситуацию, в каком сценарии и что именно произошло. Один случай может быть важным сигналом, но он не доказывает частотность и не описывает всех пользователей.
\nИнтерпретация должна сохранять неопределённость. «Поле оставили пустым, потому что подпись непонятна» — слишком сильная формулировка, если зафиксировано только пустое поле. Надёжнее написать: «Поле оставили пустым; возможная причина — непонятная подпись, но возможны и другие причины». После этого гипотеза становится проверяемой: «Если подпись мешает понять назначение поля, участники будут чаще правильно объяснять его назначение в варианте с новой подписью». Это ещё не результат и не обещание эффекта.
\nНиже — учебный пример на JavaScript. Он не подключён к продукту, не читает аналитику и не описывает реальных участников. Модель полезна как минимальный контракт для записи: нельзя добавить наблюдение без источника, принять решение до гипотезы или стереть исходную запись при откате.
\nconst evidence = {\n observation: 'Обязательное поле осталось пустым',\n source: 'session-note-17',\n interpretation: 'Причина пока не установлена',\n hypothesis: 'Если подпись неясна, новая подпись изменит понимание поля',\n nextCheck: 'Показать два варианта подписи и попросить объяснить назначение поля',\n decision: 'defer-solution'\n};\n\nfunction canPlan(record) {\n return Boolean(\n record.observation &&\n record.source &&\n record.interpretation &&\n record.hypothesis &&\n record.nextCheck\n );\n}\n\nif (!canPlan(evidence)) {\n throw new Error('Нужны observation, source, interpretation, hypothesis и nextCheck');\n}\nПоле decision здесь намеренно равно defer-solution. Оно не означает, что работу отменили навсегда. Оно означает, что команда не выдаёт выбранный интерфейс за доказанный ответ. Следующий шаг должен узнавать больше, а не маскировать нехватку данных. Если проверка подтвердит гипотезу, команда сравнит варианты. Если опровергнет, она сохранит время на неправильный патч.
Отрицательный путь важен не меньше положительного. Источник может оказаться недоступен. Наблюдение может не отличаться от общей оценки. Гипотеза может не содержать условия, при котором она окажется неверной. В каждом случае остановите переход к реализации. Сохраните исходное наблюдение, явно запишите неизвестное и назначьте способ получить недостающий контекст.
\nRollback означает отмену решения, а не удаление неудобного свидетельства. Если команда уже выбрала подсказку, но не может связать её с проверяемой проблемой, отложите подсказку и вернитесь к карточке evidence. Не переписывайте наблюдение так, чтобы оно оправдывало выбранный компонент. Иначе процесс создаёт красивую историю вместо знания.
\ndefer-solution.Эта схема не выбирает метод исследования автоматически. Вопрос о понимании текста может потребовать проверки удобства, вопрос о причине ухода — другого источника и другого контекста. Один артефакт не даёт репрезентативности, не оценивает размер выборки и не доказывает влияние на конверсию. Учебный объект в примере не заменяет согласие участников, правила хранения данных и требования к приватности.
\nНе переносите единичное действие на всю аудиторию. Не называйте лог доказательством без владельца, определения события и контекста. Не добавляйте выдуманные цитаты, проценты и результаты, чтобы запись выглядела убедительнее. Если продукт обязан изменить экран по внешнему требованию, зафиксируйте это как ограничение. Обязательное решение всё равно не становится результатом исследования.
\nКарточка готова к обсуждению изменения, когда другой человек может открыть источник, отличить наблюдение от интерпретации, назвать условие, при котором гипотеза неверна, и повторить следующий опыт по записи. В тексте нет утверждения «пользователи хотят X», если источник показывает только действие Y. Есть явный отрицательный путь: что команда делает при недоступном источнике или опровергнутой гипотезе. До выполнения этих условий обсуждайте вопрос и следующий опыт, а не детали компонента.
\nПрактическая проверка занимает один проход по ближайшей задаче с готовым UI-ответом. Уберите решение из первой строки. Найдите наблюдение и источник. Если их нет, результат уже полезен: команда обнаружила, что проблема не подтверждена. Если они есть, добавьте альтернативу и обратимый следующий шаг. Готовность измеряется не уверенностью формулировки, а тем, можно ли проверить переход от наблюдения к действию.
\n