UX для аналитиков

Когнитивное трение

Коротко Когнитивное трение — это сопротивление, с которым сталкивается ум человека, когда правила системы всё время меняются вместе с её состоянием. Алан Купер использует это понятие, чтобы объяснить, почему программы раздражают людей, даже когда ими физически легко управлять, и почему кто-то должен сознательно проектировать поведение программ.

По материалам: А. Купер, «Психбольница в руках пациентов», гл. 2.

На этой странице

Главные идеи#

Что это#

Термин Купера — когнитивное трение (cognitive friction; в русском издании книги — «когнитивное сопротивление») — описывает усилие, которое ум тратит, чтобы разобраться в сложном наборе правил, меняющихся вместе с ситуацией. Как и физическое трение, в малых количествах оно безвредно, но с ростом его цена резко увеличивается. В отличие от физического трения, его нельзя измерить инженерными инструментами. Оно вполне реально — просто не поддаётся такому измерению.

Источник: элементы управления, смысл которых зависит от состояния#

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

Его мысль об эргономике: специалисты традиционно оптимизируют устройство под глаза и пальцы пользователя (видна ли кнопка, можно ли до неё дотянуться), а не под его ум. В результате появляются продукты, физически удобные, но умственно утомительные. Крайним случаем Купер считает даже гиперссылку: её единственное назначение — куда-то вас перенести, а содержимое на другом конце может меняться независимо от ссылки.

Проектирование взаимодействия и проектирование программы#

Купер утверждает, что любое программирование включает проектные решения, и проводит границу по тому, кого они затрагивают:

  • Проектирование взаимодействия (interaction design) охватывает решения, которые напрямую влияют на конечного пользователя: поведение, назначение, информацию и представление.
  • Проектирование программы (program design) охватывает всё остальное, например язык и внутреннюю архитектуру. Оно становится вопросом взаимодействия, когда технический выбор меняет что-то заметное пользователю, например время отклика.

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

Недостаточное проектирование — тоже проектирование#

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

Как применять#

Для бизнес-аналитика главный урок — последний: если ваши требования оставляют поведение открытым, его спроектирует кто-то другой.

  1. Описывайте поведение, а не только данные. Для каждой функции, с которой работает пользователь, укажите, что он видит, что делает каждый элемент управления и что происходит при успехе и при неудаче.
  2. Разберите открытые решения. Отделите решения о взаимодействии, которым нужны мнение пользователей и проверка по персонам, от решений о программе, которые может принять команда. У каждого решения о взаимодействии должен быть ответственный.
  3. Ищите элементы управления, зависящие от состояния. В прототипах ищите кнопки, клавиши или жесты, действие которых зависит от состояния, за которым пользователь может не следить.
  4. Записывайте заметную пользователю производительность как требования. Если время отклика меняет то, как люди работают, это требование к взаимодействию, а не техническая деталь.
  5. Планируйте проектирование взаимодействия до разработки. Не соглашайтесь на план, где «интерфейс» — последний этап.

Чек-лист для ревью#

  • Каждый элемент управления делает что-то одно — или состояние, которое меняет его смысл, невозможно не заметить.
  • У каждого видимого пользователю поведения есть записанное решение и ответственный.
  • Время отклика, которое заметят пользователи, указано и проверяемо.
  • Ссылки и элементы навигации сообщают, куда ведут.
  • Никакое поведение не выбрано только потому, что его проще всего реализовать.

Пример#

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

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

Подводные камни#

  • Рассчитывать, что разработчики «сделают интуитивно понятно» → запишите поведение.
  • Судить об удобстве использования только по числу кликов и размеру кнопок → учитывайте и состояния, которые пользователь должен держать в голове.
  • Считать интерфейс слоем, который добавят позже → планируйте проектирование взаимодействия вместе с требованиями.

Источники и что почитать#

  • A. Cooper. The Inmates Are Running the Asylum. Sams, 1999. Рус. изд.: А. Купер. Психбольница в руках пациентов. СПб.: Символ-Плюс, 2004. Гл. 2.