Перейти к содержанию

Ошибки и нетипичные ситуации

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

Три уровня защиты

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

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

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

Ошибка не должна сводить на нет все усилия

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

Сохранение черновика на устройстве, повтор запроса после возобновления сеанса и сохранение состояния формы при ошибке валидации - простые технические решения. Они устраняют самую неприятную часть любой ошибки.

Ответственность сформулирована честно

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