Основы UX и профессиональные принципы

Как пользователь взаимодействует с интерфейсом

В прошлом уроке мы отделили пользовательскую проблему от интерфейсного решения. Теперь разберём, что происходит между ними: как задача возникает в конкретном контексте, превращается в сценарий действий и проходит через точки контакта, ожидания, ограничения и ответы системы.

~45–55 минут чтения, схем и квиза · две практики ~65–85 минут

Интерфейс начинается не с первого экрана

Представьте две ситуации. В первой вы вечером сидите дома за ноутбуком и заранее строите маршрут на выходные. Во второй вы уже вышли из метро, держите телефон одной рукой, торопитесь и пытаетесь понять, на какой автобус пересесть. Формально продукт может быть тем же самым — картой с построением маршрутов. Но человек, его цель, доступное время, устройство, внимание и условия вокруг различаются. Поэтому одинаковый набор экранов не означает одинаковое взаимодействие.

В первом уроке блока мы спрашивали: какую проблему решает человек и не подменили ли мы её готовой кнопкой? Теперь вопрос становится конкретнее: что человек делает, в каких условиях, что ожидает увидеть после действия и где система должна помочь ему понять следующий шаг. Именно здесь UX перестаёт быть общей рамкой и превращается в наблюдаемую последовательность действий.

Связь контекста, задачи, сценария, действий и ответа системы Контекст кто, где, с чем и когда Задача какой результат нужно получить Сценарий как задача разворачивается Действие что делает человек Ответ что изменила система ответ меняет следующий выбор
Взаимодействие — не один клик. Оно начинается с контекста и задачи, а ответ системы становится входом для следующего решения человека.

Эта схема намеренно проста. Реальные сервисы могут растягивать путь на дни, переходить между телефоном, сайтом, письмом и физическим местом. Но если вы научитесь видеть эту базовую цепочку, дальше станет проще разбирать и один экран, и большой сервис.

Пользовательская задача: что человек делает ради результата

Начнём с самого маленького элемента всей цепочки. В интерфейсе легко видеть действия системы: «открыть фильтр», «нажать Маршрут», «перетащить карточку». Но дизайнеру сначала нужен более устойчивый уровень — что человек пытается сделать ради нужного результата. Международный стандарт ISO 9241-11:2018 определяет задачу как набор действий, предпринимаемых ради конкретной цели.[1] Это полезная граница: кнопка может исчезнуть после редизайна, а задача человека останется.

Здесь важно не склеить четыре соседних уровня. Проблема описывает препятствие или неудовлетворённую ситуацию: «я на незнакомом вокзале и не знаю, как успеть в музей». Цель задаёт желаемое состояние: «оказаться в музее к 15:00». Пользовательская задача — то, что человек делает ради этой цели: например, подбирает подходящий путь. А результат показывает, что задача завершена: маршрут выбран и человеку понятно, что делать дальше. В разговоре эти слова иногда используют свободнее, но дизайнеру полезно различать их, чтобы не выдавать кнопку за задачу, а задачу — за исходную проблему.

Пользовательская задача (user task)
Деятельность, которую человек выполняет ради цели и проверяемого результата. Задача может включать несколько действий и экранов; она не обязана совпадать с одной функцией интерфейса.

Возьмём Яндекс Карты. Официальная справка описывает построение маршрута через начальную и конечную точки, выбор вида транспорта и подходящего варианта маршрута.[11] Пользовательская задача при этом не «нажать кнопку Маршрут». Она может звучать так: «понять, как быстрее добраться от вокзала до музея» или «построить путь, который не проходит по платным дорогам». Кнопки и поля — средства, а не сама цель.

Плохо

Задача пользователя: открыть фильтр «Избегать платных дорог».

Хорошо

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

Разница практическая. Первая формулировка уже диктует конкретный элемент и мешает увидеть альтернативы. Вторая оставляет команде пространство решить, где и как лучше дать человеку этот выбор. В будущем вы будете проверять задачи исследованиями; пока достаточно научиться не зашивать решение внутрь самой формулировки.

Контекст использования меняет одну и ту же задачу

Даже хорошо сформулированной задачи недостаточно. «Построить маршрут до поликлиники» звучит одинаково на бумаге, но совершенно по-разному для человека дома за компьютером и для человека на улице с телефоном. ISO описывает контекст использования как сочетание пользователей, их целей и задач, доступных ресурсов и среды; к среде относятся не только физические условия, но и технические, социальные и организационные.[2]

