В 1990 году Якоб Нильсен сформулировал 10 эвристик юзабилити для оценки пользовательских интерфейсов. Эти правила прошли проверку временем, и теперь у дизайнеров есть быстрый и простой способ оценки юзабилити интерфейсов программного обеспечения с опорой на универсальные принципы дизайна.
Стандарты и передовые методы создания ботов будут продолжать появляться. Но пока здесь наблюдается некий хаос и отсутствие единых стандартов. Применимы ли эвристики Нильсена к ботам? Давайте посмотрим, какие из них не утратили своей актуальности, и проверим их на примере трех популярных ботов.
Десять эвристик Нильсена
1) Осведомленность о состоянии системы.Пользователи всегда должны знать, что на данный момент происходит с системой. Для этого необходима полноценная и быстрая обратная связь.
Рабочая среда бота – это диалог, и он регулируется следующими основополагающими факторами:
1. Быстрые диалоги. Сообщения – это недорогое, разовое средство коммуникации, со временем они теряют свою актуальность. Сообщение, отправленное день назад становится менее важным, чем сообщение, полученное несколько секунд назад.
2. Старые сообщения не актуальны. Нет никакой гарантии, что более старые сообщения точно отражают текущее состояние системы. Чем старше сообщение, тем меньше уверенности в его актуальности.
3. Ограниченное пространство. Количество видимых знаков жестко ограничено, к тому же есть еще и более гибкие ограничения касательно количества слов, которые пользователь может понять и осмыслить.
Так как сообщения недолговечны, мы должны постоянно информировать пользователя о том, что происходит, но при этом, не перегружать его информацией. Как достичь этой золотой середины?
Вот что предлагаю я: система должна разрешить пользователю запрашивать текущую информацию посредством быстрой обратной связи. Если мы предоставим пользователю право самому запрашивать информацию о статусе системы, то мы сможем избежать перегрузки потенциально лишней информацией.
Кроме того, хорошая и быстрая обратная связь – это нечто само собой разумеющееся. Боты должны быстро реагировать, и если сетевой запрос занимает некоторое время, то пользователь не должен просто сидеть и ждать. Отличная идея – это значок, который показывает собеседнику, что вы отвечаете. И такие фразы как «мы работаем над этим … дайте нам пару минут» говорят о том, что вы заботитесь о своих пользователях.
2) Схожесть системы с реальным миром. Система должна общаться с пользователем на понятном ему языке. Лучше использовать слова, фразы и понятия, с которыми пользователь знаком, а не какие-то узкоспециализированные термины. Все должно происходить, как и в реальном мире, где информация появляется естественно и логично.
Научиться говорить на языке пользователя можно только начав это делать.
Проблема в том, что понять язык – действительно, непростая задача, и ботам не хватит на это интеллекта, по крайней мере, в краткосрочной перспективе.
Чат-боты, на самом деле, не очень умеют общаться. Даже те, которые созданы по последним технологиям могут понимать только ограниченный набор фраз и применять ограниченное число ответов. На данный момент, разговор с ботом – это общение с машиной. Поэтому, разговорная коммерция пока что дает ложные обещания. Хотя, возможно, проблема вовсе не в технологиях, а в обещаниях. – Кейд Метц, Wired
Самое главное – хорошо знать свою аудиторию. Некоторые пользователи оценят стиль взаимодействия через командную строку, а другие ожидают, что с ними будут разговаривать на нормальном человеческом языке. Другие предпочитают общаться сленгом и все сокращать. Боты должны создаваться с четким пониманием целевой аудитории.
3) Свобода действий и контроль. Пользователи часто выбирают некоторые функции системы по ошибке, и им необходима кнопка «срочного выхода», чтобы вернуть прежнее состояние системы, не вступая в длительный диалог. То есть, обязательно обеспечьте пользователю возможность отмены и восстановления.
Общаясь в реальной жизни, мы не можем отменить или восстановить сказанное (очень жаль), но при разговоре с ботом это возможно.
Мы должны понимать, что проблема «толстого пальца» приводит к разного рода опечаткам и неправильно понятым сообщениям. Диалоги с ботами должны иметь «запасной выход», и пользователь должен знать, что у него есть возможность выбрать другое действие на любой стадии взаимодействия.
4) Единообразие и стандарты. Пользователь не должен сидеть и гадать, означают ли разные слова, ситуации и действия одно и тоже. Придерживайтесь общепринятых правил внутри платформы.
Правила для платформ пока еще находятся в состоянии разработки, но мы должны понимать эту эвристику так, что боты должны соблюдать внутреннее единообразие: бот должен придерживаться единого стиля в языке, будь то естественный язык, командная строка или что-то среднее.
В случае с командной строкой важно делать различия между ключевыми словами и взаимодействиями на естественном языке. Для нашего бота Emojinary мы решили выделять команды заглавными буквами, например, ПОМОЩЬ или ДАЛЕЕ.
5) Предотвращение ошибок. Лучше хороших сообщений об ошибках может быть только продуманный дизайн, который, в первую очередь, предотвратит проблему. Либо устраните условия, которые приводят к ошибкам, либо выявляйте ошибки и предоставьте пользователю опцию подтверждения, прежде чем он совершит действие.
Получение подтверждения важно при любом типе взаимодействия. Дизайнеры должны разрабатывать взаимодействия, помня о том, что ошибки появляются быстро и часто, а у пользователя в таком случае не должно пропадать ощущение, что он общается с человеком. Во время любого критического момента, спрашивайте подтверждение действия у пользователя.
6) На виду, а не по памяти. Не загружайте память пользователя, пусть все объекты, действия и опции будут на виду. Пользователь не должен запоминать информацию, перемещаясь по системе. Все инструкции к системе должны быть видны или должны легко извлекаться при необходимости.
Мы провели небольшое исследование и поняли, что пользователи очень мало читают или не читают вообще. Это вовсе не секрет для тех, кто давно занимается созданием сайтов. Но по иронии взаимодействие бота с пользователем осуществляется посредством текста.
Когда мы писали своего бота Emojinary, мы проверяли юзабилити, пытаясь понять, почему мы не можем удержать пользователей уже на стадии онбординга. Как выяснилось, пользователи прочитывали первое сообщение, а потом отвлекались на что-то постороннее. Они пропускали все остальные сообщения. Когда мы просим их перечитать сообщения более внимательно, вся их рассеянность испаряется.
Это наглядный пример неудачной разработки бота. Если пользователи не читают и не понимают наши сообщения, то это только наша вина.
И снова нам нужно достичь золотой середины. С одной стороны, мы не хотим перегружать пользователя целой стеной сплошного текста, с другой, мы должны рассказать об основных опциях на каждом этапе взаимодействия.
В Facebook нашли отличное решение и создали структурированные сообщения. Они избавились от любой неопределенности во время взаимодействия за счет скрытого набора опций с возможностью выбора. Однако, нельзя слепо полагаться на структурированные сообщения, почему, я расскажу в следующем разделе.
7) Гибкость и эффективность. Ускорители, которых не заметит новичок, могут значительно оптимизировать взаимодействие опытного пользователя, поэтому система должна быть удобной для пользователей любого уровня. Пусть у пользователей будет возможность подстроить под себя часто совершаемые действия.
Многие боты, написанные для Slack, можно вызвать при помощи примерно таких команд:
/giphy hotdog
И на канал будет загружена соответствующая гифка.
Боты имеют огромный потенциал для предоставления подобных ускорителей продвинутым пользователям. Пока один пользователь просит: «Привет, Giphybot, можешь найти картинку с хотдогом?», другой пользователь сразу перейдет к сути дела и задаст команду.
Для меня остается открытым вопрос: как лучше всего помочь пользователям обнаружить такие волшебные действия? Как сделать их взаимодействие более продвинутым, чтобы они не обращались каждый раз к вкладке «помощь»?
8) Эстетика и минимализм в дизайне. В диалогах не должно быть лишней информации. Любая лишняя информация в диалоге будет конкурировать с нужной информацией, делая ее менее заметной для пользователя.
Судя по своему опыту, новички абсолютно всегда разговаривают с ботом как с человеком:
«Привет. Как дела?»
Как боту отвечать на запросы, не связанные с его основной компетенцией? Должны ли они придерживаться строго общения по делу или могут допускать некоторую фривольность? Если я – бот, и занимаюсь продажей обуви, а вы спрашиваете меня о моей жизни, нужно ли мне поддержать этот разговор? Или мне следует мягко направить разговор в нужное русло? И если да, то в какой мере я могу подтолкнуть вас к разговору об обуви? Если я могу подшучивать над пользователями, то до какой степени?
Все это составляет личность бота. Если вы создадите приятную личность, то это и будет отличать вашего успешного бота от всех остальных.
Представьте, что вы подбираете себе пару обуви на Zappos. Бот дружелюбен, разговорчив и очень услужлив. Даже и не хочется переходить сразу к делу. Мне хочется получше узнать бота Zappos. И наоборот, если я разговариваю с ботом адвоката, я ожидаю более профессионального диалога, потому что, адвокаты, вероятно, выставят мне счет за этот разговор (шучу!)
Есть разница между содержанием (информация) и средой (личность). Содержание может быть минимальным, но не обязательно ограничивать личность. Если я интересуюсь, как у вас дела, то жду, что вы мне ответите. Боты, которые не могут сделать приятное пользователю, неизбежно его разочаровывают, и уже можно не рассчитывать, что диалог пройдет на должном уровне.
9) Выявить, понять и исправить ошибки. Сообщения об ошибках должны быть написаны простым языком (никаких кодов), четко указывать на проблему и предлагать конструктивное решение.
Представляете, такое еще существует! Если ваш бот выдает отвратительную фразу «ошибка 500», вы все делаете неправильно.
10) Справочные материалы и документы. Было бы, конечно, неплохо, если бы система работала без документации, однако иногда в ней появляется необходимость, так же, как и в справочных материалах. У пользователя не должно возникнуть никаких проблем при поиске любой полезной информации, она должна отвечать задачам пользователя, указывать на конкретные шаги, которые нужно предпринять и не быть слишком объемной.
И такое тоже все еще существует. Справочные материалы и документы должны быть доступны непосредственно через бот. Полагаю, что со временем будут разработаны единые стандарты, касательно того, как лучшего всего получать документацию, а пока, просто сделайте так, чтобы пользователь смог получить нужную ему информацию просто и быстро.
Актуальные эвристики
Некоторые эвристики тесно связаны друг с другом. Например, «Осведомленность о состоянии системы» и «На виду, а не по памяти». Обе эвристики предполагают соблюдение баланса между объемом информации и ее достаточностью, чтобы пользователь смог сделать более осознанный выбор. «Свобода действий и контроль» и «Предотвращение ошибок» – эти эвристики предлагают одинаковое решение, особенно, касательно опций подтверждения и отмены. Наконец, эвристики «Схожесть системы с реальным миром» и «Выявить, понять и исправить ошибки» подразумевают единство в языке.
Таким образом, у нас осталось шесть актуальных эвристик:
1. «Осведомленность о состоянии системы» и «На виду, а не по памяти». Информируйте пользователя о состоянии системы и возможных опциях в критические моменты, дайте пользователю возможность самому запрашивать дополнительную информацию в любой момент.
2. «Схожесть системы с реальным миром» и «Выявить, понять и исправить ошибки». Узнайте лучше свою аудиторию. Не меняйте стиль общения.
3. «Свобода действий и контроль» и «Предотвращение ошибок». В критические моменты, получите подтверждение от пользователя и дайте ему возможность отменять свои действия в случае с многошаговым взаимодействием.
4. «Гибкость и эффективность». Предоставьте ускорители для продвинутых пользователей.
5. «Единообразие и стандарты» и «Эстетика и минимализм в дизайне». Соблюдайте единство в стиле общения и личности/голосе бота.
6. «Справочные материалы и документация». Полезная информация должна содержаться в самом боте.
Давайте рассмотрим самых популярных ботов и посмотрим, как они справляются с этими задачами.
Я хочу сравнить именно эти три бота, так как они первыми появились в Facebook Messenger:
• Poncho
• CNN
• 1-800-Flowers
Poncho
Poncho сразу же располагает к себе тем, что дает намек, что нужно делать, а именно, говорить о погоде.
Ну что же, звучит неплохо, давай поговорим об этом, Poncho!
Пока складывается замечательный диалог. Вкратце перечислим плюсы:
• Нет никаких недопониманий относительно того, что нужно делать или говорить
• Poncho подтвердил предоставленную информацию (мое местоположение)
• Poncho дает мне возможность «отмены», то есть я могу отредактировать предоставленную информацию.
Давайте посмотрим, что будет, если я скажу «нет»:
Достойно, хотя мне не очень нравится, что Poncho задает полностью идентичные вопросы (Это правильный город?). А я почти забыл, что разговариваю с ботом, больше не буду таким простодушным.
Ладно, теперь буду отвечать «да».
Я узнал прогноз погоды и получил следующий призыв к действию. Пока я не хочу получать уведомления, но спасибо, что спросил, Poncho.
Проделана отличная работа по предоставлению встроенной документации, и Poncho даже заставил меня обратиться за помощью. Замечательно. Это отличный пример структурированных сообщений в Facebook для устранения любой возможной двусмысленности.
Давайте посмотрим, насколько наглядно представлена информация:
Коротко и ясно
Poncho также отлично справляется с подшучиваниями, а когда вы доходите до определенного предела, он возвращает вас обратно к сути разговора:
Вердикт:
1. «Осведомленность о состоянии системы» и «На виду, а не по памяти». Отвечает на запросы, касающиеся статуса системы. Предоставляет структурированные сообщения, чтобы направить пользователя.
2. «Схожесть системы с реальным миром» и «Выявить, понять и исправить ошибки». Poncho говорит на понятном мне языке.
3. «Свобода действий и контроль» и «Предотвращение ошибок». Я допустил «ошибку», когда вводил данные о своем местоположении, и Poncho разрешил мне ее исправить. Отлично.
4. «Гибкость и эффективность». Если я вернусь, Poncho запомнит мое местоположение, и мне не придется лишний раз нажимать на клавиши.
5. «Единообразие и стандарты» и «Эстетика и минимализм в дизайне». Poncho – довольно прямолинейный бот, структурированные сообщения: ясные и четкие. С Poncho почти всегда очень приятно поболтать.
1. «Справочные материалы и документация». Отличный пример того, когда все сделано, как нужно.
Poncho проделал великолепную работу.
CNN
Следующий бот — CNN.
CNN правильно применяет структурированные сообщения. Однако, здесь уже не складывается ощущение диалога, скорее, это похоже на командную строку.
Хотя бот CNN, определенно, не тот, с кем я бы хотел пропустить по кружечке пива, он справляется со своей работой, когда ему нужно направить мои действия. Я больше склонен считать этого бота простой командной строкой, нежели собеседником.
Я получаю новости, но не совсем понимаю, что я еще могу здесь сделать. По-моему, этот бот слишком зациклен на взаимодействии через структурные сообщения. Запрос «Спроси CNN» тоже ничего не прояснил.
Этот бот выполняет свою работу, но он какой-то заурядный. Мне проще зайти на веб-сайт.
Вердикт
1. «Осведомленность о состоянии системы» и «На виду, а не по памяти». Структурированные сообщения очень четкие, но у бота не получается приспособиться к обычным сообщениям. Местами призыв к действию не совсем понятен.
2. «Схожесть системы с реальным миром» и «Выявить, понять и исправить ошибки». Практически нет возможности взаимодействовать за пределами структурированных сообщений.
3. «Свобода действий и контроль» и «Предотвращение ошибок». Ошибку сделать практически невозможно.
4. «Гибкость и эффективность». Бот CNN вынуждает обращаться с ним как с командной строкой, для него нет разницы, новичок вы или продвинутый пользователь.
5. «Единообразие и стандарты» и «Эстетика и минимализм в дизайне». Соблюдается постоянство, но нет индивидуальности. Это напоминает просмотр ленты в мессенджере.
6. «Справочные материалы и документация». Есть встроенная помощь, хотя складывается ощущение, что чего-то не хватает. Например, для чего нужна кнопка «Спроси CNN»?
1-800-Flowers
Диалог начинается со структурного сообщения. Честно говоря, нет никакого желания вести с разговор с этим ботом. Давайте посмотрим, что будет, если нажать кнопку «Поговорить с поддержкой».
Черт! Я не хочу разговаривать с человеком. Отмена, отмена!
Как ни странно, но это хороший пример отмены действия.
Здесь также хорошо используется подтверждение действия.
Это взаимодействие мне не понравилось. Пользователи вынуждены отвечать на структурированные сообщения, возникает ощущение, что нас в чем-то ограничивают. Однако, все же неплохо, что они смогли побудить меня обратиться за помощью.
Я оставил бота в покое на некоторое время, и вот что произошло дальше:
А вот это приятно!
Вердикт
1. «Осведомленность о состоянии системы» и «На виду, а не по памяти». Эффективное использование структурированных сообщений с целью направить действия пользователя.
2. «Схожесть системы с реальным миром» и «Выявить, понять и исправить ошибки». Здесь провал, особенно в конце: когда я попытался ввести точную дату, бот завис.
3. «Свобода действий и контроль» и «Предотвращение ошибок». Проделана отличная работа, я смог вернуться и изменить свой заказ.
4. «Гибкость и эффективность». Приятно, что люди заменяют бота в критические моменты. Новички оценят такой индивидуальный подход, а продвинутые пользователи могут без лишних слов перейти к заказу.
5. «Единообразие и стандарты» и «Эстетика и минимализм в дизайне». Такое чувство, что я общаюсь с веб-страницей в мессенджере.
6. «Справочные материалы и документация». Хорошая встроенная помощь.
Вывод
Нильсен проделал отличную работу. Но я думаю, что для ботов можно вывести еще несколько подобных эвристик.
Мы убедились, что все три бота неплохо справились со своей задачей, дали возможность предотвратить и исправить ошибки, и все три бота предоставляют встроенную помощь. Это в значительной степени способствует формированию позитивного пользовательского опыта.
Приятное и убедительное общение – это главная отличительная черта ботов, которые умеют адаптироваться, в отличие от ботов, которые на это не способны. Эвристики Нильсена по-прежнему актуальны и служат отправной точкой для оценки юзабилити ботов.