ТРИЗ в разговорном дизайне: как находить оптимальные решения при проектировании сложных сценариев
Я проектирую сценарии голосовых помощников и периодически сталкиваюсь с нетривиальными проблемами. Их решение часто связано с издержками — то диалог получается слишком длинным, то ответ становится неестественным, то пользователь сваливается в бесконечный цикл уточнений и переспросов.
Устранить подобные противоречия помогают приёмы ТРИЗ — теории решения изобретательских задач. Вот только есть проблема: эти приёмы были сформулированы для решения инженерных задач, поэтому их использование в дизайне выглядит неуместным — как можно сделать бота пористым, изменить его агрегатное состояние или привести в колебательное движение?
Меня зовут Кирилл Богатов, я дизайнер разговорных продуктов в KODE. В этой статье я на примерах покажу, как адаптировал ТРИЗ для работы над голосовым навыком для Алисы. Материал будет полезен дизайнерам и любителям мозговых штурмов.
Что такое ТРИЗ
ТРИЗ — это теория решения инженерных задач. Её основатель считал, что в основе большинства проблем лежат противоречия — конфликтующие факторы, которые не могут существовать одновременно, а значит, с проблемой нельзя справиться стандартным путём. Применение технологии ТРИЗ помогает находить нестандартные решения и устранять противоречия.
Неорганизованный поиск идей ограничен нашим прошлым опытом и часто сводится к перебору знакомых решений. ТРИЗ решает эту проблему, предлагая строгий алгоритм действий и ряд «отправных точек» для генерации нестандартных идей.
Как использовать ТРИЗ
Я использую ТРИЗ для решения проблем в сценариях разговорных продуктов. Это помогает мне улучшить пользовательский опыт, обойти техническое ограничение, да и просто выйти из ступора. Отдельные методы применяю для оптимизации блок-схем.
Поиск решения с помощью ТРИЗ состоит из четырёх шагов:
Сформулировать проблему.
Определить идеальный конечный результат.
Найти противоречие, мешающее достичь этот результат.
Подобрать принцип ТРИЗ, приближающий к идеальному результату.
Ниже я поэтапно описал каждый шаг на примере реальных ситуаций, с которыми столкнулся во время работы над разговорным навыком для голосовых колонок.
Формулирование задачи
Задача — это то, что нужно сделать. Например, рассмотрим дизайн-задачи для голосового навыка электронного дневника:
Рассказать пользователю о возможностях навыка.
Рассказать ребенку о домашнем задании на всю неделю.
Придумать, как отличить пользователя-ребенка от пользователя-родителя.
Придумать оригинальное сообщение об ошибке.
Признаюсь, я слукавил. Это неудачные примеры задач, так как они отталкиваются от функций системы, а не от пользователя. В итоге мы запираем себя в рамках интерфейса и можем упустить решения, выходящие за его рамки.
Вот как выглядят задачи, ориентированные на пользователя:
Помочь пользователю понять, какие задачи он может решать с помощью навыка, и что ему нужно для этого сказать.
Помочь ребенку оценить, много ли домашки нужно сделать до конца недели и с чего лучше начать.
Сделать общение с навыком комфортным как для детей, так и для родителей.
Помочь пользователю избежать ошибки.
Вывод: думайте о пользователе, а не о функциях.
Идеальный конечный результат
Идеальный конечный результат (ИКР) — это когда результат получается сам собой и без негативных последствий:
Система выполняет функцию без участия пользователя;
Системы нет, а ее функция выполняется;
Функция оказывается вообще не нужна.
Применительно к нашим примерам:
Обучения нет, а пользователь всё знает.
Ребёнок понимает, что ему нужно учить, без перечисления всех заданий. Списка заданий нет, а общая картина — есть.
Возраст и статус пользователя не имеют значения — ответы навыка звучат естественно для всех.
Ошибки нет — система исправила её сама.
К сожалению, ИКР часто остается недостижимым идеалом:
Обучение без обучения не подходит для проектов с большим количеством функций.
Ребёнок всё ещё может попросить озвучить всю домашку за раз.
Родители спрашивают информацию о детях, а дети — о себе. Помощнику приходится говорить о пользователе то в первом, то в третьем лице.
Не все ошибки можно предусмотреть или исправить.
Тем не менее, ИКР задает направление, по которому нужно двигаться. Кроме того, подобный анализ обнажает противоречия, о которых и пойдет речь дальше.
Вывод: идеальный конечный результат — это направление, а не самоцель.
Противоречия
Противоречия — это то, что мешает прийти к идеальному конечному решению. А если оно нереализуемо, то просто к оптимальному. Противоречия обычно формируются по шаблону: «Если X, то Y, но Z».
Если пропустить этап обучения, то пользователю не придётся слушать длинную инструкцию. Но тогда он не сможет узнать о новых возможностях навыка, а старые функции будет вынужден изучать наугад.
Если не озвучивать домашнее задание полностью, то ребенку придётся спрашивать его отдельно по каждому предмету. Но тогда ему будет трудно оценить, какие уроки нужно выучить до конца недели.
Если всегда говорить о ребёнке в третьем лице, то родители сразу поймут, о ком идёт речь. Но если навыком пользуется ребенок, то ответ будет звучать неестественно: «Покажи мои оценки — сегодня Марк получил четвёрку по математике».
Если пользователь произнесет неизвестную команду, то навык выдаст стандартное «Извините, непонятно». Но это не поможет пользователю понять, что он сделал не так: есть ли такая функция вообще, или его просто неправильно услышали.
Противоречия не всегда связаны с идеальным конечным решением. Иногда это просто замкнутый круг, в котором ты внезапно оказываешься в процессе работы.
Вот так, например, ощущался мозговой штурм во время разработки сценария записи к врачу
Приёмы разрешения противоречий
Для разрешения противоречий в ТРИЗ используются особые приёмы. В «классическом варианте» теории их 40 штук — вы можете изучить их по ссылке. Зачастую они выглядят, как инструкции из цеха металлопроката, поэтому я решил адаптировать этот список для решения задач разговорного дизайна. Удалил часть приёмов, связанных с физическими свойствами материалов и добавил несколько идей, которые часто использую в работе: «поставь преграду», «измени уровень детализации» и «используй контекст».
В итоге у меня получилось вот такое ТРИЗ-Бинго:
Наша задача — найти прием, который помог бы разрешить противоречие и приблизиться к идеальному конечному результату. Конечно, не все приёмы ведут к разрешению противоречия. Иногда они помогают решать смежные задачи. Например, не «избавиться от обучения», а «сделать обучение удобным для восприятия на колонках». Так как идеальный результат не всегда достижим, подобные решения могут оказаться более эффективными.
Отмечу, что адаптация приёмов ТРИЗ под конкретную задачу часто похожа на попытки натянуть сову на глобус. Также может показаться, что под одно и то же решение подходит сразу несколько приёмов. Это нормально. Задача ТРИЗ — создать отправную точку для поиска решений. А уж как эта точка будет выглядеть — не так уж и важно.
Вывод: «натянуть сову на глобус» — это приём «Помести одно в другое».
Вернёмся к нашим кейсам и соберём весь алгоритм воедино.
Кейс 1. Рассказать о возможностях
Задача: помочь пользователю понять, какие задачи он может решать с помощью навыка и что ему нужно для этого сказать.
Идеальный конечный результат: Функцииобучения нет, а пользователь всё знает.
Противоречия: Если пропустить этап обучения, то пользователю не придётся слушать длинную инструкцию. Но тогда он не сможет узнать о новых возможностях навыка, а старые функции будет вынужден изучать наугад.
Приёмы ТРИЗ:
Разбей на части. Вместо одного длинного перечисления использовать короткие предложения по три-четыре пункта каждый: «Я умею так и так. Помогу с этим, тем и другим. А ещё я знаю, как сделать так, так и вот так». Время обучения это не сократит, но упростит его восприятие.
Сделай заранее. Как проинформировать пользователя о возможностях навыка до его запуска? Например, выпустить небольшое промо-видео или расписать функции на странице навыка.
Сделай наоборот. Что если не помощник будет рассказывать о своих возможностях, а пользователь будет спрашивать о том, что ему нужно? Этот способ работает в том случае, если пользователь уже сталкивался с похожими функциями — например, на сайте или в мобильном приложении, и у него успели сформироваться ожидания.
Помести одно в другое. Как только пользователь достиг своей цели, «прорекламировать» ему одну из неочевидных возможностей.
Используй элементы другого типа. Вместо того, чтобы использовать голос, вывести на экран карточку со списком доступных функций и примерами команд.
Сделай изменчивым. Во время приветствия рассказывать пользователю о нескольких функциях. При следующем входе рассказать ещё о нескольких.
Объедини похожее. Объединить функции в группы, чтобы дать пользователю общее представление о возможностях навыка, не перечисляя их все. Подготовить уточняющие ответы на вопросы «Что ты можешь рассказать о Х?».
Мы остановились на приёмах «Объедини похожее» и «Разбей на части» — при запуске навыка помощник озвучивает главные темы для общения, а подробную информацию можно получить по команде «Что ты умеешь».
Tак как помимо навыка у пользователей был веб-сервис и мобильное приложение, мы также использовали «Сделай заранее», чтобы оповещать пользователей о новых функциях через другие каналы связи.
Задание для любознательных: определите, какие из приёмов используются в Алисе, Сбере или Тинькоффе.
Кейс 2. Рассказать домашку за неделю
Задача: Помочь ребенку оценить, много ли домашки нужно сделать до конца недели и с чего лучше начать.
Идеальный конечный результат: Домашку не назвали, а ребенок знает, к чему готовиться.
Противоречия: Если не озвучивать домашнее задание полностью, то ребенку придётся спрашивать его отдельно по каждому предмету. Но тогда ему будет трудно оценить, какие уроки нужно выучить до конца недели.
Приёмы ТРИЗ:
Поставь барьер. Вместо того, чтобы сразу озвучивать домашку, пусть помощник просто перечислит все предметы с заданием, а затем предложит выбрать один из предметов.
Сделай прерывным. Если полного перечисления не избежать, пусть помощник перечисляет по одному предмету, каждый раз запрашивая у пользователя готовность слушать дальше.
Перейди в другую плоскость. Так как текст задания может содержать условия задач, ссылки и номера упражнений, можно попробовать сгенерировать страницу со списком заданий и отправить ребенку на телефон через SMS или push-уведомление. Идея странная, но на данном этапе можно предлагать всё, что угодно.
Сделай проще в ущерб чему-то другому. Отказаться от реализации проблемного сценария и предложить посмотреть задание через мобильное приложение.
В итоге мы остановились на приёме «Поставь барьер», так как дополнительный шаг сценария помогал оценить объём домашки и сосредоточиться на конкретном предмете. Однако, мы также использовали приём «Сделай прерывным» на случай, если пользователь всё же захочет прослушать всё домашнее задание за раз.
Кейс 3. Найти общий язык
Задача: сделать общение с навыком комфортным как для детей, так и для родителей.
Идеальный конечный результат: возраст и статус пользователя не имеют значения — ответы навыка звучат естественно для всех.
Противоречия: Если всегда говорить о ребёнке в третьем лице, то родители сразу поймут, о ком идёт речь. Но если навыком пользуется ребенок, то ответ будет звучать неестественно: «Покажи мои оценки — сегодня Марк получил четвёрку по математике».
Приёмы ТРИЗ:
Подложи подушку безопасности. При запуске навыка спрашивать, как зовут текущего пользователя.
Изолируй проблемную часть. Наша проблемная часть — это местоимения «вы», «он», «она» и имена детей. Если ребенок в семье один, его имя можно не уточнять. А вместо личных формулировок использовать обезличенные: «На завтра задали», «Завтра будет пять уроков». Если детей несколько, их всегда нужно называть по имени.
Используй контекст. Под обратной связью здесь понимается любой контекст, который даёт пользовател. Что в его словах может указывать на то, что перед нами ребенок, а не родитель?
Перейди в другую плоскость. Попробуем найти решение не в словах, а в чем-то другом. Попробуем научить помощника распознавать пользователя по голосу.
На данный момент мы остановились на решении «Изолируй проблемную часть», но поглядываем на «Используй контекст». Если говорит ребёнок, то в его речи скорее всего будет местоимение «я», а если родитель — слова «ребенок», «сын» и «дочь». Так мы сможем отличить их друг от друга.
Кейс 4. Справиться с ошибкой
Задача: помочь пользователю избежать ошибки.
Идеальный конечный результат: ошибки нет — система исправила её сама.
Противоречия: Если пользователь произнесет неизвестную команду, то навык выдаст стандартное «Извините, непонятно». Но это не поможет пользователю понять, что он сделал не так: есть ли такая функция вообще, или его просто неправильно услышали.
Приёмы ТРИЗ:
Используй обратную связь. Отзеркалить запрос пользователя, чтобы он понял, правильно ли его услышали: «Блюда «Сладкий рулет», нет в нашей славной таверне. Показать вам меню?».
Используй обратную связь. Снова. Если пользователь столкнулся с ошибкой несколько раз подряд, предложить ему своими словами объяснить, что пошло не так. Результат отправить в службу поддержки.
Обрати вред в пользу. Использовать сообщение об ошибке для обучения пользователя: «В этой теме я пока не сильна. Но зато могу рассказать вам о драконах, нордах и боевых криках. Обращайтесь!».
Автоматизируй. Использовать нейросеть для ответов на все информационные запросы.
Перейди в другую плоскость. Если не справляется робот, пора переводить на оператора! Или же предложить узнать ответ в другом месте.
В наших проектах мы в основном использовали приёмы «Обратная связь» и «Обрати вред в пользу». Ошибки бывают разные, поэтому каждую ситуацию нужно рассматривать отдельно.
Прочие кейсы
В качестве бонуса — ещё несколько примеров использования ТРИЗ. Они не привязаны к конкретному противоречию, но бывают полезными во время работы над сценариями:
Вынеси то, что мешает — во время проектирования блок-схемы сценария изолировать часто встречающиеся ошибки и описать их отдельно, чтобы упростить восприятие схемы.
Сделай неоднородным — использовать разные варианты приветствия для новых и опытных пользователей. Чем дольше пользуешься навыком, тем короче приветствие.
Сделай изменчивым — использовать разные формулировки для часто повторяющихся ответов, чтобы добавить динамики и поддержать иллюзию естественного общения.
Сделай универсальным — использовать один и тот же шаблон ответа для разных ситуаций.
Подложи подушку безопасности — использовать закрытые вопросы, чтобы пользователю было проще сформулировать свой ответ.
Создай противовес — если мы ожидаем от пользователя ответ «да», нужно учесть, что он может сказать и «нет».
Измени уровень детализации — использовать примеры вместо подробных объяснений; убрать часть несущественной информации, чтобы ускорить взаимодействие или избежать сложных формулировок;
Измени скорость — увеличить паузы между предложениями, чтобы голосовой помощник смог интонационно разделить две соседние мысли.
Поставь барьер — использовать звук, чтобы разделить два соседних предложения, не создавая неестественной паузы.
Используй элементы другого типа — использовать кнопки, саджесты и карточки, чтобы структурировать информацию и улучшить взаимодействие на экране.
Приглашаю коллег-дизайнеров дополнить список личными примерами, а сторонников «классического» ТРИЗ — к конструктивной критике.