Контекст использования (context of use)
Условия, в которых человек решает задачу: кто он, чего пытается добиться, какое устройство и другие ресурсы у него есть, где он находится и какие внешние ограничения влияют на действие.

Контекст не нужен ради длинной анкеты о пользователе. Он нужен там, где реально меняет решение. Например, дома человек может спокойно сравнивать несколько маршрутов и читать детали. На улице ему может быть важнее быстро увидеть направление следующего шага, не потерять текущую позицию и не тратить внимание на второстепенные настройки. Это не означает, что мобильный интерфейс всегда должен быть «проще». Это означает, что дизайнер должен понимать, какая сложность допустима именно в этой ситуации.

Одна задача в двух разных контекстах использования Дома На улице Устройство: ноутбук Время: есть запас Внимание: на экране Цель: сравнить варианты Устройство: телефон Время: решение сейчас Внимание: делится со средой Цель: начать движение Задача похожа, но требования к взаимодействию уже различаются.
Контекст — это не фон истории. Он определяет, какие требования к взаимодействию действительно важны в данный момент.

Практическая привычка для работы: когда обсуждаете решение, добавляйте к задаче хотя бы одну строку контекста. «Пользователь меняет адрес доставки» слабее, чем «пользователь уже оформляет заказ с телефона и замечает, что выбран старый адрес». Вторая формулировка сразу поднимает вопросы о цене ошибки, сохранении уже введённых данных и возможности вернуться назад — не потому, что это красивые UX-правила, а потому, что контекст сделал их значимыми.

Сценарий: задача разворачивается во времени

Задача отвечает на вопрос «что человек должен сделать ради цели?», но ещё не показывает, как ситуация развивается во времени. Для этого полезен сценарий — конкретная история выполнения задачи в определённом контексте. Он связывает исходную ситуацию, цель, значимые события и действия в одну последовательность, не превращая её сразу в схему экранов.

Сценарий (scenario)
Конкретное описание того, как задача возникает и выполняется в заданном контексте: исходная ситуация, нужный результат, важные условия и последовательность значимых действий.

Сценарий полезен ещё до тестирования. Он заставляет дизайнера перестать мыслить изолированным экраном. Если задача — подобрать путь, сценарий может начинаться раньше открытия карты: человек получил адрес в сообщении, понял, что не знает район, открыл карту, сравнил варианты, выбрал транспорт и начал движение. Каждый значимый момент создаёт новый вопрос, а интерфейс должен отвечать на него достаточно ясно.

У слова «сценарий» есть близкие рабочие употребления, и их лучше различать сразу. Пользовательский сценарий описывает ситуацию и развитие задачи на смысловом уровне. Позже User Flow формализует путь через конкретные шаги и развилки продукта. А сценарий задания для тестирования — это формулировка, которую дают участнику исследования: в ней, наоборот, нельзя заранее подсказывать нужные кнопки и клики. Nielsen Norman Group отдельно предупреждает об этом эффекте подсказки.[3] Само юзабилити-тестирование разберём в отдельном уроке; здесь нам нужна только граница между этими тремя уровнями.

Плохо

Откройте Яндекс Карты, нажмите «Маршрут», введите адрес и выберите автобус.

Хорошо

Вы приехали на незнакомый вокзал и должны быть в музее к 15:00. Найдите подходящий маршрут общественным транспортом.

В плохом варианте дизайнер уже подсказал интерфейсное решение и лишил себя возможности увидеть естественный путь. Хорошее тестовое задание задаёт цель и обстоятельства, но оставляет человеку выбор действий. Это частный случай сценария, а не определение любого пользовательского сценария.

Рабочая формула

Для первого черновика сценария достаточно четырёх частей: кто и в какой ситуации → что произошло → какой результат нужен → какие условия нельзя игнорировать. Экраны и кнопки добавляйте только после этого.

Touchpoint: один пользовательский путь состоит из нескольких точек контакта

До сих пор мы разбирали отдельные действия внутри интерфейса. Но задача человека обычно длиннее одного экрана. При выборе авиабилета он сначала задаёт направление и даты, затем изучает результаты, сужает выбор, сравнивает варианты и только после этого переходит к бронированию. Чтобы обсуждать такие переходы без привязки к одному экрану, нужен ещё один масштаб — точка контакта, или touchpoint.

Точка контакта (touchpoint)
Конкретный момент взаимодействия человека с продуктом, организацией или сервисом, который влияет на продолжение пользовательского пути: форма, экран результатов, письмо, звонок, сообщение, стойка обслуживания или другой контакт.

Не путайте touchpoint с каналом. Канал — более общий способ взаимодействия: сайт, мобильное приложение, телефон, электронная почта, личное посещение. Внутри одного канала может быть несколько точек контакта. В материалах британской Government Digital Service карты опыта отдельно содержат точки контакта и каналы доставки сервиса; Nielsen Norman Group также рассматривает пользовательский путь как последовательность взаимодействий во времени.[4][5]

Это хорошо видно на Авиасейлс. Официальная справка описывает последовательность от формы поиска с направлением, датами, пассажирами и классом обслуживания к результатам, фильтрам, выбору подходящего билета и форме бронирования.[12] Всё происходит в рамках одной большой задачи — подобрать подходящий перелёт, — но на разных этапах человеку нужна разная информация и он принимает разные решения.

Одна задача выбора перелёта проходит через несколько точек контакта внутри одного цифрового канала Задача: выбрать подходящий перелёт Форма поиска направление даты и пассажиры Результаты увидеть варианты сравнить условия Фильтры сузить выбор по критериям Бронирование выбранный вариант следующий этап Один канал — несколько разных решений по пути
Touchpoint — не синоним экрана и не синоним канала. Полезный вопрос: что человек пытается понять или решить именно в этой точке пути?

Новый экран сам по себе ещё не создаёт новый touchpoint. Полезно выделять точку контакта там, где меняется значимый локальный вопрос человека: он получает важную информацию, совершает действие или принимает следующее решение. Иногда несколько экранов обслуживают один такой момент, а иногда один экран содержит несколько разных точек контакта.

На этом уроке мы не строим Customer Journey Map: отдельный урок исследований разберёт карту пути, персоны и User Flow. Сейчас важнее увидеть сам принцип: граница макета не равна границе пользовательской задачи, а один канал может содержать несколько точек контакта с разными локальными целями.

Ментальная модель превращается в прогноз следующего шага

В первом блоке мы уже ввели ментальную модель — внутреннее представление человека о том, как устроена система. Здесь она становится рабочим инструментом взаимодействия. Пользователь не просто «имеет ожидания»: он на их основе прогнозирует результат действия и выбирает следующий шаг. Nielsen Norman Group описывает ментальные модели именно как убеждения о системе, которые помогают предсказывать её поведение.[6]

Допустим, человек видит в маршруте поля «Откуда» и «Куда». Если рядом есть знакомый символ обмена, он может предположить, что точки поменяются местами. Официальная справка Яндекс Карт действительно описывает такую возможность: начало и конец маршрута можно поменять местами отдельным действием.[11] Но для UX важно не само наличие функции, а совпадение трёх вещей: что человек ожидает, что делает и что система затем показывает.

Ментальная модель связывает ожидание, действие, ответ системы и новое ожидание Ментальная модель Ожидание «что случится?» Действие нажал / ввёл / выбрал Ответ системы «что изменилось?» Новое ожидание модель уточняется
Если ответ системы не совпадает с ожиданием или остаётся незаметным, человек либо корректирует свою модель, либо решает, что интерфейс сломан.

Поэтому ментальная модель не даёт дизайнеру права говорить «пользователи привыкли» без данных. Она задаёт вопрос для проверки: какое поведение человек ожидает здесь и откуда это ожидание могло появиться? Конкретные способы исследовать такие ожидания появятся позже. Сейчас достаточно научиться формулировать гипотезу и не путать её с фактом.

Affordance, constraint и feedback: три разных части одного действия

Теперь можно приблизиться к самому экрану. Когда человек знает, чего хочет, у него есть конкретный сценарий и ожидание следующего шага, интерфейс должен ответить на три разных вопроса: что здесь вообще можно сделать, какие действия недоступны или ограничены и что произошло после действия. Для этого в interaction design используют понятия affordance, constraint и feedback.

Affordance: какая возможность действия существует

Слово affordance часто упрощают до «элемент выглядит кликабельным», но это неточно. Дон Норман, один из ключевых авторов в области проектирования взаимодействия, подчёркивает: affordance описывает возможное действие, а воспринимаемый сигнал о том, где и как это действие выполнить, он называет signifier — видимым или слышимым признаком.[7] Это различие особенно важно на экранах, где технически нажать можно почти в любую точку, но далеко не каждое нажатие имеет смысл.

Аффорданс (affordance)
Реальная возможность действия, которую система предоставляет человеку или устройству. В цифровом интерфейсе дизайнеру особенно важно сделать полезную возможность обнаружимой через понятный сигнал.
Точная терминология

