avl (avl) wrote,
avl
avl

Categories:

66. Предотвращайте ошибки

(В оригинале - Prevent Errors)

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

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

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

Ошибки форматирования – еще одна общая проблема. Например, если пользователю предоставлено текстовое поле для ввода даты, и он вводит туда «29 июля 2012 года», то не очень хорошо не принимать этот ввод только потому, что он не в формате «дд\мм\гггг». А еще хуже отвергать «29 \ 03 \ 2012» из-за лишних пробелов – пользователю будет сложно понять, в чем причина, ведь дата вводится в запрашиваемом формате.

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

Еще один способ избежать ошибок форматирования – подсказать пользователю, чего от него ждут. Например, указав ожидаемый формат «дд\мм\гггг». Еще одной подсказкой может быть разделение поля ввода на три отдельных поля длиной в два, два и четыре символа.

Подсказки отличаются от инструкций. Подсказки появляются в момент взаимодействия, инструкции – перед ним. Подсказки предоставляют контекст, инструкции диктуют поведение.

В большинстве случаев инструкции неэффективны в предотвращении ошибок. Пользователь ожидает, что интерфейс будет работать привычным для него образом (Ведь каждый знает, что значит «29 июля 2012 года», не так ли?). Поэтому инструкции никто не читает. А подсказки подталкивают пользователя к правильному варианту.

Еще один способ предотвращения ошибок – это предложить вариант по умолчанию. Например, пользователь чаще всего вводит даты «сегодня», «завтра», «день рождения», «дедлайн» или дату, вводимую в эту форму в прошлый раз. В зависимости от контекста можно с высокой вероятностью выбрать правильный вариант по умолчанию.

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

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

Большинство ошибок – систематические, результат непонимания между пользователем и программным обеспечением. Понимание того, как пользователь думает, интерпретирует информацию, принимает решения и вводит данные, поможет вам отладить коммуникацию между вашим программным обеспечением и пользователем.

Автор оригинала - Giles Colborne

Перевод мой, при использовании ссылка на мой живой журнал обязательна!
Tags: 97_things_programmer_should_know
Subscribe

  • Про интерфейсы

    Была у нас в офисе микроволновка. Старая, самая простая, вот такая: Весь интерфейс — два поворотных регулятора. Один задает…

  • О ценности и цене

    Давно не писал сюда. Все же жж больше для лонгридов подходит, чем фб, где написанное потом фиг найдешь. Начну издалека. Лет 15 назад я впервые…

  • Первопричины политических взглядов

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

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments