Интерфейс.Новые направления в проектировании компьютерных систем

       

Письмо от одного пользователя


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

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

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

    Использование клавиши <Tab> вместо клавиш со стрелками для перемещения по полям также создавало проблемы. Два поля на экране допускали свободное форматирование текста. В этих полях пользователь мог применять клавишу <Tab> для создания отступов или списков, и поэтому клавиша <Tab>


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

    Эти примеры иллюстрируют две распространенные проблемы в интерфейсах. Первая связана с использованием клавиши <Return> для разделения полей. Эта привычка уходит далеко в то время, когда несколько десятков лет назад в прикладных системах, работающих в режиме разделения времени, а также в приложениях для микрокомпьютеров использовались ограничения, принятые для телетайпных машин.
    Вторая проблема связана с функциональной перегрузкой клавиш <Return> и <Tab>, в результате которой в полях, допускающих свободный ввод текста, они означают одно, а в более коротких полях — другое.

  • «Когда выбирается опция поиска, курсор должен появляться в соответствующем текстовом окне так, чтобы пользователь мог начать вводить информацию без необходимости щелкать мышью внутри поля или нажимать на кнопку Tab». Это частный случай следующего общего принципа: если пользователь в следующий момент может выполнить только одно действие, пусть это действие выполнит компьютер.
  • «Ненужные диалоговые окна, наверное, являются главной причиной бесполезной траты времени и вызывают раздражение у пользователя». Речь идет о тех диалоговых окнах, которые предназначены для сообщения пользователю о том, что произошло, и для своего закрытия требующие нажатия кнопки мыши или клавиши <Enter>. Другого выбора не остается — продолжить можно, только лишь кликнув по окну. Это другой частный случай приведенного выше принципа (если пользователь далее может выполнить только одно-единственное действие, пусть его выполнит компьютер). Как пишет автор в другом месте своего письма: «Важно, чтобы всякий раз, когда пользователь должен взаимодействовать с каким-то диалоговым окном, это взаимодействие давало полезный результат». Это можно обобщить до следующего утверждения: каждый раз, когда пользователь должен вступить во взаимодействие с компьютером, это взаимодействие должно предполагать получение полезного результата. Перемещение к следующему шагу в работе само по себе не является полезным результатом. Далее автор письма продолжает сетовать, что одно из диалоговых окон просто «сообщает пользователю, что элемент уже введен в список» в том случае, когда название или номер существующего предмета вводится в окно для новых элементов. Чтобы продолжить, вам требуется убрать это диалоговое окно. Вместо этого автор предложил, чтобы появлялись три кнопки: оставить элемент, удалить элемент из списка или перейти к его редактированию.


    Хотя вариант автора является лучшим, чем изначальный, мы все же можем предложить еще более лучшую схему. Описанная проблема отчасти связана с идеей, что ввод нового элемента отличается от редактирования или удаления элементов. Предложим более простой метод: пользователь вызывает форму и вводит дескриптор элемента. Если он является новым, элемент вводится, и пользователь продолжает работу, как предполагалось. Если элемент уже имеется в списке, данные о нем сразу же вызываются, чтобы пользователь мог увидеть, что элемент уже существует. После этого пользователь может редактировать их. Естественно, удаление — это один из способов редактирования.
  • Автор отмечает, что экран очень быстро заполняется одинаковыми пиктограммами, которые можно различить только по именам, указанным внизу каждой из них. Он предложил, чтобы пиктограммы различались между собой в большей степени, поскольку «среда, по сути, является визуальной». Автор письма прав в том, что если экран заполнен множеством одинаковых пиктограмм, то от пиктограмм мало толку — они только занимают место. Он предложил, чтобы использовались четыре пиктограммы. Однако следует заметить, что если будут использоваться только четыре пиктограммы, на экране все равно будет слишком много одинаковых пиктограмм. Решение заключается в том, чтобы понять, что пиктограммы на самом деле можно не использовать. При создании графических интерфейсов мы должны помнить, что текст тоже может быть визуальной подсказкой. Текст — это очень сильная подсказка с довольно подробным содержанием, которое мы все можем легко понять (см. раздел 6.3).
  • «Если вы открыли окно с формой для заказа на покупку и хотите внести в него какой-то элемент, перед вами открывается диалоговое окно со следующим содержанием: «Данное приложение не может работать одновременно с окном «Создать/обновить бланк заказа». Естественной реакцией пользователя может быть вопрос: «Почему не может?» Здесь разработчики просто не имели полного представления о том, как в действительности может проходить работа пользователя. Общий принцип состоит в том, что почти любой чрезмерно структурированный подход к процессу взаимодействия с пользователем рискует стать препятствием при выполнении им той или иной задачи, которая требует совсем другого подхода.


    В данном случае интерфейс превращается из помощника для пользователя в диктатора. Компьютер должен быть слугой для пользователя. Он не должен быть равным человеку или быть его начальником.
  • «В электронной промышленности существует тенденция к согласованию, независимо от того, насколько это может быть продуктивным... Согласование и использование стандартов очень важно, т.к. позволяет пользователю быстрее работать. Но если согласование и стандартизация создают бесполезные вещи, то такой проект можно считать неудачным». Именно это несколько лет назад и было сказано в известной статье Грудина (Grudin) «Дело против согласования пользовательских интерфейсов» («The Case Against User Interface Consistency», Grudin, 1989). Очевидно, что анализ, проведенный Грудиным, не был воспринят электронной индустрией. Следует отказаться от стандарта, если он явным образом снижает продуктивность или является неудобным для пользователя.
  • «При разработке этого программного обеспечения использовался стандартный метод построения меню, принятый в операционной системе Windows». Автор приводит пример: «Все меню изначально содержат в себе какую-то долю бесполезности. В одном из меню содержится команда Выход, которая вставлена в меню Файл». Другими словами, автор говорит, что команда Выход была единственной командой в том меню. «Команду Выход необходимо поместить в строку главного меню, а меню Файл следует убрать». Как автор пишет в своем письме, «список не может состоять из одного элемента». Бессмысленна ситуация, когда необходимо открывать меню, в котором нельзя сделать выбор.
  • Автор письма делает много конкретных предложений по улучшению некоторых деталей, тогда как в этих случаях требуется более серьезная переделка. Например, при формировании заказа на покупку определенного товара пользователь сначала получает окно под названием «Ввод заказа на покупку (Добавить)». В этом окне пользователь должен указать количество.


    Значение количества, принятое по умолчанию, равно 0, и, как указывает автор письма, «значение по умолчанию должно быть равно 1, поскольку вряд ли кто может сделать заказ на нулевое количество». Автор, конечно, прав, но, по моему мнению, все это окно является ошибочным. Пользователю должен быть представлен список элементов, который он может прокручивать и выполнять в нем поиск. В этом списке пользователь может просто изменять значения количества, и тогда нулевое значение по умолчанию становится необходимым. В некоторых приложениях в списке должны сохраняться значения, выбранные пользователем (например, в последний раз), в качестве начальных значений для последующих случаев использования. В зависимости от необходимости может быть предусмотрена кнопка для обнуления всех значений. Такая кнопка должна быть ясно и отчетливо выделена. В этой системе также имеется окно под названием «Ввод заказа на покупку (Убрать)». Это окно является ненужным: установка нулевого значения напротив элемента списка автоматически удаляет этот элемент из заказа на покупку. Кроме того, эти окна содержат и другую бесполезную условность. В них имеются кнопки с указанными внизу обозначениями Сохранить и Выход. Большинство пользователей не могут точно сказать, что эти кнопки делают. Кнопка Сохранить выполняет сохранение и выход (в этом случае она так и должна быть названа: Сохранить и выйти) или пользователь должен нажимать их по очереди для того, чтобы выйти, предварительно сохранив введенные данные? Если выйти без сохранения, будет ли выдано предупреждающее сообщение наподобие «Хотите ли вы сохранить изменения перед выходом?» или данные будут потеряны? В любом случае наличие двух кнопок является бесполезным. Если вы перемещаете курсор за пределы этого окна и приступаете к какому-то другому делу, система не должна мешать вам и автоматически сохранить содержание предыдущего диалогового окна.
  • Если покупатель тратит свое время на тщательный анализ вашего продукта и делает конструктивные предложения для его улучшения, обязательно отнеситесь к этому с вниманием! Это нельзя рассматривать как попытку сделать вам выговор или нанести оскорбление.


    Такой человек не является вашим врагом. Этим он демонстрирует свою лояльность и интерес к вашему продукту.
