Сколько стоят сообщения об ошибках?
Так или иначе вся моя рабочая деятельность связана с анализом пользовательского опыта. Недавно меня посетила интересная мысль о том, что каждое сообщение об ошибке, которое отображается в интерфейсе, имеет стоимость.
Понимая это, можно рассчитать стоимость обработчика ошибки и стоимость изменения интерфейса для ее исключения. Сравнив эти стоимости можно понять насколько сложным допустимо делать обработчик ошибки или может дешевле будет ее исключить.
Попробую разобрать эту идею на трех достаточно приземленных примерах.
Сообщения об ошибках в полях ввода
Начнем с простого примера проверки текстовых полей в формах ввода. Опыт работы привел меня к следующему принципу по обработке текстовых полей.
Делайте поле ввода таким, чтобы ошибки при проверке вообще не возникало. Если ошибку нельзя исключить, то текст ошибки должен призывать пользователя к действию, которое исправит проблему.
Лучшим вариантом будет написать комментарий с ограничениями под полем ввода и исправлять введенное значение автоматически. В поле где вводится только числовое значение ограниченного диапазона, делайте запрет ввода буквенных значений и лишних знаков. В случае мобильного устройства нужно еще включить клавиатуру с цифрами.
Исключение сообщения об ошибке
Например, возле поле ввода температуры в градусах Цельсия следует написать комментарий:
Если пользователь ввел значение −300 °C, после снятия фокуса нужно превратить его в ближайшее допустимое: −273,15 °C.
Неверный пароль
Некоторые ошибки нельзя исключить. Когда пользователь ввел неверный пароль при входе в приложение текст ошибки должен предлагать варианты решения.
Неверный пароль. Повторите попытку или нажмите «Забыли пароль?», чтобы сбросить его.
Требования к паролю
При регистрации пользователя пишите требования к паролю прямо в комментарии к полю ввода.
Пароль должен содержать не менее 8 знаков, включать буквы и цифры
А при не соблюдении этих требований лучшим решением будет просто повторить их еще раз после снятия фокуса, только в виде ошибки.
Пустые поля
Когда поле нельзя оставить пустым пишите текст, призывающий к правильному действию.
Такие проверки проводятся перед отправкой формы или при снятии фокуса с текстового поля. Сводите количество обязательных полей к минимуму.
Избегайте неопределенных сообщений типа:
Удобный интерфейс складывается из таких вот мелочей. Каждое уведомление об ошибке портит настроение от пользовательского опыта, поэтому при регистрации на сайте должно быть минимально возможное количество полей обязательных для заполнения.
Если на форме регистрации вашего сайта пользователя встретит большое количество сообщений об ошибках, то он скорее всего и не зарегистрируется. Потерянные пользователи и будут стоимостью сообщения об ошибке. А вот исключить их или сделать достойный обработчик будет не так уж и дорого на этом фоне — пара строчек кода.
Сообщения об ошибках в автомобиле
Тема сообщений об ошибках обширная и разносторонняя. Как мы выяснили сообщения об ошибках лучше исключать, но по объективным причинам не все ошибки исключаются.
Попробуем взглянуть на этот вопрос глобальнее. В автомобиле устанавливают индикатор давления в шинах. В теории вывод подобного сообщения об ошибке можно исключить, но для этого потребуется изобрести шину, которую не нужно накачивать воздухом. При этом желательно, чтобы это изобретение получилось дешевле классической бескамерной шины. Тогда новую шину можно было бы внедрять в автомобили и убирать индикатор давления. При текущем уровне развития науки и производства это не выполнимо.
Сообщения об ошибках требуют дополнительных затрат. Чтобы выводить ошибку о низком давлении, нужны как минимум датчики давления в каждое колесо, которые стоят денег. Поэтому сравнивая стоимость внедрения нового изобретения с обычной шиной, следует учитывать затраты на сообщения об ошибках.
Сообщения об ошибках в нашей программе
Уже 15 лет я участвую в разработке программы для моделирования вентиляции горных предприятий, которая называется Аэросеть.
Первые программы для моделирования вентиляции выдавали по сегодняшним меркам странные ошибки. Например, что в какой-то выработке не задано аэродинамическое сопротивление, или что есть тупиковые выработки, которые невозможно рассчитать.
Когда я только начал работать в институте, мне казалось очевидным, что такие ошибки можно попросту исключить и повысить удобство использования программы. Если задавать параметры для каждой выработки по умолчанию, то сопротивление будет рассчитываться автоматически. Тупиковые выработки можно принудительно не отправлять в алгоритм расчета... но вот, что интересно. Очевидные тогда вещи не так уж просто разглядеть на новом этапе развития.
В нашей программе присутствует инструмент для проверки моделей, который автоматически находит допущенные пользователем ошибки. Он содержит проверку угла наклона выработок, идея которой в том, что на горных предприятиях редко встречаются выработки с углом наклона от 15 до 85 градусов. Возможно такая выработка нарисована некорректно. Это происходит когда при рисовании вертикальной выработки одно из сопряжений немного сместилось в сторону. Чтобы исправлять такие ошибки в программу добавили функционал выравнивания вертикальной выработки.
Какая же будет стоимость такого обработчика ошибки для разработчика? Дело в том, что каждое сообщение об ошибке — это дополнительная нагрузка на техническую поддержку и обучение пользователей, разработка проверок и функционала для исправления ошибки, запись видео и написание документации. По сути это финансовые затраты, которых можно было бы избежать, если сделать режим фиксации построения выработки только вертикальном направлении.
Взглянув на инструмент проверки моделей под этим ракурсом, я увидел сколько работы можно было и не делать, если бы такая мысль пришла мне пораньше.