«Синяя кнопка — это affordance» — слишком грубо. Возможность активировать действие — affordance; форма, подпись, положение и другие признаки, подсказывающие, что элемент можно использовать, работают как signifiers. В этом курсе дальше будем различать эти вещи, даже если в индустрии слово affordance нередко используют шире.

В Яндекс Картах, например, точки маршрута можно менять местами и переставлять; официальная справка описывает перетаскивание адресов внутри маршрута.[11] Сам факт поддержки перетаскивания — возможность действия. Насколько хорошо текущий интерфейс подсказывает её визуально, уже отдельный вопрос, который лучше проверять наблюдением, а не угадывать по документации.

Constraint: не всякая свобода полезна

Если affordance отвечает «что возможно», constraint отвечает «что ограничено». Ограничения уменьшают пространство допустимых действий: иногда физически или технически, иногда логикой системы, иногда правилами предметной области. Норман разбирает физические, логические, семантические и культурные ограничения как способы сузить набор возможных действий.[8] Нам пока важен не список типов, а сам принцип.

Ограничение (constraint)
Правило или свойство системы, которое делает часть действий невозможной, недоступной или осмысленно ограниченной и тем самым сужает пространство выбора.

Реальный пример: справка Яндекс Карт указывает, что построенный маршрут можно продлить, добавив не более восьми дополнительных точек.[11] Это системное ограничение. По публичной справке мы не знаем, почему выбран именно такой предел, поэтому профессионально будет не придумывать объяснение, а зафиксировать факт: возможность добавления есть, но её диапазон ограничен.

Хорошее ограничение помогает человеку не попадать в бессмысленное состояние. Но ограничение без объяснения может выглядеть как поломка. Если поле внезапно перестало принимать символы или кнопка стала недоступной, интерфейс должен дать человеку достаточно информации, чтобы он понял причину. И здесь мы переходим к третьему понятию.

Feedback: система должна показать результат действия

После действия человеку нужно понять, заметила ли его система и что именно изменилось. Nielsen Norman Group называет своевременную обратную связь одним из базовых требований к видимости состояния системы: без неё человек не понимает, прошла ли команда, и может повторять действие или терять контроль.[9]

Обратная связь (feedback)
Наблюдаемый ответ системы на действие пользователя: изменение состояния, подтверждение, результат, прогресс или сообщение, которое помогает понять, что произошло и что можно делать дальше.

Не смешивайте этот feedback с «обратной связью от пользователей». Здесь речь идёт о системе, которая отвечает человеку. В исследованиях мы позже будем собирать данные и комментарии от людей — это другое направление обратной связи, хотя по-русски выражение звучит одинаково.

В Яндекс Картах после изменения порядка точек маршрут перестраивается автоматически.[11] Для пользователя важен не сам внутренний пересчёт, а видимый новый результат: изменившаяся линия, порядок точек, время или другие данные маршрута. Именно такой наблюдаемый эффект замыкает действие и позволяет принять следующий шаг.

Плохо

После нажатия «Сохранить» экран не меняется. Пользователь не знает, сохранились ли данные, и нажимает снова.

Хорошо

После действия интерфейс показывает новое состояние или подтверждение, достаточное для ответа на вопрос «получилось?».

Эта пара не требует конкретной анимации, зелёной галочки или всплывающего сообщения. Feedback — не декоративный эффект, а информация, необходимая для следующего решения. Способ подачи зависит от контекста и характера действия.

Три понятия работают вместе, а не по очереди

На практике affordance, constraint и feedback редко обсуждают изолированно. Представьте поле выбора даты. Система позволяет открыть календарь и выбрать день — это возможность действия. Прошедшие даты могут быть недоступны — это ограничение. После выбора поле показывает выбранную дату — это обратная связь. Человек воспринимает всё как одно короткое взаимодействие, хотя дизайнеру полезно разложить его на три слоя.

Affordance, constraint и feedback на одном условном выборе даты Affordance Выбрать дату действие возможно Constraint 14 13 часть выбора недоступна Feedback 14 августа состояние изменилось Одна микросцена, три разных вопроса для дизайнера.
Иллюстрация условная: она показывает различие терминов, а не конкретный интерфейс какого-либо сервиса.

Такой разбор особенно полезен на ревью. Вместо «что-то непонятно с полем» можно точнее сказать: «действие существует, но его трудно обнаружить», «ограничение не объяснено» или «после действия нет достаточного feedback». Чем точнее диагноз, тем меньше шанс исправлять не ту часть интерфейса.

Базовый UX-процесс: не рисовать раньше, чем понятна задача

Мы разобрали элементы взаимодействия по отдельности. Теперь их нужно собрать в рабочую последовательность. Универсального единственного «UX-процесса» не существует: команды называют этапы по-разному, объединяют их и возвращаются назад. Но для начинающего дизайнера полезна минимальная опора, которая не позволяет перепрыгнуть от идеи сразу к экрану.

ISO 9241-210 описывает четыре основные человеко-ориентированные активности: понять и описать контекст использования, сформулировать пользовательские требования, создать проектные решения и оценить их относительно требований.[10] Сам стандарт отдельно говорит, что даёт обзор активностей, а не подробный каталог методов.[10] Это хорошо совпадает с границей нашего урока: методы интервью, персоны, CJM и юзабилити-тестирование появятся позже, а сейчас нужна логика.

Пользовательское требование здесь — не пожелание вроде «сделайте кнопку зелёной» и не готовый элемент UI. Это условие, которому решение должно соответствовать, чтобы человек мог выполнить задачу в своём контексте. Например: «человек должен уметь отличить варианты, позволяющие прибыть до заданного времени, от неподходящих». Конкретный фильтр, сортировка или другой интерфейсный механизм — уже гипотеза решения этого требования.

Базовый человеко-ориентированный цикл: контекст, требования, решения, оценка и повторение 1. Понять контекст кто, задача, среда, ресурсы 2. Уточнить требования что должно стать возможным 3. Создать решение структура, поведение, интерфейс 4. Проверить сравнить результат с требованиями Проверка может вернуть команду к контексту, требованиям или самому решению.
Это рабочая петля, а не конвейер. Если проверка показывает ошибочную гипотезу, профессиональный ход — вернуться назад, а не «дополировать UI».

Прогоним через цикл знакомый пример с перелётом. Сначала выясняем контекст: человеку нужно прибыть к встрече вовремя, цена важна, но опоздание критично. Затем формулируем требование: неподходящие по времени варианты должны быть отличимы до окончательного выбора. Только после этого можно обсуждать конкретное решение интерфейса. Проверка должна ответить уже не на вопрос «красиво ли выглядит фильтр», а на вопрос «может ли человек уверенно исключить варианты, которые нарушают важное условие поездки».

В реальной работе между этими этапами появятся исследования, аналитика, ограничения разработки, согласования, прототипы и тесты. Но фундаментальная последовательность останется полезной: сначала понять условия и нужный результат, затем определить требования, только потом предлагать решение и обязательно проверять его. Именно она защищает от ошибки, которую мы разобрали в прошлом уроке: принять первую интерфейсную идею за пользовательскую проблему.

Не превращайте процесс в ритуал

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

Разберём два реальных сервиса одним языком

Чтобы термины не остались абстракциями, сведём их в два коротких разбора. Здесь важно отделять проверяемое поведение сервиса от наших дизайнерских гипотез. Первое подтверждаем документацией, второе формулируем как вопрос для проверки.

Яндекс Карты: построение маршрута

По официальной справке пользователь задаёт точки «Откуда» и «Куда», выбирает вид транспорта и вариант маршрута; точки можно менять местами, добавлять и переставлять, а после изменений маршрут перестраивается.[11] Из этого факта уже можно сделать профессиональный разбор без оценки «хорошо» или «плохо».

Понятие Что можно наблюдать Какой вопрос задаёт дизайнер
Задача Получить подходящий путь между точками Какой результат человек считает подходящим именно сейчас?
Контекст Маршрут можно строить для разных видов транспорта Где и на каком устройстве человек выбирает вариант?
Constraint Количество дополнительных точек ограничено Понимает ли человек предел и что произойдёт при его достижении?
Feedback Маршрут перестраивается после изменения точек Достаточно ли заметно, что система приняла изменение?

Последний столбец — уже не факт о Яндекс Картах. Это вопросы для наблюдения или теста. Такое разделение пригодится вам постоянно: документация говорит, что функция существует; UX-исследование отвечает, понимают ли люди её и помогает ли она решать задачу.

Авиасейлс: выбор варианта по нескольким критериям

В Авиасейлс задача устроена иначе. Пользователю мало получить любой маршрут между городами: нужно выбрать перелёт, который подходит по времени, цене, пересадкам, багажу и другим условиям. Официальная справка описывает форму поиска, результаты и фильтры по количеству пересадок, времени вылета и прибытия, багажу, длительности, цене и другим параметрам.[12] Поэтому сервис удобен как учебный пример принятия решения по нескольким пользовательским критериям, а не как ещё один пример поиска пути. Здесь особенно важно не называть сами критерии поездки UX-термином constraint: «прилететь до 12:30» — условие человека, а constraint — ограничение, которое задаёт сама система.

Понятие Что подтверждает сценарий Что ещё нужно наблюдать
Задача Выбрать перелёт, который подходит условиям поездки Какие условия обязательны, а какими человек готов пожертвовать?
Контекст Одни и те же рейсы можно оценивать по разным параметрам Что важнее в конкретной поездке: время, цена, багаж, пересадки или другой фактор?
Touchpoints Форма поиска → результаты → сужение вариантов → выбор билета → бронирование Какая информация нужна человеку в каждой точке, чтобы принять следующее решение?
Feedback Фильтры предназначены для сужения набора результатов Насколько ясно интерфейс показывает, какие условия применены и как изменился выбор?

И здесь последний столбец не описывает интерфейс по памяти. Справка подтверждает, какие возможности существуют, но не доказывает, что человек замечает их, понимает последствия выбора или легко восстанавливает причины пустой выдачи. Эти вопросы нужно проверять наблюдением. Именно поэтому во второй практике вы будете не читать инструкцию, а самостоятельно менять условия и фиксировать реакцию системы.

Что должен уметь дизайнер после этого урока

В начале блока у нас была пользовательская проблема и интерфейсное решение. Теперь между ними появилась рабочая структура. Вы можете взять действие в интерфейсе и спросить, из какой задачи оно выросло, в каком контексте происходит, какой сценарий окружает его, через какие точки контакта проходит путь, какую ментальную модель приносит человек, какое действие система позволяет, чем ограничивает и как сообщает результат.

Следующий урок будет про UX/UI-паттерны, антипаттерны и dark patterns. Мы сможем перейти к ним без магии: паттерн имеет смысл только тогда, когда понятно, какую повторяющуюся задачу и какое ожидаемое взаимодействие он поддерживает. А если эта основа не определена, копирование знакомого компонента превращается в оформление без причины.

Главное
Практика 1
Разберите микромеханику маршрута в Яндекс Картах
~25–35 минут · браузер · аккаунт не нужен

Здесь не нужно анализировать весь пользовательский путь. Возьмите несколько коротких действий и посмотрите, как интерфейс помогает обнаружить возможность, ограничивает выбор и сообщает о результате. Это лаборатория для связки affordance → signifier → constraint → feedback.

Что сделать
  1. Откройте Яндекс Карты, задайте знакомые точки «Откуда» и «Куда» и постройте маршрут.
  2. По очереди выполните три изменения: смените вид транспорта, поменяйте начало и конец местами и добавьте промежуточную точку.
  3. До каждого действия запишите, что вы ожидаете увидеть после него. Затем выполните действие и сравните ожидание с фактическим результатом.
  4. Для каждого действия отдельно отметьте: какая возможность действия была доступна, какой сигнал помог её обнаружить, что ограничивало выбор и какой feedback сообщил о новом состоянии.
  5. Выберите одно ожидание, которое возникло благодаря прошлому опыту с другими картами или приложениями. Запишите его как гипотезу о ментальной модели, а не как факт о всех пользователях.
Критерии приёмки
  • Разобраны три разных изменения состояния, а не три клика внутри одного действия.
  • Для каждого действия affordance отделён от signifier.
  • Constraint описан как ограничение возможного действия, а не как любая неудобная деталь.
  • Feedback связан с конкретным действием и новым состоянием системы.
  • Хотя бы одно ожидание записано до действия и сравнено с реальным поведением.
  • Гипотеза о ментальной модели не выдана за исследовательский факт.
Показать пример одного фрагмента разбора

Ожидание: после смены вида транспорта варианты маршрута пересчитаются под новый способ передвижения. Наблюдение: после действия меняются маршрут и связанные с ним данные. Это feedback: система показывает, что выбор применён и состояние обновилось.

Гипотеза о ментальной модели: знакомые обозначения способов передвижения могут подсказывать назначение переключателя благодаря опыту с другими картографическими сервисами. Проверять эту гипотезу нужно отдельно.

Практика 2
Выберите рейс по реальным условиям поездки в Авиасейлс
~40–50 минут · браузер · покупка и ввод персональных данных не нужны

В первой практике вы разбирали механику нескольких действий. Здесь масштаб шире: нужно пройти путь принятия решения. Представьте, что вы летите из Москвы в Санкт-Петербург на встречу. Цена важна, но вы не можете выбирать рейс только по минимальной стоимости: есть время прибытия, пересадки и другие условия. Эти условия — критерии вашего выбора, а не constraint интерфейса. Именно работа с несколькими критериями превращает список предложений в задачу принятия решения.

Что сделать
  1. До открытия сервиса сформулируйте пользовательскую задачу без слов «поиск», «фильтр», «кнопка» и других элементов интерфейса. Затем задайте контекст: зачем нужна поездка, когда требуется прибыть и что делает ошибочный выбор дорогим или неудобным.
  2. Разделите критерии выбора на две группы: обязательные, которые нельзя нарушить, и предпочтения, которыми вы готовы пожертвовать. Например, прибытие до определённого времени может быть обязательным критерием, а минимальная цена — предпочтением. Не называйте эти условия constraint: они исходят от вашей задачи, а не ограничивают действие со стороны системы.
  3. Откройте Авиасейлс, задайте маршрут Москва → Санкт-Петербург и любую дату не раньше чем через две недели. Если на выбранную дату слишком мало вариантов для сравнения, возьмите соседнюю дату.
  4. Найдите несколько подходящих вариантов, а затем последовательно сузьте выбор по двум или трём параметрам, которые соответствуют вашим условиям: например, пересадкам, времени вылета или прибытия, багажу, длительности или цене. Эти категории фильтров описаны в официальной справке сервиса.[12]
  5. Перед каждым изменением запишите, как, по вашему ожиданию, должен измениться набор вариантов. После действия зафиксируйте фактический feedback: что стало иначе и по каким признакам вы поняли, что условие применено.
  6. Теперь ослабьте один обязательный критерий или измените одно предпочтение. Сравните выдачу до и после. Опишите новый компромисс: какие варианты появились и почему ваш предпочтительный рейс мог измениться.
  7. Самостоятельно выделите в пройденном пути от четырёх до шести touchpoints. Не считайте каждый новый экран отдельной точкой автоматически: для каждой выбранной точки объясните, какой значимый вопрос человек там решает, какую информацию получает или какое решение принимает. Покупку не совершайте.
  8. Выберите один момент, в котором вы заранее ожидали определённого поведения интерфейса. Запишите «Я ожидал, что…» и «Фактически произошло…». Это проверка собственной ментальной модели, а не оценка продукта по принципу «нравится / не нравится».
  9. Отдельно попробуйте найти constraint интерфейса — место, где сама система делает действие или состояние недоступным либо ограничивает его. Не засчитывайте сюда ваши критерии поездки. Если явного constraint не нашли, так и запишите: честное отсутствие наблюдения лучше придуманного примера.
Разберите три учебные ошибки

Следующие ситуации намеренно придуманы. Они не описывают текущий интерфейс Авиасейлс; задача — потренироваться диагностировать проблему понятиями урока.

  1. После включения условия «без пересадок» несколько секунд ничего не меняется, а затем часть результатов исчезает без промежуточного сигнала. Какого feedback не хватает и какой вопрос остаётся у пользователя во время ожидания?
  2. Дата поездки изменена, но после закрытия календаря в форме остаётся старое значение, хотя поиск будет выполнен по новой дате. Где расходятся состояние системы и ментальная модель человека? Какой feedback должен устранить разрыв?
  3. После применения нескольких критериев вариантов не осталось. Экран сообщает только «Ничего не найдено», но не помогает увидеть, какие условия сузили выбор до нуля. Какой feedback здесь недостаёт? Что системе нужно сделать понятнее, не выбирая решение за пользователя? И почему сами критерии поездки не являются constraint интерфейса?
Критерии приёмки
  • Задача сформулирована как деятельность ради результата, а не как работа с поисковой формой.
  • Контекст объясняет, почему одни параметры важнее других.
  • Есть минимум два обязательных критерия и одно предпочтение; они не выданы за constraint интерфейса.
  • Зафиксированы минимум три изменения выдачи и связанный с ними feedback.
  • Показано, как ослабление одного критерия меняет пространство вариантов и компромисс.
  • Самостоятельно выделены минимум четыре touchpoints, и для каждой объяснено, почему это значимая точка контакта.
  • Одно ожидание из ментальной модели записано до проверки и сопоставлено с фактическим поведением.
  • Пользовательские критерии выбора отделены от constraint интерфейса; найденный constraint подтверждён наблюдением либо честно отмечено, что явный пример не обнаружен.
  • Три учебные ошибки разобраны через понятия урока, без обращения к будущим паттернам и эвристикам.
  • Наблюдаемое поведение сервиса отделено от гипотез и личных предпочтений.
Показать пример начала разбора

Задача: выбрать перелёт, который позволит прибыть к деловой встрече с достаточным запасом времени и не создаст лишних расходов. Контекст: дата поездки фиксирована; опоздание критично; цена важна, но не важнее прибытия вовремя.