40 В книге Джозефа Хеллера «Уловка-22» одной из основных линий сюжета является пункт Устава под номером 22, который невозможно обойти, поскольку он замыкается сам на себе. — Примеч. науч. ред. 41 Адаптивные меню имеют это неприятное свойство. 42 Это решение эффективно до тех пор, пока этих ссылок не станет столько, что вы не сможете запомнить, что означает каждая из них, после чего придется определять «избранные из избранных» или другую схему, чтобы систематизировать все ссылки. 43 Интересный вариант масштабируемого пользовательского интерфейса (МПИ) (zooming user interface, ZUI) под названием PAD++ (сейчас он называется Jazz) был впервые разработан в университете штата Нью-Мексико. Cм. http://www.cs.umd.edu/hcil/pad++/. Я благодарен доктору Дональду Норману (в то время работавшему в компании Apple) за то, что он указал мне на эту работу. 44 Большая благодарность за разрешение описывать их версию метода ZoomWorld, а также использовать некоторые изображения в качестве иллюстраций. Многие подробности разработки были сообщены доктором Дэвидом Мошалом, доктором Имэньюэлом Нойком и группой их сотрудников. Благодарю также Бетти Ньюберн, дипломированную медсестру, за то, что она помогла мне разобраться в больничной среде. 45 Понимать это надо так: щит разделен на две половины — левую (золотую) и правую (зеленую). В центре зеленого поля расположен серебряный геральдический лев, стоящий на задних лапах примерно под 45° к горизонтали; голова льва повернута вправо и вверх. 46 В названиях цветов использованы названия растений — «василек», «паслён», «золотарник». — Примеч. науч. ред. 47 Ответы: показать основное меню, изменить язык, показать информацию об этом элементе, просмотр, тезаурус, уменьшить количество полученных результатов, показать информацию о местонахождении текущего объекта (например, URL веб-страницы или область хранения в библиотеке), найти элементы, для которых действительны оба булева выражения, стандартный международный номер книги, ключевое слово, тема, заголовок, убрать текущую информацию, уменьшить обзор текущей информации, отобразить краткий список результатов по текущему поиску, показать все поля, показать результаты текущего поиска, автор. 48 undefined 49 В идеале для сохранения данных вообще не должны использоваться специальные команды.Весь материал, включая все его промежуточные состояния, должен автоматически сохраняться, если только пользователь не удалил какую-то его часть намеренно. В то время возможности нашего аппаратного обеспечения еще не позволяли достичь этого. 50 Если вы используете Option↓ e↓↑↑ t↓ t↑ для того, чтобы напечатать t с ударением, вы опять будете неправы. 51 Возможно, клавиша <Следующее поле> (Next Field) была бы полезным дополнением к современным клавиатурам.
<= Previous Index Next =>


Содержание раздела