Обязательный критерий: прибытие до выбранного предельного времени. Предпочтение: минимальная цена. Если более дешёвый рейс нарушает обязательный критерий, он перестаёт быть подходящим независимо от позиции в выдаче. Это условия задачи человека, а не constraint интерфейса.

1. Человек вышел на незнакомом вокзале, не знает район и должен быть в музее к 15:00. Что из перечисленного точнее всего является пользовательской задачей?
  1. Он не знает, как успеть в музей.
  2. Он хочет оказаться в музее к 15:00.
  3. Он подбирает подходящий путь от вокзала до музея.
  4. Он нажимает кнопку «Маршрут».
Показать ответ

C. «Не знает, как успеть» описывает проблему, «оказаться в музее к 15:00» — цель, а нажатие кнопки — конкретное действие интерфейса. Подбор подходящего пути — деятельность, которую человек выполняет ради цели, то есть пользовательская задача.

2. Один человек заранее строит маршрут дома на ноутбуке, другой строит тот же маршрут на улице с телефона и спешит. Какое понятие лучше всего объясняет, почему требования к взаимодействию могут различаться?
  1. Touchpoint
  2. UI
  3. Affordance
  4. Контекст использования
Показать ответ

D. Меняются устройство, среда, доступное внимание и срочность — то есть условия, в которых выполняется одна и та же задача.

3. Какой вариант лучше подходит как сценарий для проверки сервиса маршрутов, если вы не хотите подсказывать человеку интерфейс?
  1. Нажмите «Маршрут», затем «Общественный транспорт» и выберите первый вариант.
  2. Откройте меню и найдите поле «Куда».
  3. Вы приехали на незнакомый вокзал и должны быть в музее к 15:00. Найдите подходящий путь общественным транспортом.
  4. Проверьте, работает ли кнопка смены транспорта.
Показать ответ

C. Вариант задаёт ситуацию, цель и ограничение по времени, но не раскрывает путь через конкретные элементы интерфейса.

4. В Авиасейлс человек в одном цифровом канале задаёт параметры поездки, изучает результаты, сужает выбор и затем переходит к бронированию.[12] Что этот пример показывает прежде всего?
  1. Каждый новый экран автоматически является отдельным каналом.
  2. Один канал может содержать несколько touchpoints с разными локальными задачами.
  3. Touchpoint существует только при переходе между разными компаниями.
  4. Если задача одна, все этапы должны показывать одинаковую информацию.
Показать ответ

B. Канал может оставаться тем же — например, сайт, — но человек проходит несколько значимых точек контакта: задаёт условия, сравнивает варианты, сужает выбор и принимает следующее решение.

5. Учебная плохая версия карты поддерживает перетаскивание точки маршрута, но на экране ничто не помогает догадаться, что точку можно перетащить. Что точнее всего описывает проблему?
  1. Feedback появляется слишком рано.
  2. Система обязательно нарушает constraint.
  3. Возможность действия существует, но сигнал о ней плохо обнаружим.
  4. Пользовательская задача отсутствует.
Показать ответ

C. Возможность перетаскивания есть — affordance существует. Проблема в обнаружимости: интерфейс недостаточно сигнализирует, что это действие доступно.

6. Учебная форма не позволяет выбрать прошедшую дату при записи на будущий приём. Какое понятие описывает это свойство?
  1. Feedback
  2. Touchpoint
  3. Ментальная модель
  4. Constraint
Показать ответ

D. Система сужает пространство возможного выбора и не допускает состояние, которое не соответствует задаче будущей записи.

7. После перестановки точек маршрут пересчитался, линия и данные изменились. Какую роль выполняет видимый новый результат?
  1. Контекст использования
  2. Feedback
  3. Пользовательская задача
  4. Канал
Показать ответ

B. Новый результат сообщает, что система приняла изменение и обновила состояние, поэтому пользователь понимает последствия своего действия.

8. Какой порядок лучше всего соответствует базовой человеко-ориентированной петле из урока?
  1. Понять контекст → уточнить требования → создать решение → проверить и при необходимости вернуться назад.
  2. Нарисовать UI → придумать задачу → выбрать пользователя → проверить.
  3. Выбрать паттерн → сделать красивый экран → добавить feedback → написать проблему.
  4. Собрать все пожелания → реализовать их → измерить количество функций → закончить.
Показать ответ

A. Сначала нужно понять условия использования и требования, затем предложить решение и оценить его; результат проверки может вернуть команду на более ранний шаг.