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

         

A. Однокнопочная мышь: история и будущее


Разнообразье любят люди тоже.54
Чосер «Рассказ Сквайра»

За создание однокнопочной мыши и некоторых основных методов ее использования я получал как критику, так и одобрения. Вопросы читателей черновика этой книги показали, что, на их взгляд, система, разработанная в Macintosh, работала аналогично системе с использованием мыши, которая была ранее создана в исследовательском центре PARC компании Xerox. В данном приложении будут описаны системы с использованием мыши, которые я видел в исследовательском центре Palo Alto Research Center (PARC) компании Xerox. Еще ранее мышь была использована исследовательской группой под руководством Дугласа Инглбарта (Douglas Englebart) из Станфордского исследовательского института для создания системы, которая во многих отношениях на несколько десятилетий опередила свое время. Эта система содержала в себе ценные идеи, которые до сих пор не нашли широкого применения. Однако программное обеспечение, созданное Инглбартом, часто было модальным и иногда являлось неэффективным при подсчете нажатий на клавиши.

Немногие пользователи современных персональных компьютеров помнят, через что надо было пройти, чтобы сделать операцию «выделения» в системе, созданной в исследовательском центре PARC, (например, в их самом популярном текстовом редакторе BRAVO). Далее нажатия на каждую из трех кнопок мыши системы PARC будут обозначены буквами L, М и R (левая, средняя и правая). В текстовом редакторе BRAVO квазирежимы для кнопок мыши не использовались.

Для выделения символа: указать на нужный символ, нажать L.

Для выделения слова: указать на нужное слово, нажать M.

Для выделения произвольной строки символов: указать на первый символ строки, нажать L; указать на последний символ строки, нажать R.

Для выделения строки слов: указать на первое слово, нажать M; указать на последнее слово, нажать R.

Обычной ошибкой было нажатие на кнопку L, а потом на кнопку M, что приводило только лишь к повторному началу процесса выделения в том месте, которое, как вам казалось, будет концом требуемой вам выборки.
L; ввести новый текст. В этом случае вместо использования явного разделителя для начала ввода текста, как в редакторе BRAVO, вы сразу же начинаете вводить нужный текст вставки. Вам не требуется в конце ввода вставки нажимать клавишу ESC или другую кнопку — начало выполнения новой задачи автоматически заканчивает предыдущую. Замена текста в текстовом редакторе BRAVO происходила следующим образом: выделить текст, нажать клавишу с буквой r, ввести новый текст, нажать клавишу ESC. Для замены текста в компьютере Macintosh: выделить текст, нажать на клавишу Delete и ввести новый текст. Этот метод отличается от того, который теперь используется в системах Macintosh и Windows для замены текста и который является проще: выделить текст, ввести новый текст.


Однако, как пользователям известно, этот последний метод часто приводит к случайной потере текста. В предыдущем способе требуется на одно нажатие клавиши больше, но он никогда не вызывает потери данных, и поэтому текстовый редактор является более безопасным и пользователь ощущает его именно таким. Следовательно, одно дополнительное нажатие на клавишу здесь оказывается весьма полезным. В отличие от текстового редактора BRAVO и некоторых других редакторов, разработанных в исследовательском центре PARC, в компьютере Macintosh и, в значительной степени, в более поздних системах ввод простой буквы никогда не действует как команда. Сейчас уже очевидно, что так и должно быть, но в то время так не казалось. Мой проект интерфейса, основанного на использовании однокнопочной мыши, уточнялся и расширялся во время обсуждений с моими коллегами, чаще с Брайеном Хоурдом (Brian Howard) и Биллом Аткинсом (Bill Atkinson), и, конечно, многие изменения были сделаны на основе наблюдений, сделанных во время пользовательских тестирований и дальнейшего процесса разработки. Для некоторых пользователей оказалось сложным одновременно удерживать кнопку и двигать графическое устройство ввода, но это отчасти зависит от его конструкции, а также от того, используется ли мышь или другое устройство.


В проекте Macintosh эта проблема была облегчена тем, что на мышь была установлена одна большая кнопка, требующая небольшого усилия для нажатия и хорошо воспринимаемая на ощупь. (Некоторые из последних моделей сенсорных панелей, особенно переносные, имеют плохие кнопки, и поэтому с их помощью трудно делать перетаскивание, что часто приводит к ошибкам.) Кроме того, общее улучшение и сокращение ошибок, достигаемое путем устранения режимов, часто перевешивает ошибки, возникающие во время перетаскивания, даже если используются не совсем оптимальные графические устройства ввода. В то время, однако, я не понимал еще, что мышь может работать нормально даже со множеством кнопок при условии, что они как-то обозначены. Если бы мышь Macintosh была снабжена множеством кнопок, и если бы кнопки имели постоянные обозначения и использовались только лишь для обозначенной функции, такая мышь могла бы стать более совершенным вариантом. Улучшенная мышь могла бы иметь сверху две кнопки, обозначенные как Select (Выделить) и Activate (Активизировать), и сбоку кнопку, управляемую большим пальцем руки. Эта последняя кнопка могла бы быть обозначена как Grab (Схватить). На некоторых современных мышах есть сверху колесо, которое в основном используется для прокрутки. Было бы лучше, если бы в этом месте находился небольшой трекбол. Таким образом, с помощью мыши контролировалась бы позиция курсора, а трекбол использовался бы, например, для перемещения объектов или для выбора элементов из плавающих меню.

Автоповтор и другие приемы работы с клавиатурой


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

Для того чтобы начался автоматический повтор, в большинстве клавиатур требуется удерживать клавишу в нажатом положении в течение 500 мс. Это является примером фиксированной задержки. Однако имеет смысл не использовать в интерфейсах фиксированный интервал задержки. Любая фиксированная задержка может оказаться как слишком большой, так и слишком малой, в зависимости от пользователя и обстоятельств. В данном случае задержка в 500 мс может быть слишком короткой в тех ситуациях, если вы задумались над тем, что собираетесь ввести дальше. Когда вы очнетесь, то можете обнаружить, что на странице появились пара строк с одним символом, наподобие ssssssssssssssssssss. (Мой кот является мастером в использовании компьютера таким образом.) Для пользователя, имеющего небольшую скорость набора или страдающего от какого-нибудь неврологического или физиологического расстройства, задержка в 500 мс перед автоповтором может также быть слишком короткой.

С другой стороны, интервал задержки в 500 мс является слишком длинным, хотя бы потому, что задержка есть задержка — пользователю приходится ждать, пока возникнет необходимый эффект. Например, у пользователей интерфейса Macintosh следующая ситуация вызывает особенное раздражение: чтобы изменить имя файла после открытия тома или папки, вам требуется щелкнуть по имени и подождать полсекунды до тех пор, пока не появится специальное обрамление или изменение цвета, указывающее на переход в режим редактирования.
Это было предусмотрено для того, чтобы пользователь мог выбрать имя файла одним нажатием на кнопку мыши без риска случайного его изменения. После перехода в предварительный режим редактирования вы должны щелкнуть по имени еще раз, чтобы перевести систему в состояние редактирования. Раздражение пользователей подтверждается как проведенными интервью, так и неоднократными статьями в журналах с описаниями способов обхода этих задержек. Пользователи не любят, когда их вынуждают ждать. Джон Бумгарнер (John Bumgarner), работавший в компании Information Appliance, предложил хорошее решение проблемы автоповтора. Он заметил, что в большинстве фонетических языков одна буква почти никогда не встречается три раза подряд. Он также заметил, что автоповтор редко используется, если букву требуется повторить менее пяти раз (в этом случае пользователь просто нажимает на клавишу необходимое число раз). При использовании метода Бумгарнера автоповтор начинается, если клавиша удерживается более 100 мс после третьего подряд нажатия на клавишу. Другими словами, чтобы получить строку, состоящую из знаков равенства, требуется нажать следующую последовательность: ===↓ После этого клавишу со знаком равенства следует удерживать в нажатом положении до тех пор, пока не появится необходимое количество символов, и затем отпустить. Многократное нажатие на одну и ту же клавишу выполнить быстрее, чем набирать разные символы, и GOMS-анализ показывает, что задержка перед началом автоповтора падает с 700 мс при обычных методах до 400 мс в предложенном методе. Метод автоповтора Бумгарнера достаточно прост в использовании и, как показали тестирования, такой автоповтор никогда не запускается случайно (даже если ваша кошка сядет на клавиатуру). Отрицательной стороной, которая свойственна также и стандартному методу автоповтора, является то, что автоповтор работает как невидимая функция, которая нигде в системе не обозначена. Хорошо разработанные компьютеры и информационные устройства снабжаются аккордными клавиатурами (chord keyboards), чтобы в программном обеспечении можно было предусматривать распознавание одновременного нажатия нескольких клавиш.


Старые и более примитивные компьютеры имели клавиатуры, в которых только некоторые специальные клавиши (например, <Shift>) можно было одновременно нажимать вместе с другими клавишами. Аккордные клавиатуры позволяют решить ряд сложных интерфейсных проблем. Например, рассмотрим наложение символов. Требуется логически ясный метод создания двух символов в одном месте. Например, для того чтобы сделать знак доллара с помощью наложения буквы s и вертикальной черты (|), должна быть предусмотрена возможность одновременного нажатия клавиш: s↓ |↓ |↑ s↑ Это не мешало бы совмещенному нажатию на клавиши, которое обычно происходит при большой скорости набора и при котором клавиша, нажатая первой, отпускается только после того, как нажимаются одна или несколько других клавиш. Слово the часто набирается не так: t↓ t↑ h↓ h↑ e↓ e↑ а вот так (приведем один из множества возможных вариантов): t↓ h↓ e↓ t↑ h↑ e↑ Современные клавиатуры и их программное обеспечение допускают использование таких совмещенных нажатий клавиш, что называется циклическим буфером (rollover). Большинство клавиатур имеют n-клавишный циклический буфер. Это означает, что система сможет различить n-е количество одновременно нажатых клавиш. С учетом человеческой анатомии коэффициент n вряд ли должен превышать 10, хотя с технической точки зрения вообще нет надобности его ограничивать, если компьютер оснащен аккордной клавиатурой. С учетом общепринятого метода создания наложений с помощью нажатия на одну клавишу во время того, как удерживается другая, знаки ударения и диакритические символы могут также рассматриваться как налагаемые символы и вводиться аналогичным образом. Например, в компьютере Macintosh букву é, как в слове Dupré, можно набрать с помощью сложной последовательности клавиш: Option↓ e↓↑↑ e↓ e↑ Обратите внимание на то, что здесь используется модальный метод типа «глагол-существительное», что является нарушением собственных принципов компании Apple.


Кроме того, этот метод работает непоследовательно. Если вы используете нижеприведенную последовательность, то будет получена кавычка, за которой стоит буква t, а не буква t со знаком ударения, как можно было бы ожидать50: Option↓ t↓↑↑ t↓ t↑ Если же наложение выполнять с помощью квазирежима, ввод знаков акцента и других диакритических символов упрощается и делается более последовательным: e↓ '↓ '↑ e↑ Вы нажимаете на букву е и, удерживая ее, нажимаете на символ ударения. То же самое сочетание можно получить и в обратном порядке: '↓ e↓ e↑ '↑ Логически нет никакой разницы, в каком порядке вы выполняете эту операцию. Кроме того, наложение символов полезно для написания математических и других специальных символов, а также в языках программирования (например, APL). Может возникнуть вопрос: почему вместо наложения символов нельзя просто включить нужные символы в шрифтовые наборы, ведь наши дисплеи являются полностью растровыми? Действительно, так можно поступить, однако не все захотят тратить время на разработку новых символов и их установку в каждый шрифтовой набор, в котором мы хотим их использовать. С другой стороны, вряд ли в современном компьютере нельзя получить те же возможности, которые были легко доступны с помощью обычных механических печатных машинок. Наложение не должно ограничиваться только двумя символами. Любые символы могут налагаться друг на друга, как, например, в следующей последовательности: Shift↓ s↓ Shift↑ |↓ /↓ /↑ |↑ s↑ Такая последовательность даст в результате знак доллара, перечеркнутый косой чертой. Функция наложения символов должна ограничиваться скорее только лишь эстетическими соображениями и доступностью для чтения, чем аппаратными или программными соображениями. Если используются n-клавишный циклический буфер и описанные выше методы наложения, то для обратной связи во время набора интерфейс может временно отображать пару налагаемых друг на друга символов в виде смежных символов.Смысл этого заключается в том, что интерфейс не может отличить одновременное нажатие клавиш при быстром наборе от одновременного нажатия с целью наложения символов друг на друга до тех пор, пока клавиши.не отпущены, после чего слияние накладываемых символов происходит автоматически. Также хочу добавить, что требуется радикальная реформа клавиатуры, связанная с удалением клавиши <CapsLock>. Эта клавиша порождает режим.

B. Теория работы интерфейса для SwyftCard


Некоторые из принципов, рассмотренных в этой книге, впервые были опубликованы в 1984 году в руководстве для SwiftCard. Система SwiftCard, предназначенная для довольно успешного в то время Apple II, была (по сегодняшним стандартам) простой. Приложение к ее руководству имело необычное содержание. Вместе с обычным, традиционным изложением принципа работы электронной начинки этого устройства предлагалось теоретическое описание работы программного обеспечения, а также информация о теории работы пользовательского интерфейса. Это, пожалуй, был первый случай, когда информация такого рода сопровождала коммерческий продукт. В некотором смысле то приложение можно считать началом этой книги. Нижеследующий материал взят из второго издания руководства (Alzofon и Raskin, 1985).

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

Например, мы всегда удивлялись, почему пользователю приходится форматировать диски. Разве компьютер не способен самостоятельно определить, форматирован диск или нет, и при необходимости выполнить форматирование? Кроме того, нам кажется, что клавиши для управления курсором работают слишком медленно, а если учесть то количество дополнительных команд, которое они требуют (для перемещения к следующему/предыдущему слову, предложению, абзацу, странице; для перемещения к началу или концу строки, документа или файла), то, на наш взгляд, они являются также и слишком сложными. ГУВ существенного улучшения не приносит, поскольку большая часть этих устройств заставляет пользователя убирать руки с клавиатуры, а также требует много экранного пространства для меню, полос прокрутки и других механизмов, связанных с использованием ГУВ.
Необходимость работать с меню вместо того, чтобы сразу делать то, что нам необходимо, вызывает раздражение, а огромное число команд, которое используется в большинстве систем, ставит нас в затруднительное положение. Мы ненавидим дисковые системы, которые могут допустить потерю информации из-за обычных человеческих ошибок. Нас удивляет, что многие текстовые процессоры не успевают воспринимать информацию, вводимую с клавиатуры человеком. SwiftCard демонстрирует собой, что хороший проект позволяет решить все эти, а вместе с ними и многие другие вопросы и проблемы, которые беспокоили нас в течение многих лет. Эта система способна работать на недорогом компьютере, имеющем только один диск, и требует минимальных ресурсов памяти. Наш продукт выполняет то, что требуется для большинства пользователей, однако без помощи операционной системы, без ценника с большими цифрами, без капризов в работе. Основные принципы разработки включают много новшеств и учитывают опыт, использованный в других продуктах. Концепция курсора с функцией LEAP, которая позволяет перемещаться к целевому объекту со скоростью, в среднем в три раза превышающей скорость работы самого лучшего общераспространенного устройства типа мышь. Сам курсор состоит из двух частей, которые точно показывают места, где будет появляться вводимый текст и где будет происходить удаление. Этот же курсор сворачивается при перемещении так, чтобы было удобно удалять. Ограниченный набор основных операций позволяет легко выполнять широкий диапазон задач. Отказ от использования операционной системы позволяет выполнять все операции непосредственно из редактора без необходимости переходить в различные режимы. Устранение режимов в целом способствует формированию привычек, поскольку пользователю не приходится задумываться, в каком состоянии находится система, чтобы определить доступные в этом состоянии команды. Это свойство называется безмодальностью. Отказ от использования множества способов выполнения той или иной задачи — опять же для того, чтобы пользователю не приходилось задумываться о том, какой способ выполнения задачи выбрать.


Этот принцип мы называем монотонностью. Так же как и безмодальность, монотонность способствует формированию привычек в использовании. Акцент на формирование привычек сам по себе является основополагающим принципом, однако разработчики зачастую его неоправданно не учитывают. Мы считаем важным, чтобы после короткого периода обучения пользователь мог использовать систему, не задумываясь о ее работе. Команда DISK позволяет снять сложности, которые обычно возникают при использовании дисковой операционной системы (DOS). Используется только одна простая команда. Она же позволяет защитить данные от наиболее частых ошибок, приводящих к потере информации. Возможность для создания такой команды дает метод, при котором один диск соответствует одному Тексту. Создание зависимости скорости работы от частоты использования (чаще используемые задачи выполняются быстрее, реже используемые — медленнее). «То, что вы видите, то вы и получите» (What you see is what you get). Другими словами, изображение на экране будет выглядеть так же и на бумаге. (Из-за ограничений в оборудовании Apple этот принцип, тем не менее, был нарушен для операции подчеркивания.) Построение команд по методу «существительное-глагол». Сначала пользователь определяет, с чем он собирается работать (что дает время на проверку и при необходимости исправление), и затем применяет некоторое действие к выбранному объекту. В некоторых системах используется обратная последовательность («глагол-существительное») или даже смешиваются оба метода, что еще хуже. Другой общий принцип заключается в том, что в системе трудно что-либо испортить или стереть. Это возможно, но очень трудно. Ошибки не происходят случайно или по невнимательности пользователя. Включение средств программирования и коммуникации в среду общего назначения, внутри которой выходные данные помещаются в область редактирования или поиска. Необходимость учета в плане работы времени на проведение длительных (в течение нескольких месяцев) тестирований и наладки.Покупатели системы не должны использоваться в качестве субъектов тестирования. Вышеизложенное является только упрощенным наброском (описание системы насчитывает около 50 страниц), но мы надеемся, что это даст вам некоторое представление о том, что привело нас к идее сделать систему SwiftCard такой, какая она есть. 54 Men loven of propre kynde newefangelnesse — строфа 610 из второй части стиха «Рассказ Сквайра», поэма «Кентерберийские рассказы» («Canterbury Tales») Джеффри Чосера (1340-1400), перевод О. Румера (БВЛ, серия 1 т. 30, изд-во «Художественная Литература» М., 1973). — Примеч. науч. ред.

<= Previous Index Next =>


Библиография


Где-то я мог неправильно интерпретировать или понять смысл цитируемых мной работ. Заранее прошу меня извинить за любые ошибки такого рода.

Accot, Johnny, and Shumin Zhai. «Beyond Fitts' Law: Models for Trajectory-Based HCI Tasks» (www.dgp.toronto.edu/~accot/Common/Articles/CHI97/chi.html, 1997).

Alzofon, David, David Caulkins, Jef Raskin, and James Winter. Canon Cat How-To Guide (Tokyo: Canon, 1987).

Alzofon, David, and Jef Raskin. SwyftCard, 2d ed. (Menlo Park, CA: Information Appliance, 1985).

Anderson, J. R. Rules of the Mind (Hillsdale, NJ: Lawrence Erlbaum Associates, 1993).

Apple Computer. Inside Macintosh, Vol. 1 (Cupertino, CA: Apple Computer, 1985).

Apple Computer. Human Interface Guidelines: The Apple Desktop Interface (Reading, MA: Addison-Wesley, 1987).

Ashlar. Vellum 3D Manual (Sunnyvale, CA: Ashlar, 1995).

Asimov, Isaac. I Robot (New York: Bantam Books, 1977).

Baars, Bernard J. A Cognitive Theory of Consciousness (Cambridge, U.K: Cambridge University Press, 1988).

Business Week. «Special Report on Information Appliances» (22 Nov. 1993), p. 110.

Buxton, William. «Chunking and Phrasing and the Design of Human-Computer Dialogs,» Information Processing '86: Proceedings of the IFIP 10th World Computer Congress (Amsterdam: North-Holland, 1986).

Card, Stuart K., Thomas P. Moran, and Allen Newell. The Psychology of Human-Computer Interaction (Hillsdale, NJ: Lawrence Erlbaum Associates, 1983).

Cohen, Jonathan D., and Jonathan W. Schooler, eds. Scientific Approaches to Consciousness (Hillsdale, NJ: Lawrence Erlbaum Associates, 1997).

Collins, Richard. Flying 121:10, p. 67 (October 1994).

Cooper, Alan. About Face (Foster City, CA: IDG Books Worldwide, 1995).

Dennett, Daniel C. Consciousness Explained (Boston: Little, Brown, 1991).

Dijksterhuis, E. J. The Mechanization of the World Picture (London: Oxford University Press, 1961).

Drori, Offer. «The User Interface in Text Retrieval Systems,» SigCHI Bulletin 30:3 (1998).

Eriksson, H., and P.
Magnus. UML (Unified Modeling Language) Toolkit (New York: John Wiley & Sons, 1998). Garrison, Peter. Flying 121:12, p. 112 (December 1994). Garrison, Peter. «Drifting Off Centerline,» Flying 122:1, p. 43 (January 1995). Gray, Wayne D., Bonnie E. John, and Michael E. Atwood. «Project Ernestine: Validating a GOMS Analysis for Predicting and Explaining Real-World Task Performance,» Human-Computer Interaction, 8:3, pp. 237-309 (1993). Grudin, J. «The Case Against User Interface Consistency,» Communications of the ACM, pp. 1164-1173 (1989). Hewlett-Packard. User Interface Design Rules for the New Wave Office System (Cupertino, CA: Hewlett-Packard Personal Software Division, 1987). Hotchkiss, B. «The Car Column,» Pacifica Tribune, 12 Nov. 1997, p. 14A. Horton, William. The Icon Book (New York: John Wiley, 1994). IBM. System Application Architecture, Common User Access, Panel Design and User Interaction (Boca Raton, FL: IBM, 1988). Jacobson, Robert, ed. Information Design (Cambridge, MA: MIT Press, 1999). John, Bonnie E. «Why GOMS?» Interactions: pp. 80-89 (October 1995). Johnson, J., and G. Englebeck. «Modes Survey Results,» SigCHI Bulletin 20:4, pp. 38-50 (1989). Kaplan, Justin, ed. Bartlett's Familiar Quotations, 16th ed. (Boston: Little, Brown, 1992). Knuth, Donald E. Literate Programming (Stanford, CA: Center for the Study of Language and Information, 1992). Lammers, Susan. Programmers at Work (Redmond, WA: Microsoft Press, 1986). Landauer, Thomas K. The Trouble with Computers (Cambridge, MA: MIT Press, 1995). Laurel, Brenda, ed. The Art of Human-Computer Interface Design (Reading, MA: Addison-Wesley, 1990). Lewis, C., and D. A. Norman. «Designing for Error,» in D. Norman and S. Draper, eds.. User Centered System Design (Hillsdale, NJ: Lawrence Erlbaum Associates, 1986). Linzmayer, Owen. Apple Confidential (San Francisco: No Starch Press, 1999). Loftus, Elizabeth F. Eyewitness Testimony (Cambridge, MA: Harvard University Press, 1979). Loftus, Elizabeth F. Memory (Reading, MA: Addison-Wesley, 1980). Mackenzie, I. S.


«Movement Time Prediction in Human-Computer Interfaces,» in R. M. Baecker, W. A. S. Buxton, J. Grudin, and S. Greenberg, eds., Readings in Human-Computer Interaction, 2d ed., pp. 483-493 (Los Altos, CA: Kaufmann, 1995). Malone, Michael S. Infinite Loop (Chicago: Doubleday, 1999). Mayhew, Deborah. Principles and Guidelines in Software User Interface Design (Englewood Cliffs, NJ.: Prentice-Hall, 1992). Microsoft. The Windows Interface Guidelines for Software Design (Redmond, WA: Microsoft Press, 1995). Miller, George A. «The Magical Number Seven, Plus or Minus Two: Some Limits on Our Capacity for Processing Information,» Psychological Review 63, pp. 81-97 (1956). Moore, J. S., and R. S. Boyer. «A Fast String Searching Algorithm,» Communications of the Association for Computing Machinery 20:10, pp. 762-772 (1977). Norman, Donald A. «Categorization of Action Slips,» Psychology Review 88:1, pp. 1-15 (1981). Norman, Donald A. «Design Rules Based on Analyses of Human Error,» Communications of the ACM 26:4, p. 255 (1983). Norman, Donald A. The Psychology of Everyday Things (New York: Basic Books, 1988). Norman, Donald A. The Invisible Computer (Cambridge, MA: MIT Press, 1998). Penrose, Roger. The Emperor's New Mind (London: Oxford University Press, 1989). Raskin, Jef. «Looking for a Humane Interface: Will Computers Ever Become Easy to Use?» Communications of the ACM 40:2, p. 98 (Feb. 1997). Raskin, Jef. «The Quick-Draw Graphics System.» Ph.D. diss. (State College, PA: Pennsylvania State University, 1967). Raskin, Jef. «FLOW: A Teaching Language for Computer Programming,» Computers and the Humanities 8:4 pp. (July 1974). Raskin, Jef. «Computers by the Millions,» SIGPC Newsletter 5:2 (1982). Raskin, Jef. «Systemic Implications of an Improved Two-Part Cursor,» Proceedings of CHI 89: Human Factors in Computing Systems, Austin: 30 April 1989, pp. 167-170 (New York: ACM Press, 1989). Raskin, Jef. «Down with GUIs,» Wired pp. (December 1993). Raskin, Jef. «Intuitive Equals Familiar,» Communications of the ACM 37:9, pp. (September 1994). Raskin, Jef, and James Winter. U.


S. Patent No. 5,019,806, Method and Apparatus for Control of an Electronic Display, 1991. Reason, James. Human Error (Cambridge, U.K.: Cambridge University Press, 1990). Shneiderman, Ben. Designing the User Interface (Reading, MA: Addison-Wesley, 1987, 1998). Sellen, A., G. Kurtenbach, and W. Buxton. «The Prevention of Mode Errors Through Sensory Feedback,» Human Computer Interaction 7:2, pp. 141-164 (1992). Shannon, Claude E., and Warren Weaver. The Mathematical Theory of Communication (Urbana: University of Illinois Press, 1949, reprinted 1963). Smith, S. F., and D. J. Duell. Clinical Nursing Skills, 3rd ed. (East Norwalk, CT: Appleton & Lange, 1992). Stallman, Richard. GNU Emacs Manual, 9th ed. (Cambridge, MA: Free Software Foundation, 1993). Tesler, Larry. «The Smalltalk Environment,» Byte (August 1981). Tesler, Larry, and Timothy Mott. Report on the Xerox Palo Alto Research Center Gypsy Typescript System (Palo Alto, CA: Xerox, 20 April 1975). Thomas, Lewis. The Lives of a Cell (New York: Viking Press, 1974). Tognazzini, Bruce. Tog on Interface (Reading, MA:Addison-Wesley, 1992). Tolkien, J.R.R. (Douglas Anderson, ed.) The Annotated Hobbit (Boston: Houghton Mifflin, 1988). Tufte, Edward. The Visual Display of Quantitative Information (Cheshire, CT: Graphics Press, 1983). Tullis, Thomas S. «Predicting the Usability of Alphanumeric Displays,» Ph.D diss., Rice University, 1984. de Unamuno y Jugo, Miguel. The Tragic Sense of Life, Chapter 9 (1913). Weinberg, Gerald M. The Psychology of Computer Programming (New York: Van Nostrand Reinhold, 1971).

<= Previous Index Next =>


Другие решения интерфейса для Хола


В разделе 4.3.1 мы приостановили дальнейшие попытки улучшения интерфейса, достигнув 70% теоретической информационной производительности. Данная производительность определена для пока еще неизвестного, теоретического интерфейса, в котором каким-то образом можно получить 100% эффективность использования клавиш. Давайте посмотрим, насколько мы можем приблизиться к этому идеалу с помощью стандартной клавиатуры и ГУВ.

Рассмотрим интерфейс, в котором используется клавиатура со всеми символами. В таком интерфейсе на экране появляется следующее сообщение:

Для перевода температуры из одной шкалы в другую укажите нужную шкалу с помощью символа C (шкала Цельсия) или F (шкала Фаренгейта). Введите числовое значение температуры, затем нажмите клавишу Enter. Результат преобразования будет отображен на экране.

GOMS-анализ показывает, что пользователь должен сделать 6 нажатий клавиш. По правилам расстановки операторов M получаем .следующую запись:

M K K K K K M K

Среднее время составит 3.9 с.

Мы можем уменьшить это время, если сами символы C и F будем использовать в качестве разделителей. Рассмотрим интерфейс, в котором появляется следующая инструкция:

Для перевода температуры из одной шкалы в другую введите числовое значение температуры и следом поставьте символ C, если оно в шкале Цельсия, или F, если оно в шкале Фаренгейта. Результат преобразования будет отображен на экране.

В данном примере нажимать на клавишу <Enter> не требуется. Некоторые примитивные средства разработки интерфейсов требуют, чтобы пользователь обязательно использовал клавишу <Enter>, и поэтому в них невозможно использовать символы C и F в качестве разделителей. Такие инструменты не подходят для разработки человекоориентированных интерфейсов.

GOMS-анализ показывает, что для интерфейса с символами C и F в качестве разделителей запись будет следующей:

M K K K K M K

Среднее время составит 3.7 с. Если бы мы не знали, что теоретически минимальное время составляет 2.15 с, то это решение могло бы показаться удачным.
Оно является значительно более эффективным, чем ранее рассмотренные, поэтому мы могли бы на нем остановиться. Однако теоретический минимум подстегивает нас к поиску еще более быстрой интерфейсной модели. Рассмотрим интерфейс, изображенный на рис. 4.5. Такой интерфейс можно назвать разветвленным. В нем один ввод дает в результате два вывода.


Рис. 4.5. Интерфейс, в котором не используется разделитель. Более эффективным является вариант, в котором выполняется посимвольная обработка вводимых данных и одновременное преобразование в обеих шкалах В разветвленном интерфейсе нет необходимости в разделителе. Кроме того, пользователю не нужно указывать, какое именно преобразование требуется провести. GOMS-анализ показывает, что для 4 символов, которые в среднем будут вводиться, запись будет следующей: M K K K K В разветвленном интерфейсе достигается минимальное время 2.15 с, и его символьная эффективность составляет 100%. Если, как в нашем примере, в месте вывода происходит изменение результата в тот момент, когда символы вводятся, это колебание цифр не отвлекает пользователя, потому что в локусе его внимания находится именно ввод данных. Непрерывно изменяемые значения на выводе могут быть даже полезными — после нескольких применений пользователь будет замечать эти колебания только краем глаза, что будет служить подсказкой о том, что система отвечает на вводимые данные. Если используется посимвольный режим работы интерфейса, то для большей эффективности такая система должна реагировать довольно быстро. В частности скорость реакции не должна быть меньше скорости ввода. Такая проблема может возникать только при сетевом использовании интерфейса. Хотя это и не входит в условие задачи, но может возникнуть вопрос о том, как происходит очистка полей в преобразователе для выполнения следующего преобразования. Добавляет ли операция очистки еще одно нажатие клавиши? Необязательно. Например, мы можем разработать интерфейс таким образом, что каждый раз, когда оператор возвращается к своему основному занятию или переходит к другой задаче, значения, указанные в преобразователе, могут автоматически затеняться, а сам температурный преобразователь становиться неактивным; причем в это время все значения могут оставаться в своих полях так, что при необходимости их можно было бы опять увидеть, но уже при следующем вводе все они будут стерты. Разветвленный интерфейс не обязательно является самым лучшим из тех, что уже были рассмотрены — или из тех, что возможны, — только потому, что он имеет оптимальную скорость работы и является весьма эффективным.


Кроме скорости есть и другие параметры, которые также являются важными: частота появления ошибок; время, необходимое для изучения интерфейса; возможность длительного запоминания способа использования интерфейса. Особенно следует обратить внимание на частоту появления ошибок в разветвленном интерфейсе, поскольку есть вероятность того, что Хол может прочитать результат не из того поля. Это важно особенно потому, что когда он услышал, например слово Цельсий, ему необходимо прочитать значение из поля шкалы Фаренгейта. Тем не менее, разветвленный температурный преобразователь определенно входит в небольшое число тех интерфейсов, которые можно рассматривать как рабочие варианты для программы преобразования температурных значений из одной шкалы в другую. Другие рассмотренные нами примеры, которые могли бы показаться удачными, если бы мы не проводили с ними GOMS-анализ, на самом деле не являются таковыми. Используемая как в простом анализе временных затрат на нажатия клавиш, так и в полном информационно-теоретическом исследовании, квантификация теоретического интерфейса с минимальным временем использования или с минимальным количеством используемых символов, или с минимальным количеством используемой информации может быть полезна с точки зрения разработки интерфейса. Без количественных ориентиров мы можем только догадываться о том, насколько хорошо мы разработали интерфейс и есть ли возможность его улучшения.

Единицы взаимодействия


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

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

В маленьких текстах, для которых поиск строк был изначально придуман, он обычно проходил от текущей позиции курсора до конца текста. В текстах большего размера в случае, если до конца документа искомый объект так и не был обнаружен, обычно удобнее продолжить поиск с начала документа до позиции курсора, если пользователь забыл, что искомый объект находится выше. Неопубликованное тестирование, проведенное в компании Information Appliance, показало, что если поиск производится быстро, то цикличный поиск оказывается особенно удобным. «Быстрый» означает здесь, что между запуском поиска и его успешным либо неуспешным окончанием не остается времени на действия пользователя. Как правило, это время составляет порядка 250 мс. Во многих системах пользователь может выбрать, каким образом будет проходить поиск — либо циклично (по кругу), либо с остановкой в конце документа.
Это порождает типичную проблему модальности. Если установлен нецикличный поиск, и пользователь не знает об этом, сообщение «строка не обнаружена» может привести к неверному пониманию, что в тексте нет экземпляров по запрошенному шаблону поиска. Часто я наблюдал, что в этом случае пользователи несколько раз запускали поиск повторно, т.к. ясно помнили, что видели такой экземпляр в тексте, и не понимали, почему поиск заканчивается безрезультатно. Может пройти несколько секунд или даже минут, прежде чем пользователь догадается, в чем состоит проблема, или же так и останется в недоумении. Если необходимо иметь разные виды поиска, можно избежать использования режимов, предусмотрев для каждого вида поиска соответствующую команду или экранную кнопку для запуска. Во многих случаях модальности можно избежать с помощью набора кнопок для запуска каждого вида поиска. Такой набор может быть предусмотрен вместо окна установки параметров поиска, снабженного одной-единственной кнопкой запуска поиска по заданным условиям. Такой подход позволяет не только устранить модальность, но и сократить число нажатий. Кроме того, в локусе внимания пользователя в этом случае находится задача, которую он хочет выполнить, а не настройки для ее выполнения. На рис. 5.5 показано типичное диалоговое окно с настройками и кнопкой запуска, которое используется в Microsoft Word. Из рисунка видно, что с диалоговыми окнами этого типа связана и другая проблема: должны ли кнопки переключателя всегда находиться в указанном положении при открытии окна? Должны ли они быть в положении, в котором пользователь оставил их при последнем использовании? Или же они должны быть в некотором положении, установленном пользователем по умолчанию?


Рис. 5.5. Диалоговое окно, снабженное кнопками для соответствующего типа поиска и одной кнопкой запуска

Рис. 5.6. Более эффективное диалоговое окно с несколькими кнопками запуска Все три варианта являются ошибочными. Если пользователь всегда обновляет оглавление полностью, то при первом варианте ему придется делать каждый раз по два щелчка мышью (или один щелчок и одно нажатие на кнопку <Return>).


Если переключатель остается в том положении, в котором окно использовалось последний раз, пользователь не сможет пользоваться этим окном привычным образом, поскольку каждый раз ему придется останавливаться и проверять, в каком положении переключатель находится. Если же переключатель может устанавливаться пользователем в положение по умолчанию (см. раздел 3.2.2), то тем самым включается режим. Диалоговое окно, изображенное на рис. 5.6, позволяет решить сразу все эти проблемы. Кроме того, по закону Фитса кнопки большого размера имеют преимущество по сравнению с набором переключателей. Если такое окно сделать прозрачным, то можно также отказаться от использования кнопки <Cancel> (см. раздел 5.2.3). В этом случае используемые две кнопки не должны быть прозрачными, чтобы пользователь мог видеть, что они являются активными. Диалоговые окна для поиска с разделителями обычно снабжены устройством для сохранения текущего шаблона сразу после обнаружения последнего экземпляра. Такое устройство можно назвать «искать еще» или «найти далее». В некоторых вариантах оно запускается с помощью той же кнопки, которая использовалась для начального поиска. Если поиск является пошаговым, то команда для повторного поиска того же объекта является необходимой, поскольку в этом варианте нет никакой команды для запуска начального поиска. Применять для повторного поиска клавишу включения квазирежима <Search> не желательно, т.к. пользователь может нажать эту клавишу, а затем передумать и отпустить ее. В этом случае будет начат поиск, который пользователь не хотел запускать. В результате пользователь может потерять место в тексте, в котором он находился. Хотя использование системы глобального отката может исправить ситуацию, все же лучше вообще не создавать этой проблемы. Специальный метод для выполнения повторного поиска будет рассмотрен в разделе 5.6. В больших по размеру текстах поиск может осуществляться по кругу (циклично) не только в локальном документе, но и далее, в автоматически расширяющихся областях вплоть до всего Интернета.37 После того как поиск был выполнен по всему локальному документу, он может быть продолжен в отношении последующих документов папки, а затем перейти на начало первого документа папки и продолжиться до текущего, уже просмотренного документа.


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

Форма курсора и методы выделения


Цель как поиска с ограничителями, так и пошагового поиска строки обычно заключается в том, чтобы обнаружить в тексте некоторую строку и выделить ее. Пользователи стараются использовать как можно более короткие последовательности в шаблонах поиска, т.к. длинные последовательности трудно набирать, и в большинстве систем они должны быть набраны с точностью до каждого символа, чтобы соответствовать целевому объекту. Поэтому поиск строки обычно не применяется для выделения даже средних по размеру целевых объектов, длина которых больше, чем 10-15 символов, не говоря уже о действительно больших блоках текста. Поиск строки применяется для того, чтобы помочь пользователю обнаружить место, где расположена искомая выборка, после чего пользователь может применить уже другой метод для обозначения этой выборки (например, использовать ГУВ для перемещения курсора от одного конца выборки до другого). Однако, если края выборки нельзя видеть одновременно, следует использовать другой метод. Он состоит из следующих шагов: (1) обозначение одного края выборки с помощью той техники, которая используется в данной системе; (2) сделать видимым другой край выборки с помощью полос прокрутки; (3) обозначить другой край выборки. В большинстве систем обозначение второго края выборки позволяет выделить всю выборку.

Более эффективный подход заключается в том, чтобы создать такой механизм поиска, который позволили бы размещать курсор на конкретном символе. Два таких размещения курсора можно использовать для обозначения первого и последнего символа выборки. Таким образом, все множество механизмов, обычно используемых для поиска краев выборки (а именно: перемещение курсора, прокрутка, различные механизмы поиска страниц, поиска по шаблону и т.д.) и их обозначения заменяются одним механизмом, который используется два раза, что упрощает процесс изучения, использования и формирования привычек, а также упрощает внедрение.

Рассмотрим теперь графическую форму курсоров. В настоящее время наиболее распространенной формой текстовых курсоров является курсор, который помещается между символами, как это показано на рис. 5.7.
Одной из проблем стандартного текстового курсора является то, что пользователи пытаются поместить его точно между символами, целясь на небольшой горизонтальный объект, который по размеру меньше, чем требуемый, что в соответствии с законом Фитса приводит к временным затратам. Кроме того, во время тестирований, проведенных в компании Information Appliance, мы с удивлением обнаружили, что эта распространенная форма курсора создает интересную когнитивную проблему, состоящую в том, что пользователь должен располагать курсор по-разному, в зависимости от того, какое действие он собирается совершить далее. В частности, чтобы удалить существующий символ с помощью клавиши <Backspace>, требуется разместить курсор справа от символа (в английском или любом другом языке, который читается слева направо). Чтобы вставить какой-то символ рядом с существующим символом, необходимо поместить курсор слева от существующего символа (в этом случае существующий символ сдвинется вправо). Наше удивление было связано с тем, что использование стандартного курсора хорошо знакомо каждому пользователю, и поэтому никто не мог подумать, что курсор можно было бы рассматривать как потенциальный источник проблем.38 Любой, кто пользовался курсором, знает, что разобраться с тем, как им пользоваться, несложно. Тем не менее, у начинающих пользователей компьютеров может возникнуть некоторая путаница и ошибки при первых попытках его использования. Путаница усугубляется еще и тем, что пользователи не видят локусы действия применяемых команд.


Рис. 5.7. Стандартный курсор, помещаемый между символами Введение режима, при котором удаление происходит в направлении, обратном обычному, не решает проблемы. Такой метод, называемый правосторонним удалением (forward erase), позволяет всегда размещать курсор слева от символа, к которому будет применено действие. Однако в этом случае вы будете иногда неожиданно для себя удалять в неправильном направлении, т.к. текущее направление удаления не находится в локусе вашего внимания.


Если требуется наличие двух направлений удаления, желательно использовать для этого две разные клавиши или же ввести режим для противоположного направления удаления. Использование курсора, который визуально показывает как (1) область вставки, так и (2) символ или символы, которые могут быть удалены клавишей <Backspace>, может быть ценным улучшением интерфейсов, ориентированных на работу с текстами. Вторая форма подсветки может быть аналогична той, которая используется для подсветки выборок. Один из способов достижения этого показан на рис. 5.8.

Рис. 5.8. Курсор из двух частей, выделяющий как отдельный символ, так и расширенную выборку. Часть курсора, которая обозначает область вставки, мигает для того, чтобы курсор можно было легко обнаружить на экране Перемещение курсора к объекту с помощью ГУВ является многократным процессом, в котором пользователь сначала визуально фиксирует целевой объект и затем перемещает курсор к этому объекту. Если пользователь не помнит, где находится курсор, ему также придется визуально искать его местонахождение. После этого он опять ищет целевой объект и т.д. до тех пор, пока объект и курсор не оказываются рядом в одном поле зрения широтой приблизительно 5°. Другими словами, для перемещения курсора с помощью ГУВ пользователь должен выполнить несколько процессов, требующих времени. Тем не менее, ГУВ необходимо для указания на графические объекты или при работе в полностью графической среде. Неповоротливость ГУВ при работе с текстами усугубляется в случаях, когда возникает необходимость указать на объект, находящийся за пределами страницы. В этих случаях использование только ГУВ вынуждает пользователя использовать полосы прокрутки, переключатели страниц и другие механизмы, чтобы перейти к тому содержанию, на которое нужно указать. Каждый из этих методов требует изучения, и многие из них работают довольно медленно. Функция LEAP дает пользователю когнитивное преимущество, которое избавляет его от необходимости выбирать между разными методами в зависимости от расстояния до объекта. (Alzofon и др., 1987 г.).


Наличие клавиши <LEAP> и ГУВ означает, что имеется два основных способа перемещения курсора. Однако пользователь выбирает тот или иной метод в зависимости от содержания объекта, а не от расстояния между курсором и этим объектом. Обычно содержание уже находится в локусе вашего внимания, поэтому когнитивный выбор между клавишей <LEAP> и ГУВ сделать сравнительно просто. Использование функции LEAP может быть особенно полезным в системах, управляемых голосом, а также для пользователей с двигательными нарушениями или повторными стрессовыми поражениями, для которых важно минимизировать работу с клавиатурой. Специальная кнопка (например, установленная на микрофоне) может служить для установки квазирежима LEAP. Объектом для функции LEAP всегда является некоторый символ в тексте, и этот символ (независимо от того, смотрит ли пользователь на него или думает о нем) обычно находится в локусе внимания пользователя во время того, как он применяет функцию LEAP. В отличие от использования ГУВ, в этом случае пользователь не должен визуально искать целевой объект, чтобы переместить к нему курсор. Это свойство функции LEAP настолько выражено, что ею могут пользоваться даже слепые пользователи, что было установлено в ходе тестов, проведенных в больнице Ведомства по делам ветеранов в Пало Альто (результаты не опубликованы). Еще более важным является то, что эта функция может использоваться в системе, построенной на ее основе, так широко, что вскоре оно становится для пользователя автоматичным. В структуре этой функции нет ничего, что могло бы препятствовать формированию ценных автоматичных навыков (привычек) или что могло бы привести к проблемам после того, как такие привычки сформировались. Функция LEAP должна работать быстро, всегда обнаруживая следующий экземпляр текущего шаблона поиска за время, не превышающее время реакции пользователя, чтобы не давать ему возможности и времени выполнить какое-то действие. Необходимая скорость может быть достигнута с помощью методов, рассмотренных в разделе 5.4. Для сравнения ГУВ и функции LEAP по временным затратам можно использовать метод GOMS-анализа скорости печати.


При условии, что руки пользователя изначально находятся на клавиатуре, использование ГУВ для указания на какую-то букву в тексте требует выполнения следующих операций: H P K. С учетом правила размещения операторов M получаем H M P K, или 0.4+1.35+1.1+0.2=3.05 с. Время, необходимое на использование функции LEAP, зависит от количества символов, которые следует ввести, чтобы перейти к требуемому целевому объекту. Тестирование показало, что среднее число символов, используемых при применении функции LEAP, составило около 3.5 для тех пользователей, которые были протестированы в первую неделю использования компьютера Canon Cat. Для перемещения курсора к некоторому целевому объекту требуется выполнить следующие операции: нажать на клавишу <LEAP>, после чего набрать 3.5 символа. Таким образом, применение функции LEAP в среднем состоит из 4.5 символов. Добавление, в соответствии с правилами, оператора М дает в результате 1.35+(4.5*0.2)=2.25 с. В другом эксперименте по хронометрированию, в котором участвовали опытные пользователи, сравнивалась мышь с функцией LEAP. Задача состояла в том, чтобы переместить курсор между двумя случайно выбранными символами, отображенными на экране размером 25 строк по 80 символов. Отсчет времени не начинался до тех пор, пока пользователь не начинал двигать мышью, или до тех пор, пока он не нажимал на клавишу <LEAP>. Среднее время составило приблизительно 3.5 с для мыши и 1.5 с для клавиши <LEAP>. Увеличение значения по сравнению с расчетным, вероятно, связано с небольшими размерами целевых объектов (в качестве которых использовались отдельные символы), что было обусловлено законом Фитса. Неожиданно малые значения для клавиши <LEAP>, вероятно, могут объясняться небольшими размерами текста, в котором возможный шаблон поиска в среднем мог состоять приблизительно из 2 символов. Участникам эксперимента было дано неограниченное время на планирование своих действий перед использованием мыши или клавиши <LEAP>.


Таким образом, во многих случаях пользователь может быстрее завершить передвижение курсора с помощью клавиши <LEAP>, чем переместить свои руки с клавиатуры к мыши. 5.6. Позиция курсора и клавиша <LEAP> Объектом функции клавиши <LEAP> является отдельный символ. С какой стороны символа должен появляться курсор: справа или слева? Размещение курсора слева от символа правильно только в том случае, если вы собираетесь сделать в этом месте вставку. Тогда как размещение курсора справа от символа правильно при условии, что вы собираетесь удалить этот символ. По-видимому, компьютер должен знать о вашем намерении перед тем, как правильно разместить курсор. Для случая со вставкой рассмотрим старый курсор в виде прямоугольника вокруг буквы или в виде подчеркивания. При использовании клавиши <LEAP> для перехода к какой-то букве курсор должен располагаться на самой букве. (Курсор не мешает чтению буквы; рис. 5.9.) Тогда пользователь может точно сделать в этом месте вставку или удаление. Прямоугольный курсор позволяет более точно, чем стандартный, межсимвольный курсор, показать место, где произойдет вставка или удаление.

Рис. 5.9. (а) С помощью ГУВ или клавиши <LEAP> курсор был размещен рядом с буквой l в слове slat. (b) Если нажать клавишу <Backspace>, получится sat. (с) Но если вы введете букву p, вы получите слово splat. Обратите внимание на то, что в первом случае обе части курсора (для вставки и удаления) были размещены на букве l, показывая, что вы можете в этом месте сделать либо вставку, либо удаление. После удаления (b) или вставки (с) элементы курсора разделились, показывая теперь, где возможно выполнить вставку или удаление Такой вариант порождает другую проблему. Предположим, что имеется слово tongs. Курсор установлен на букве o. Вы вводите букву h. Получается thongs. Куда должен переместиться курсор? Здесь опять же нужно знать намерение пользователя. Если курсор находится на букве h, то неясно: эта буква является местом вставки или удаления? Удалением должно быть действие, противоположное вставке, — так, чтобы нажатие на клавишу <Backspace> привело к удалению буквы h и возвращению к слову tongs.


Но если вы введете другую букву, скажем r, такое нажатие должно сместить букву o к букве h, образуя в результате слово throngs. При использовании надсимвольного курсора, наверное, тоже должны быть предусмотрены средства предварительного определения направления его действия. Проблема может быть решена следующим образом. Когда вы передвигаете курсор, он должен помещаться на отдельный символ. При вводе или удалении курсор должен разделяться на две части, связанные с двумя прилегающими символами, как это показано на рис. 5.9. Первый символ обозначен удаляющей частью курсора, а второй обозначен снизу указателем вставки. Фокус отчасти заключается в том, что используется курсор из двух частей. Он сделан таким образом, что когда его части объединяются (как они должны это делать после нажатия клавиши <LEAP> или перемещения курсора каким-то другим способом), пользователю графически ясно, что они располагаются на одном символе независимо друг от друга. Все это может показаться сложным, когда описывается словами, но на самом деле для начинающего пользователя научиться пользоваться курсором LEAP проще, чем обычным курсором, изображенным на рис. 5.7. Все, что нужно знать начинающему пользователю — это то, как выглядят маркеры для выделения и вставки, и что клавишей <Delete> удаляется выделенное, а вводимые символы появляются рядом с маркером вставки. Символы располагаются скорее последовательно, чем смежно, т.к. хотя два последовательных символа обычно и могут быть смежными, они не являются таковыми, если первый из них находится в конце строки. Для языков, которые читаются слева направо, курсор удаления обычно располагается справа от вставляемого символа, а для языков, которые читаются справа налево, — порядок обратный. Для вертикально-ориентированных языков курсор вставки размещался бы под курсором удаления, и для двумерной печати (boustrophedonic scripts) в каждой строке они бы менялись местами. Восприятие целевых объектов становится проще при использовании ГУВ с курсором из двух частей, поскольку объекты, или символы, больше по размеру, чем пробелы между ними, и поэтому активные области легче обнаружить. (Активная область для курсора PARC распространяется приблизительно до середины каждого символа по обе стороны от пробела между ними.


Однако визуально они никак не разделяются, отчего целевой объект кажется меньше по размеру. На практике многие пользователи стараются поместить курсор между символами, тем самым вызывая ограничение закона Фитса, связанное с небольшими размерами целевых объектов.) Как мы уже говорили, начинающие пользователи иногда испытывают трудности в понимании того, как работает стандартный межсимвольный курсор. Этот переходный процесс связан с интерфейсным элементом, настолько знакомым каждому пользователю, что редко (если вообще когда-то) у кого-нибудь возникает мысль подвергнуть его сомнению. С курсором из двух частей, который при переходе на какой-то символ складывается, упомянутая неясность в том, на какой символ курсор указывает, исчезает и таким образом снимает всю проблему. В некоторых случаях может быть полезным ограничить действие функции LEAP. Ограничение поиска может быть выполнено с помощью: (1) выделения области поиска; (2) выделения команды или текущей выборки (как это описано в разделе 5.2.1), ограничивающей последующий переход (с помощью клавиши <LEAP>) к этой области, которая становится старой выборкой; (3) использования клавиши <LEAP>. Однако ограничение функции LEAP не должно выполняться путем введения режима. Отсутствие возможности определить, включен режим или нет, делает использование функции LEAP чрезвычайно неудобным — пользователь больше не сможет легко находить необходимые ему объекты. Компания Canon использовала в компьютере Canon Cat механизм, названный «Local Leap» (локальный прыжок), который вызывал именно эти проблемы, о которых читатель этой книги теперь уже знает и может их предупредить. Внедрение функции LEAP также требует наличия другой функции — функции LEAP AGAIN (Прыгнуть еще раз), с помощью которой выполняется переход к следующему экземпляру того же шаблона в том же направлении, в котором функция LEAP была применена последний раз. В компьютерах SwyftWare и Canon Cat поиск обычно осуществлялся в виде перехода (LEAP) к шаблону и затем использования несколько раз клавиши <LEAP AGAIN> до тех пор, пока не обнаруживался искомый экземпляр. Функция LEAP позволяет унифицировать выполнение поиска и перемещения курсора внутри текста с учетом того, что текст может включать таблицы, графические элементы и любые другие алфавитно-цифровые символы.


После некоторого периода использования функции LEAP пользователь перестает замечать процесс перехода (LEAPing) так же, как оператор, владеющий десятипальцевым методом набора, не замечает механического движения пальцев и концентрируется только на создании содержания. Если вы хотите разместить какой-то целевой объект на дисплее, вы «перескакиваете» (LEAP) к нему, и вам не нужно для этого останавливаться, чтобы найти этот объект внутри содержания системы. Вам не нужно проходить по иерархическим структурам или открывать папки. Вы просто «перепрыгиваете» прямо к тому, что вам нужно. Однако когда люди, привыкшие к стандартным файловым структурам, впервые сталкиваются с системой, снабженной функцией LEAP, они часто продолжают думать с точки зрения того, где нужный объект располагается иерархически, и поэтому ищут его, пытаясь установить его общее местонахождение, и затем перемещаются к искомому экземпляру по определенному пути. Если среда, внутри которой вы осуществляете поиск, хорошо индексирована, для пользователя становится не важным, находится ли искомый элемент в памяти, в локальном или сетевом хранилище или же в локальной или глобальной сети. Говоря о методах поиска, следует упомянуть наблюдения, которые были сделаны Ландауэром (Landauer) и его коллегами. Ими было показано, что наиболее распространенные формы расширенного текстового поиска, в котором поиск определяется булевыми комбинациями строк или регулярными выражениями, менее эффективны в сравнении с полнотекстовым механизмом поиска. Последний оказывается и более быстрым, и более простым, и с помощью него пользователи находят больше подходящих элементов, по которым они производят поиск (Landauer, 1995). Как показывает GOMS-анализ и другие измерения эффективности, LEAP имеет преимущества над методами поиска, использованными Ландауэром, и поэтому обладает еще большей ценностью.

Формирование привычек


Все, что стоит сделать хорошо, сначала стоит сделать плохо.
Дик Карпински

Когда вы выполняете какую-то задачу многократно, то с каждым разом делать это становится все проще. Бег трусцой, настольный теннис или игра на фортепиано— это мои каждодневные занятия. С первой попытки все это казалось мне совершенно невозможным. Ходьба является более распространенным примером. По мере повторения — или с практикой — выполнение того или иного действия становится для вас привычным, и вы можете выполнять его не задумываясь. У Томаса Льюиса (1974), чьи работы по биологии всегда читаешь с радостью, по этому поводу можно найти следующий отрывок:

Печатать на машинке слепым методом, так же как и ездить на велосипеде или ходить пешком по тропинке, лучше всего получается, если об этом не задумываться. Как только вы задумаетесь, вы можете сбиться. Чтобы совершать известные вам действия, требуется всего лишь расслабить мышцы и нервы, которые отвечают за выполнение каждого отдельного шага, предоставить их самим себе и не вмешиваться в их работу. Конечно, это не означает, что вы отказываетесь от собственной воли, потому что решение о совершении действия остается за вами, и вы можете в любой момент вмешаться, чтобы, например, изменить технику исполнения. Если вы захотите, то можете научиться ездить на велосипеде задом наперед или ходить экстравагантной хромающей походкой, подпрыгивая на каждом четвертом шаге и одновременно насвистывая какую-нибудь мелодию. Но если вы станете концентрировать свое внимание на деталях, на движении каждой мышцы, чуть ли не падая на каждом шаге и в последний момент вовремя выставляя ногу, чтобы все-таки не свалиться, то, в конце концов, вы вообще не сможете двигаться и будете только дрожать от напряжения (с. 64).

Как-то раз один наблюдатель сказал, что бейсболист в момент удара должен думать о своей технике, на что звезда бейсбола Йоджи Берра, в продолжение приведенной мысли Льюиса, ответил с характерной краткостью: «Как можно думать и бить одновременно?» (Kaplan, 1992, с. 754).

Любая привычка означает отказ от внимания к деталям.
Тем не менее, привычки необходимы всем высшим формам жизни, представленным на Земле. С другой стороны, жизнь возможна даже при отсутствии какого бы то ни было сознания, как, например, жизнь микробов — по крайней мере, насколько мы знаем или хотя бы можем предполагать. Кроме того, термин привычка используется и в отрицательном смысле. Вопреки утверждению Льюиса, что в потере своей воли нет ничего плохого, все же случается так, что развиваются дурные привычки. Привычки бывают настолько сильными, что могут даже превратиться в страсть, иногда достигая того предела, когда сознательный контроль полностью утрачивается. (В данном случае я говорю не о физиологической склонности к чему-либо, например к никотину или опиатам, но скорее о нежелательных приобретенных привычках, таких как кусание ногтей.) Поскольку наше сознание есть то, чем мы, по сути, являемся, то в этой связи я вспоминаю наблюдение, сделанное Унамуно: «Приобрести привычку значит перестать быть» (Unamuno, 1913). Возможно, этим высказыванием Унамуно хотел предупредить нас об опасности пагубных привычек. Что же касается рутинных сторон повседневной жизни, то здесь мы как раз желаем, чтобы наше сознательное внимание «перестало быть». Вы легко можете себе представить, насколько трудно было бы вести машину, если бы вам пришлось задумываться: «Так, я хочу остановиться. Надо подумать. Чтобы сбросить обороты двигателя, необходимо снять ногу с педали акселератора. Теперь нужно преобразовать кинетическую энергию машины в тепло с помощью нажатия на педаль тормоза...» К счастью, если вы опытный водитель, все эти операции вы проделываете автоматически. Подобным же образом вы развили много маленьких привычек, которые помогают вам пользоваться компьютером, наручными часами, будильником, телефоном и разными другими вещами, имеющими интерфейс. При постоянном использовании какого-либо интерфейса у вас формируются определенные привычки, которые впоследствии трудно преодолеть. В этом смысле задача дизайнеров заключается в том, чтобы создавать интерфейсы, которые не позволяют привычкам вызывать проблемы у пользователей.


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

Имена файлов и файловые структуры


Люди скорее готовы страдать до последней возможности, чем защищать свои права через уничтожение тех форм правительства, к которым они привыкли.
Томас Джефферсон, из Декларации независимости Соединенных Штатов Америки

Для многих пользователей максимально возможная в Macintosh длина имени файла в 31 символ была просто счастьем в сравнении с ужасным ограничением в 8 символов в более ранних системах. Тем не менее, даже такая модификация являлась всего лишь смирительной рубашкой большего размера. За исключением некоторых реальных ограничений, налагаемых аппаратным оборудованием, интерфейс не должен иметь ограничений, связанных с длиной. Интерфейс должен использовать распределение динамической памяти, ссылки, хеширование или любые другие методы, но никогда не должен ставить для пользователя ограничений, таких как «вы можете использовать не более 255 категорий» или «объем абзаца не должен быть более 32,000 символов»29.

Чем является имя файла? С точки зрения пользователя, это «ручка», за которую файл можно взять. По своему опыту мы знаем, что имена файлов работают не так, как этого стоило бы ожидать, — они мешают, когда нужно что-то сохранить, и бывают бесполезными, когда нужно что-то найти. Если говорить более конкретно, файловые имена становятся назойливыми, когда вы собираетесь что-то сохранить, так как вам приходится останавливаться в середине самого процесса сохранения, чтобы придумать имя для файла30. Создание имен — это трудное занятие. Требуется на месте, за пару мгновений выдумать уникальное, запоминающееся имя, которое, к тому же, должно отвечать правилам, принятым в данной файловой системе. Кроме того, в этот момент в локусе вашего внимания находится не проблема создания имени файла, а вопрос сохранения вашей работы. Файловые имена приводят к неудобствам и при поиске файлов. Имя, которое вы придумали, может быть не особенно запоминающимся, и поэтому вы, вероятно, можете забыть его через несколько недель (или даже раньше).
Я, например, редко когда могу вспомнить имя файла, если только я не пользовался им совсем недавно, и даже простое просматривание списка файлов вызывает смятение. Ну, скажите, что может содержаться в файле с именем «notes ybn 32»? Когда я придумывал его, оно казалось таким умным и запоминающимся. Кроме того, многие файлы очень похожи друг на друга. Сколько разных, оригинальных и запоминающихся имен вы можете выдумать для писем к своему бухгалтеру по поводу оплаты налогов за прошлый год? Их, конечно, можно организовать по дате, но многие ли из нас способны помнить, что, например, письмо о списании служебного грузовика было написано 14 августа? Необходимость давать имена файлам увеличивает ментальную нагрузку на пользователя. Назначение имени не делает ничего, кроме добавления к самому файлу еще нескольких символов. И вам приходится запоминать этот файл только лишь по тому кусочку символов и больше ни по чему другому. Я считаю это одним из главных бедствий, которым страдают современные компьютерные системы. Этот метод используется также и во многих других информационных средствах. Между именем файла и самим файлом не должно быть различия. Человеческий мозг способен более эффективным образом использовать быструю, полнотекстовую поисковую систему, поэтому любое слово или фраза из файла может служить ключом к нему. (Более того, желательно, чтобы по запросу «письмо о стрекозе» выполнялся поиск чего-либо в форме письма, а также не только слова стрекоза, но и связанных с ним терминов и выражений в случаях, если упоминались научные названия этого вида (например, Odonata). Если такие письма обнаружены не были, поиск должен продолжиться среди документов, не являющихся письмами, и так далее, расширяясь до сетевых ресурсов и Интернета.) Вы не можете помнить содержание документа по его имени «Письмо Джиму от 21/12/92», но вы можете помнить, что когда-то вы писали Джиму по поводу одной голубой Edsel, которая однажды пролетала мимо вас. Поиск по слову Edsel найдет только один или два элемента во всей вашей системе, если только вы не интересуетесь именно видом Edsel — в этом случае вы, вероятно, выбрали бы другую схему поиска.


Неограниченное по длине имя файла является самим файлом. Содержание текстового файла и есть его самое лучшее имя. Графические и звуковые файлы зачастую тоже требуют своих имен. В разделе 6.2 будет рассмотрен подход, в котором обходятся те трудности, которые накладывают традиционные файловые структуры на нетекстовые файлы. Если не говорить о нетекстовых файлах, наличие быстрой полнотекстовой системы поиска позволяет отказаться от использования целого вида бесполезных элементов — файловых имен. Вместе с отказом от имен файлов также отпадает необходимость в механизмах их обработки (например, каталогах), правилах их создания и синтаксических ограничениях при создании. С устранением файловых имен исчезает большая ментальная нагрузка на пользователя, а также значительная часть внутреннего программного обеспечения — того, что в настоящее время пользователям приходится изучать, а программистам разрабатывать. Наилучшей моделью интерфейса для полнотекстовой системы поиска является интерактивная, в которой вы можете видеть каждый найденный элемент в его контексте. В таком интерфейсе вы сразу оказываетесь там, где вам необходимо, как только вы это увидели. В некоторых системах делаются копии найденных элементов в том ряду, в котором они содержатся (Drori, 1998). Однако в сравнении с первым методом поиска этот метод не является эффективным, поскольку вам придется затем выполнить еще вторую операцию по получению самого элемента (например, вам придется дополнительно щелкнуть по копии необходимого документа). Для тех пользователей, которые хотят иметь систему, напоминающую обычную файловую структуру, может быть предусмотрена специальная команда по созданию «информационного документа» или дополнительной страницы в конце каждого документа, когда документ выбран и такая команда применена. Информационный документ или дополнительная страница может содержать информацию о дате и времени создания или изменения документа, историю редакций, размер и другую полезную информацию.


Программное обеспечение, предназначенное для выполнения такой команды, должно получать и хранить необходимую информацию невидимым для пользователя образом. Разработчики могут поставлять разные средства в зависимости от потребностей пользователя. Для пользователей, предпочитающих старые методы, можно предусмотреть утилиты для создания документов, которые могли бы выглядеть и действовать так же, как и те неудобные каталоги, которыми мы сейчас пользуемся. Другой тип организации, который легче изучить и использовать, чем обычные файловые системы, происходит из естественной иерархичности, присущей многим естественным языкам. В них слова разделяются пробелами, предложения (или последовательности слов) разделяются одним из небольшого числа разделителей (в английском языке в число этих разделителей входит точка, вопросительный и восклицательный знаки) и последующим пробелом. Абзацы (или последовательности предложений) разделяются, по крайней мере, одним знаком возврата каретки. Символ раздела или разрыва страниц служит для отделения глав или других уровней организации текста. В последовательной системе разрыв страницы должен быть символом и, в отличие от большинства современных систем, он должен вести себя как любые другие символы с точки зрения их вставки, удаления и поиска. Как и символ возврата каретки, символы разрыва страниц могут быть скрытыми символами, обозначающими фиксированную длину физической страницы, но они не должны быть частью содержания31. Имеет смысл не ограничиваться этими иерархическими уровнями, как это делается во многих современных системах. Документы являются последовательностями страниц, разделенных символами этого документа, каждый из которых может быть набран, найден или удален так же, как и любой другой символ. Также могут быть разделители и более высокого уровня, как, например, символ папки и тома или даже разделитель секции и библиотеки. Тем не менее, число уровней определяется объемом данных. Набор из двух последовательных символов документа является хорошим разделителем для наборов документов.


Если требуются другие уровни организации, то три или четыре последовательных символа документа можно использовать в качестве разделителей. Вместо клавиш <Папка> (Folder), <Том> (Volume) и <Библиотека> (Library), которые будут использоваться редко, можно предусмотреть клавишу <Документ> (Document), которую можно нажимать многократно, вплоть до четырех раз соответственно. Такое решение позволит избежать резкого увеличения количества клавиш на клавиатуре. Важно, чтобы все символы разделителей имели специальную клавишу, иначе они не будут работать как все другие набираемые символы. То есть пользователь не должен нажимать на какую-то клавишу (например, <Return>) и потом применять команду Вставить разрыв страницы. Для этого он должен использовать только специальный символ страницы. Если разнообразные символы разделения работают так же, как и все другие символы, исчезает необходимость в обучении пользователей тому, как с ними управляться. Если пользователь все же настаивает на использовании явных имен документов, он может ставить такие имена сразу после символа документа. Для того чтобы найти документ с именем «Собаки Азии», поиск должен будет производиться по фразе «Собаки Азии», перед которой стоит символ документа. При таком поиске будут игнорироваться все случаи использования последовательности «Собаки Азии», кроме тех, которые используются в качестве имени документа. Для получения каталога может использоваться команда, которая сможет собрать документы, включающие искомую подстроку и предваряющиеся символом документа, а также другими символами, вплоть до и включая ближайший символ конца абзаца или разделитель более высокого уровня. Отказ от использования иерархической файловой структуры не означает отказ от структурирования сохраняемой информации. Ничто не мешает вам создавать оглавления и указатели или размещать все ваши письма к дяде Альберту и тете Агате на соответствующих страницах. Ничто не мешает вам создавать сразу перед письмами титульную страницу (как отдельный документ) «Письма к дяде Альберту и тете Агате».


В этом случае вы, в сущности, создадите файловое имя, но оно не потребует использования специальных механизмов в программном обеспечении. По желанию, если вы действительно любите файловые имена и иерархии, вы можете создать свою собственную иерархическую файловую структуру. Однако тогда, структура будет частью вашего содержания, а не интерфейса.32 Поэтому вместо специального механизма поиска файлов вы сможете использовать обычные средства поиска. Перед группой файлов вы можете поместить в виде документа название папки. Также перед группой папок вы можете поместить название тома. (В этом случае за символом тома будет следовать название тома, чтобы избежать совпадений с другими такими названиями, не являющимися именами тома.) Отсутствие встроенной файловой организации не мешает созданию файла, предназначенного для какой-либо цели, но, в то же время, понятного вам, т.к. он создан именно вами. Тем не менее, поскольку система при этом никак не изменяется, другой пользователь может искать что-либо в ваших данных и фактически проигнорировать вашу структуру и рассматривать ее как сплошной, неструктурированный файл. Преимуществом организации произвольной файловой структуры является то, что такая структура не устанавливается разработчиками системы, у которых могут быть совсем другие идеи, отличные от ваших. В этом случае вам не приходится создавать ментальную модель того, что разработчики пытались сделать. У многих пользователей формируются неправильные модели того, как та или иная система работает. Ментальные модели трудно изменяются и поэтому они могут долгое время создавать трудности для таких пользователей (Norman, 1988). Сказанное не является теорией. Отказ от использования в компьютерах SwyftWare и Canon Cat файловых имен, директорий, а также от механизмов, с помощью которых с ними производятся манипуляции, оказался одним из самых удачных решений. Пользователи, привыкшие к использованию обычных компьютерных систем, признавали, что им было трудно перейти к использованию систем, основанных на принципе организации информации по содержанию.


Но когда такой переход происходил, обычные методы вскоре казались им неудобными. А пользователи, которые начинали знакомиться с компьютерной техникой с компьютера Canon Cat, не испытывали радости от необходимости изучать более сложные методы использования обычных файловых систем, когда они переходили на PC или Macintosh. В сравнении с обычными графическими пользовательскими интерфейсами методы, описываемые в этой книге, могут показаться сложными. Но кажущаяся сложность возникает только лишь из-за того, что новый подход еще не знаком, а также из-за того, что мы привыкли к тому множеству действий, которое мы должны выполнить, и к тем проблемам, которые возникают при использовании существующих сегодня систем. Конечно, новая система потребует от пользователя усилий на изучение. Но если вы сравните успехи начинающих пользователей, работающих с разными системами, или сравните эффективность работы опытных пользователей, преимущества более простой системы станут очевидными. Представьте, что у вас есть n документов, которые вы должны скопировать на внешний носитель — пусть это будет жесткий диск. Для этого, используя, например, операционную систему Macintosh, вы должны будете перетащить пиктограмму каждого документа на пиктограмму диска. Новая парадигма, на первый взгляд, делает операцию более сложной. Вам нужно найти начало и конец каждого документа, выбрать документ, переместить курсор к нужному месту на диске и затем переместить каждый документ. Вспомните, что в обычном графическом пользовательском интерфейсе вы всегда начинаете с открытия некоторого общего приложения. Ваш первый шаг — это добраться до рабочего стола. Вы должны помнить, какие пиктограммы соответствуют нужным документам, и вам (или кому-то другому) всегда приходится выполнять действия по назначению имен этим документам. Вы также должны помнить, в какой папке эти документы находятся. Поэтому кажущаяся простота достигается только после того, как выполнен значительный объем работы, и пользователь разделался с большим количеством обременительных ментальных требований.


Более эффективным методом является изобретение под названием LEAP. Предположим, что, как и в случае для обычного графического интерфейса, курсор находится в одном из документов, которые вы хотите переместить. С помощью LEAP пользователь может выбрать документ шестью нажатиями клавиш, причем не глядя на экран и не держа в голове имя документа. Нажатие 6 клавиш отнимает меньше времени, чем перетаскивание пиктограммы. Функция LEAP работает следующим образом: имеется две клавиши <LEAP>, находящиеся под большими пальцами. <LEAP-Up> производит поиск вперед от позиции курсора, a <LEAP-Down> — назад. При нажатии на клавишу <LEAP> включается квазирежим, после чего все, что вы ввели, воспринимается как шаблон поиска. Для выборки документа вы должны нажать <LEAP-Up> и ввести символ документа (LEAP-Up↓ Doc↓ ↑↑). Мы перемещаемся к началу документа. Затем мы нажимаем <LEAP-Down> и вводим символ документа (поиск в этом случае найдет символ документа в конце документа). Одновременное нажатие на обе клавиши <LEAP> позволяет выделить весь текст. (Вероятно, удобнее всего это делать с помощью больших пальцев, которые редко используются при работе с клавиатурой. См. рис. 2.1 с изображением обычной клавиатуры, снабженной клавишами <LEAP>. Альтернативным вариантом является клавиша <Выбрать> (Select).) Для того чтобы сделать эту функцию видимой, рядом с клавишами <LEAP> необходимо поместить какое-то обозначение. Например, можно использовать надпись: «Для создания выделения нажмите одновременно на обе клавиши LEAP». Обратите внимание, что пользователю не требуется смотреть на экран при выборе документа. Когда документ выбран, нажатием клавиши <LEAP> курсор перескакивает на тот объект, куда нам необходимо вставить текст, после чего дается команда Копировать (Copy). При таком выделении документ включает свои разделители. Таким образом, если документ перемещается, он сохраняет в себе свою сущность как документ, поскольку эти разделители перемещаются вместе с ним. Та же самая техника, которая использовалась для копирования документов (или другой выборки любой длины, начиная от единственного символа и заканчивая набором документов или даже всем содержанием системы (!)) из одного места в другое, может быть использована и для перемещения выборки.


Разница состоит только в том, что подается команда Переместить (Move) вместо команды Копировать (Copy). В функциональном отношении этот процесс является не более сложным, чем аналогичные процессы в обычных пользовательских графических интерфейсах. Зачастую он оказывается более быстрым, а число методов, понятий и структур, которые должен знать пользователь, оказывается меньшим. Сравним перемещение нескольких выборок из разных документов на диск с помощью клавиши <LEAP> с выполнением этой же задачи в обычном пользовательском графическом интерфейсе. В первом случае метод будет аналогичным тому, который применялся для перемещения документов на диск. Объекты, предназначенные для выборки, сначала находятся (при этом необходимости их открывать нет), потом они выбираются, как это было описано выше (за исключением того, что в начале и в конце выборки используются символы не документа, а текста), и затем они копируются в нужное место. В обычном пользовательском графическом интерфейсе пользователь должен сначала открыть документ, в который будет производиться копирование (возможно, это потребует использования команды Создать (New) из меню Файл (File)), потом найти документ, который содержит нужную выборку, открыть этот документ, найти выборку внутри документа, выделить ее, применить команду Копировать (Copy), сделать активным документ назначения, вставить выборку, активировать рабочий стол, найти следующий документ, содержащий нужную выборку, повторить всю процедуру до тех пор, пока все выборки не будут — вставлены в документ назначения. После этого вы должны сохранить результат на диске, используя специальное диалоговое окно. Даже если бы уровень сложности выполнения задач был одинаковым для обоих подходов, концептуальная простота методов, описанных в этой книге, делала бы их более предпочтительными. В большинстве же случаев объем необходимой работы также оказывается намного меньшим, чем при использовании обычных интерфейсов.

Инструменты, которые препятствуют новым идеям


Создание хороших интерфейсов требует большой и напряженной работы. Считается, что такие известные на рынке инструменты для построения интерфейсов, как Visual Basic и Visual C++, позволяют снизить стоимость разработки и ускорить ее внедрение. Несмотря на все свои полезные свойства, эти инструменты нечасто будут упоминаться в этой книге. Причина состоит в том, что они основаны на традиционных парадигмах и, следовательно, слишком ограничивают ваши возможности. Аналогичным образом принципы создания интерфейсов в таких системах, как Macintosh или Windows, а также часть подходов, предлагаемых в различных книжных изданиях, посвященных разработке интерфейсов, иногда оказываются явно ошибочными— зачастую из-за корпоративной необходимости поддерживать совместимость с ранними версиями интерфейса, а также из предубеждения, что пользователи непременно отнесутся с неодобрением к попыткам отойти от старых, привычных принципов построения интерфейсов. Действительное усовершенствование интерфейсов возможно, если подходы к их разработке будут серьезно пересмотрены. При этом разработчику необходимо найти компромисс между оправданным применением уже устоявшихся парадигм, которые облегчают изучение интерфейса пользователем, и новыми подходами, которые позволяют сделать интерфейс более удобным и практичным. Конечно, в ситуации, когда часто меняется состав группы разработчиков или круг потребителей продукта, стремление придерживаться известных подходов, возможно, было бы лучшим решением. Но в тех случаях, когда известно, что большая часть времени у пользователей будет уходить на рутинные, повторяющиеся операции, а обучение в то же время не потребует больших затрат, верным решением является разработка интерфейса с максимальной продуктивностью, даже если впоследствии от пользователя потребуются некоторые усилия по его изучению.



Интерфейс для Хола: вариант Диалоговое окно


Инструкции в диалоговом окне (рис. 4.2) довольно просты. На их основе можно описать метод действий, который должен использовать Хол в терминах жестов модели GOMS. Запись по модели GOMS будет представлена последовательно по мере того, как будут добавляться новые жесты.


Рис. 4.2. Вариант диалогового окна с использованием группы переключателей Перемещение руки к графическому устройству ввода данных:

H Перемещение курсора к необходимому переключателю в группе:

H P Нажатие на необходимый переключатель:

H P K

В половине случаев в интерфейсе уже будет выбрано требуемое направление перевода, и поэтому Холу не придется кликать на переключатель. Сейчас мы рассматриваем случай, когда переключатель не установлен в требуемое положение. Перемещение рук снова к клавиатуре:

H P K H Ввод четырех символов:

H P K H K K K K Нажатие клавиши <Enter>:

H P K H K K K K K

Нажатие клавиши <Enter> завершает часть анализа, касающуюся метода. В соответствии с правилом 0 мы ставим оператор M перед всеми операторами K и P за исключением операторов P, указывающих на аргументы, которых в нижеследующем примере нет:

H M P M K H M K M K M K M K M K

Правило 1 предписывает заменить P M K на P K и удалить все другие операторы M, которые являются ожидаемыми (в указанном примере таких нет). Кроме того, правило 2 предписывает удалять операторы M в середине цепочек. После применения этих двух правил остается следующая запись:

H M P K H M K K K K M K

В соответствии с правилом 4 следует оставить оператор M перед конечным K. Правила 3 и 5 в данном примере не применяются.

Следующий шаг — это заменить символы операторов на соответствующие временные интервалы (напомним, что K=0.2; P=1.1; H=0.4; M=1.35).

H + M + P + K + H + M + K + K + K + K + M + K = 0.4 + 1.35 + 1.1 + 0.2 + 0.4 + 1.35 + 4*(0.2) + 1.35 + 0.2 = 7.15 с

В случае когда переключатель уже установлен в требуемое положение, метод действий становится следующим:

M K K K K M K

M + K + K + K + K + M + K = 3.7 с

По условиям задачи оба случая являются равновероятными. Таким образом, среднее время, которое потребуется Холу на использование интерфейса для перевода из одной шкалы в другую, составит (7.15+3.7)/2 ≈ 5.4 с. Но поскольку описанные два метода являются разными, Холу будет трудно использовать их автоматично. Нерешенной проблемой количественных методов анализа остается оценка процента появления ошибок при использовании данной модели интерфейса.

Далее мы рассмотрим графический интерфейс, в котором используется известная всем метафора.



Интерфейс для Хола: вариант ГИП (GUI, graphical user interface)



Рис.4.3. ГИП для задачи Хола

В интерфейсе, показанном на рис. 4.3, используется наглядное отображение термометров. Хол может поднять или опустить указатель на каждом термометре методом перетаскивания с помощью ГУВ. Хол определяет, какой ему необходимо сделать пересчет, перемещая стрелку указателя либо по шкале Цельсия, либо по шкале Фаренгейта. Холу не требуется вводить символы посредством клавиатуры — он просто выбирает значение температуры на одном из термометров. При перемещении указателя на одном термометре указатель на другом перемещается на соответствующее значение. Точность устанавливается с помощью регуляторов масштабирования шкал. Также возможно изменить текущий диапазон значений. Изменение шкалы или диапазона на одном термометре автоматически приводит к соответствующему изменению на другом. Точное числовое значение отображается на перемещаемой стрелке. Температура показывается как в числовом виде так и с помощью уровня градусника, поэтому Хол может, на свое усмотрение, пользоваться либо графическим вариантом представления данных, либо символьным. Сервис «Автомед» позволяет установить диапазоны термометров с центром в районе 37 градусов шкалы Цельсия и 98.6 градусов Фаренгейта на случай, если кто-то из сотрудников работает со значениями температуры тела человека. Эта опция служит для экономии времени.

С помощью нажатия кнопок «Расширить шкалу» (Expand Scales) и «Сжать шкалу» (Compress Scales) можно уменьшить или увеличить цену деления шкал в 10 раз. Для перехода к значению, которое в данный момент не видно на экране, Хол расширяет шкалу, затем прокручивает до нужного места на шкале, устанавливает стрелку на необходимое температурное значение и потом сжимает шкалу до получения требуемой точности, при необходимости подстраивая стрелку указателя.

Провести анализ этого графического интерфейса с помощью модели скорости печати GOMS довольно сложно, поскольку способ, которым Хол может его использовать, зависит от того, где в данный момент установлена стрелка указателя, какой необходим диапазон температур и какая требуется точность.
Рассмотрим сначала простой случай, при котором диапазон температурных шкал и точность перевода уже находятся в желаемом положении. Анализ позволит определить минимальное время, необходимое для использования этого интерфейса. Запишем, какие жесты использует Хол, когда перемещает руку к ГУВ, щелкает по кнопке и удерживает ее, указывая на стрелку одного из термометров: H P K Продолжим записывать те жесты, которые использует Хол для перемещения стрелки к необходимому температурному значению и отпускает кнопку ГУВ H P K P K Поставим операторы M в соответствии с правилом 0: H M P M K M K Удалим два оператора M в соответствии с правилом 1: H M P K K Когнитивные единицы, разделители последовательностей и т.д. здесь не используются, поэтому правила 2-5 не применяем. Складывая значения операторов, получаем общее время: H M P K K 0.4 + 1.35 + 1.1 + 0.2 + 0.2 = 3.25 с Результат вычисления относится к удачному случаю, когда исходный термометр уже предустановлен на требуемый диапазон и точность. Теперь рассмотрим случай, при котором Хол расширяет шкалу, чтобы увидеть необходимое температурное значение, изменяет диапазон, сжимает шкалу, чтобы получить требуемую точность, и затем перемещает стрелку указателя. Далее я привожу общую запись метода, который использует Хол, без промежуточных шагов. (Я исхожу из того, что Хол является опытным пользователям и не прокручивает шкалу туда и обратно, чтобы найти на ней нужный участок.) Холу приходится несколько раз пользоваться стрелками для прокрутки температурной шкалы. На каждую операцию прокручивания экрана может потребовать нескольких жестов. Кроме того, требуется время на то, чтобы отобразить изменения на экране, связанные с его прокруткой. Чтобы оценить время прокручивания, я построил такой интерфейс и измерил эти значения. Все они были равны 3 с и более. Обозначая время прокручивания шкал через S, запишем последовательность жестов, которые применяет Хол. H P K S K P K S K P K S K P K K В соответствии с правилами расставляем операторы M: H + 3(M + P + K + S + K) + M + P + K + K 0.4 + 3*(1.35 + 0.2 + 3.0 + 0.2) + 1.35 + 0.4 + 0.2 + 0.2 = 16.8 с За исключением редких случаев, когда шкалы уже с самого начала установлены правильно, идеальному пользователю понадобится более 16 с на то, чтобы выполнить перевод из одной шкалы в другую, тогда как реальный, т.е.не идеальный пользователь, может сбивать шкалы и стрелки указателей, и поэтому ему понадобится даже больше времени.

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


Предисловие Благодарности Введение. Важность основ 1. Предпосылки 1.1. Определение интерфейса 1.2. Простое должно оставаться простым 1.3. Ориентация на человека и на пользователя 1.4. Инструменты, которые препятствуют новым идеям 1.5. Разработка интерфейса как часть общего цикла разработки 1.6. Определение человекоориентированного интерфейса 2. Когнетика и локус внимания 2.1. Эргономика и когнетика: что мы можем и чего не можем 2.2. Когнитивное сознательное и когнитивное бессознательное 2.3. Локус внимания 3. Значения, режимы, монотонность и мифы 3.1. Терминология и условные обозначения 3.2. Режимы 3.3. Модели «существительное-глагол» и «глагол-существительное» 3.4. Видимость и состоятельность 3.5. Монотонность 3.6. Миф о дихотомии «новичок-эксперт» 4. Квантификация 4.1. Количественный анализ интерфейса 4.2. Модель скорости печати GOMS 4.3. Измерение эффективности интерфейса 4.4. Закон Фитса и закон Хика 5. Унификация 5.1. Унификация и элементарные действия 5.2. Каталог элементарных действий 5.3. Имена файлов и файловые структуры 5.4. Поиск строк и механизмы поиска 5.5. Форма курсора и методы выделения 5.7. Ликвидация приложений 5.8. Команды и трансформаторы 6. Навигация и другие аспекты человекоориентированных интерфейсов 6.1. Интуитивные и естественные интерфейсы 6.2. Улучшенная навигация: ZoomWorld 6.3. Пиктограммы 6.4. Способы и средства помощи в человекоориентированных интерфейсах 6.5. Письмо от одного пользователя 7. Проблемы за пределами пользовательского интерфейса 7.1. Более человекоориентированные среды программирования 7.2. Режимы и кабели 7.3. Этика и управление разработкой интерфейсов Заключение Приложения A. Однокнопочная мышь: история и будущее B. Теория работы интерфейса для SwyftCard Библиография Алфавитный указатель


Интуитивные и естественные интерфейсы


Нападающий на всеобщее мнение поступает во всех отношениях опрометчиво и должен быть достаточно удачлив и необычайно силен на случай, если будет услышан.
Джон Стюарт Милл «Покорение женщин»

Многие требования, предъявляемые к интерфейсам, предполагают, что конечный продукт должен быть интуитивным, или естественным. Однако такой способности, как человеческая интуиция, не существует в том смысле, в котором это слово обычно используется, т.е. как некое знание, имеющееся изначально, до знакомства с понятием, и дающее возможность пропустить процесс познания и не использовать рациональное мышление. Когда какой-то специалист с помощью того, что мы обычно называем интуицией, делает некоторый вывод со скоростью и точностью, которые превышают способности обычных людей, мы знаем, что его вывод основан на его знаниях и опыте. Зачастую специалист просто использует методы и подходы, которые неспециалисту неизвестны. Специалист по какой-то задаче часто использует такую информацию, которую другие не осознают и не понимают. Таким образом, знания и опыт, в отличие от интуиции, являются реальными.

Когда пользователи говорят, что какой-то интерфейс является интуитивным, они имеют в виду, что он работает так же, как и какой-то другой метод или программа, с которыми они знакомы. Иногда это слово означает «привычный», как в предложении: «Использование этих средств редактирования со временем становится все более интуитивным». Или же оно может означать «уже знакомый», как, например, было сказано об одном из новых аэронавигационных устройств: «Как и любое другое, это устройство можно изучить, но для того чтобы использовать его интуитивно, потребуется большой опыт» (Collins, 1994 г.).

Другим словом, которое я стараюсь не использовать в отношении интерфейсов, является слово «естественный». Так же как и «интуитивный», его смысл, как правило, не определен. На обычном языке элемент интерфейса является «естественным», если он работает так, что пользователю совсем не требуется объяснять, как им пользоваться.
Обычно это означает, что есть какое-то другое знакомое человеку действие, которое выполняется аналогичным образом. Однако здесь трудно определить смысл слова «аналогичный». Подобия или аналогии могут быть различными. Когда курсор движется влево при перемещении мыши влево и когда он движется вправо при перемещении мыши вправо — это, несомненно, пример естественности. В данном случае термин «естественный» равнозначен выражению «который очень легко изучить». Хотя естественность, вероятно, невозможно определить количественно, совсем нетрудно измерить время, требуемое на изучение. Часто говорится, что использование мыши и есть пример интуитивности и естественности. Сейчас, конечно, трудно повторить такой эксперимент, поскольку мышь является самым распространенным ГУВ, но когда это устройство было менее известным, я просил людей, не сталкивавшихся с ним, попробовать применить мыть в среде Macintosh. В ходе эксперимента использовалась программа под названием «Люк» (The Manhole) — увлекательная и хорошо разработанная лабиринтная игра для детей, в которой не требовалось ничего, кроме нажатия на разные области экрана. Убрав клавиатуру, я показывал на мышь и говорил: «Это мышь. С ее помощью вы можете играть в эту игру. Попробуйте сделать несколько попыток». Если мне задавали какие-то вопросы, я старался на них не отвечать определенно и говорил что-нибудь вроде: «Ну, попробуйте». Реакция одной умной учительницы из Финляндии, которая до этого никогда не видела подобного устройства, хотя в других отношениях была компьютерно грамотной, была довольно типичной: она взяла мышь в руку и сняла со стола. Сегодня это кажется нелепым, но этот же момент был показан в одном фильме из научно-фантастического сериала «Star Trek». Инженер космического корабля попал из будущего в наши дни и оказался рядом с компьютером Macintosh. Он берет мышь в руки, подносит ее ко рту, как будто это микрофон, и говорит в нее с сильным шотландским акцентом: «Компьютер, ...» Эта ошибка вызывает смех зрителей.


Я порадовался за создателей фильма, которые показали, что мышь не является чем-то очевидным для каждого, кто пытается ею воспользоваться. В случае с моей финской знакомой ее следующим действием было перевернуть мышь и попытаться покрутить шарик. Ничего не произошло. Тогда она потрясла ее, после чего стала держать ее одной рукой, а другой стала нажимать на кнопку, что опять же не дало никакого результата. В конце концов, она приспособилась играть, удерживая мышь в своей правой руке и пальцами покручивая шарик снизу, а левой рукой нажимая на клавишу. Эти эксперименты показывают, что скорость изучения и легкость использования какого-то интерфейса не связаны с воображаемыми свойствами интуитивности и естественности. Научиться пользоваться мышью очень легко. Все, что мне нужно было сделать в экспериментах с участием людей, не знакомых с этим устройством, — это положить мышь на стол, подвигать ее и щелкнуть по чему-нибудь с ее помощью. Через 5-10 с каждый мог понять, как пользоваться мышью. Это действительно быстро и легко, но это не значит, что использование мыши является интуитивным или естественным. Убеждение, что интерфейсы могут быть интуитивными и естественными, часто оказывается препятствием для их улучшения. Меня часто просят в качестве консультанта помочь улучшить интерфейс какого-либо продукта. Обычно интерфейс можно улучшить так, чтобы с точки зрения времени изучения, скорости работы (продуктивности), частоты ошибок и простоты исполнения он был лучше в сравнении как с текущей версией продукта, так и с аналогичными продуктами конкурентов. Тем не менее, даже если мои предложения считаются значительными улучшениями, они зачастую отклоняются на том основании, что не являются интуитивными. Это классический случай Уловки-2240: клиент хочет получить нечто, что должно значительно превосходить то, что предлагается конкурентом. Но если это должно быть превосходящим, то это должно быть другим (обычно чем значительнее улучшение, тем сильнее разница). Поэтому результат не может быть интуитивным (т.е. знакомым). Клиент хочет получить интерфейс, который бы не сильно отличался от существующей практики разработки интерфейсов (что почти неизбежно означает Microsoft Windows) и, в то же время, каким-то образом стал бы значительным усовершенствованием. Это может быть достигнуто только в редких случаях, когда исходный интерфейс имеет какой-то существенный недостаток, который можно исправить простыми средствами. (Этот раздел частично основан на материалах книги Раскина, 1994 г.)

Истоки локуса внимания


То, что у нас может быть только один локус внимания, может показаться странным. Попробуем рассмотреть причины этого. Баарс в своей работе (1988) красноречиво отвечает на этот вопрос, пытаясь найти биологическое объяснение тому, что мы развились таким ограниченным образом, и утверждает, что

«сознание и связанные с ним механизмы ставят под сомнение функциональные объяснения проблемы, поскольку возможности сознания парадоксальным образом ограничены. Почему мы не можем переживать две разные «вещи» одновременно? Почему кратковременная память (STM)8 способна вместить не более полудюжины несвязанных между собой элементов? Каким образом такие ограниченные возможности оказались приемлемыми? Как было бы замечательно, если бы мы могли читать одну книгу, а писать другую, говорить с приятелем и еще наслаждаться какой-нибудь вкусной едой, и все это одновременно. Определенно, возможности нашей нервной системы кажутся достаточными для того, чтобы совершать все эти действия в одно и то же время. Стандартный ответ про некие «физиологические» ограничения — что у нас только две руки и один рот — кажется неубедительным, поскольку он приводит к другому вопросу, который еще более усложняет проблему: почему организмы, наделенные самым совершенным мозгом в животном царстве, не развили у себя руки и рты, чтобы нормально управляться с несколькими параллельными процессами? А также — почему наша способность к параллельной обработке информации возрастает с автоматизмом и уменьшается по мере того, как в процесс вовлекается сознание? (с. 348)»

Баарс предполагает, что ответ на эти вопросы связан с тем, что в каждом из нас существует только одно «Я», что есть только одна «целостная система». Но если сказать, что в человеке есть только одна личность, то это вызывает очередной вопрос, а именно: почему ансамбль «сознание-тело» не содержит в себе множества личностей? Здесь я говорю не об изменениях, которые происходят постоянно@, но о действительно одновременном наличии нескольких независимых друг от друга сознаний в едином физическом организме.
Возможно, что наличие только одной личности является формой биологического приспособления к линейности времени либо обусловлено скорее эволюционной случайностью, чем функциональной адаптацией. Тем не менее, причина того, что личность только одна, вероятнее всего, состоит именно в адаптации — содержать в одном теле одновременно множество личностей, наверное, было бы просто физически невозможно. При свойственной нам организации тела две личности не могли бы одновременно разговаривать или поворачивать голову в разных направлениях. Даже если бы наши глаза могли двигаться независимо друг от друга, как у геккона, разве они смогли бы удовлетворить два разных любопытства? Как мне представляется, человек, у которого в результате мутации возникло множество сознаний, стал бы жертвой какого-нибудь хищника, попытавшись убежать от него в разные стороны одновременно, — и это только один из возможных трагических вариантов9. Иногда рождаются сиамские близнецы и двухголовые животные, но они имеют два разных сознания, и эти случаи обусловлены неправильной записью или прочтением генетического кода. Их нельзя назвать успешными с точки зрения эволюции, и они не являются результатом естественного отбора. В естественных условиях такие капризы природы вряд ли смогли бы выжить и дать потомство.

Измерение эффективности интерфейса


Каждый инструмент несет с собой тот дух, в котором он был создан.
Вернер Карл Гейзенберг

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

Если имеется модель интерфейса, то с помощью GOMS и его расширений можно определить время, необходимое пользователю на выполнение любой, четко сформулированной задачи, для которой данный интерфейс предусмотрен. Однако модели анализа не могут дать ответ на вопрос о том, насколько быстро должен работать интерфейс. Чтобы ответить на него, мы можем воспользоваться мерой, применяемой в теории информации. Далее мы будем рассматривать термин информация в техническом смысле, т.е. как квантификацию некоторого объема данных, передаваемых с помощью средства коммуникации, как, например, при разговоре двух людей по телефону, или если человек подает некоторый сигнал машине, например с помощью нажатия кнопки ГУВ, когда курсор находится в определенной области экрана. Перед тем как углубиться в детали техники измерения того, какой объем информации нужен для выполнения поставленной задачи, обоснуем необходимость такого измерения.

Чтобы сделать правильную оценку времени, необходимого на выполнение задачи с помощью самого быстрого интерфейса, прежде всего следует определить минимальное количество информации, которое пользователь должен ввести, чтобы выполнить задачу. Это минимальное количество не зависит от модели интерфейса. Если методы работы, используемые в предполагаемом интерфейсе, требуют введения такого количества информации, которое превышает минимальное, это означает, что пользователь делает лишнюю работу, и поэтому интерфейс можно усовершенствовать. С другой стороны, если от пользователя требуется ввести именно то количество информации, которое необходимо для выполнения задачи, то для этой задачи интерфейс нельзя сделать более производительным путем изменения количества информации.
В этом случае пути улучшения интерфейса (а также много путей для ухудшения) все же остаются, но по крайней мере данная цель повышения производительности будет уже достигнута. Информационно-теоретическая производительность определяется так же, как понятие производительности определяется в термодинамике — отношением мощности на выходе к мощности на входе процесса. Если в течение какого-то периода времени электрогенератор, работающий от двигателя производительностью в 1000 ватт, производит 820 ватт, то он имеет производительность 820/100=0.82. Производительность также часто обозначается через проценты. В этом случае производительность электрогенератора будет составлять 82%. Идеальный генератор (который не может существовать с точки зрения второго закона термодинамики) должен иметь производительность 100%. Информационная производительность интерфейса E определяется как отношение минимального количества информации, необходимого для выполнения задачи, к количеству информации, которое должен ввести пользователь. Так же как и в отношении физической производительности, параметр E может изменяться в пределах от 0 до 1. Если никакой работы для выполнения задачи не требуется или работа просто не производится, то производительность составляет 1. (Это формальное положение вводится для того, чтобы избежать деления на 0, как в случае ответа на выводимое прозрачное сообщение об ошибке (см. раздел 5.5).) Производительность E может равняться и 0 в случаях, когда пользователь должен ввести информацию, которая совершенно бесполезна (рис. 4.4). Следует отметить, что в интерфейсах можно встретить немало деталей, которые имеют сомнительную ценность из-за параметра E=0. Примером такого бесполезного элемента может быть диалоговое окно, в котором есть только одна-единственная возможность для действия пользователя, например кнопка OK. (В JavaScript есть даже специальная команда Alert, предназначенная только для того, чтобы делать такие ненужные диалоговые окна. Разработчики языка JavaScript были достаточно разумны, чтобы убрать из него команду goto и сделать программирование на этом языке структурным, но они упустили из виду аспект интерфейса.)




Рис. 4.4. Диалоговое окно с информационной теоретической эффективностью 0 В параметре E учитывается только информация, необходимая для задачи, и информация, вводимая пользователем. Два или более методов действия могут иметь одинаковую производительность E, но иметь разное время выполнения. Возможно даже, что один метод имеет более высокий показатель E, но действует медленнее, чем другой метод, — например M K M K и M K K K. В этом примере при использовании первого метода должно быть введено только два символа. При использовании второго метода требуется ввести три символа, но времени на все действие тратится меньше. Трудно привести другие примеры из обычной жизни, в которых происходит аналогичная перестановка скорости и информационной производительности.22 Как правило, чем более производительным является интерфейс, тем более продуктивным и более человекоориентированным он является. Информация измеряется в битах. Один бит, который представляет собой один из двух альтернативных вариантов (таких как 0 или 1, да или нет), является единицей информации.23 Например, чтобы выбрать один из каких-либо четырех объектов, потребуется 2 бита информации. Если объекты обозначить как A, B, C и D, первый бит информации определит выбор между A и B или C и D. Когда первый выбор сделан (например, C и D), второй бит определит выбор между следующими двумя элементами (либо C, либо D). Двух двоичных выборов, или двух битов, достаточно для выбора одного элемента из четырех. Чтобы сделать выбор из группы восьми элементов, потребуется 3 бита. Из шестнадцати элементов — 4 бита, и т.д. В общем случае при количестве n равновероятных вариантов суммарное количество передаваемой информации определяется как степень 2, равная n: \log_2 n Количество информации для каждого варианта определяется как
(1/n) \log_2 n (1)
Если вероятности для каждой альтернативы не являются равными и i-я альтернатива имеет вероятность p(i), то информация, передаваемая этой альтернативой, определяется как
p(i) \log_2(1/p(i)) (2)
Количество информации является суммой (по всем вариантам) выражения (2), которое при равновероятных вариантах сводится к выражению (1).


Отсюда следует, что информационное содержание интерфейса, в котором возможно сделать только нажатие единственной клавиши (а ненажатие клавиши не допускается), составляет 0 бит:
1 \log_2(1) = 0 (3)
Однако может показаться, что нажатие единственной клавиши способно, например, вызвать подрыв динамита для разрушения здания. Таким образом, передает ли это нажатие какую-нибудь информацию? На самом деле нет, потому что ненажатие кнопки не было предусмотрено как альтернатива — интерфейс допускает «только нажатие единственной клавиши». Если же нажатие клавиши не производится в течение 5-минутного периода, когда подрыв возможен, то здание не будет разрушено, и поэтому нажатие или ненажатие передает до 1 бита информации, так как в этом случае имеется альтернатива из двух вариантов. Из выражения (2) следует, что в вычислениях используется вероятность (p) того, что здание будет разрушено. Таким образом, вероятность того, что оно не будет разрушено, составляет 1-p. С помощью выражения (2) мы можем вычислить информационное содержание данного интерфейса:
p \log_2(1/p) + (1-p) \log_2(1/(1-p)) (4)
При p=S результат выражения (4) составит: S*1 + S*1 = S + S = 1 Значение выражения (4) будет меньше 1, если p ≠ S. В частности при p = 0 или p = 1 оно составит 0, как это видно из выражения (3). Этот пример показывает важный момент, который заключается в том, что мы можем оценить объем информации, содержащейся в сообщении, только в контексте всего набора возможных сообщений. Чтобы подсчитать количество информации, передаваемой некоторым полученным сообщением, необходимо знать в частности вероятность, с которой это сообщение может быть отправлено. Количество информации в любом сообщении не зависит от других сообщений, которые были в прошлом или могут быть в будущем, не связано со временем или продолжительностью и не зависит от каких-либо иных событий, так же как результат подбрасывания симметричной монеты не зависит от результата предыдущих подбрасываний или от времени дня, когда это подбрасывание производится. Кроме того, важно учитывать, что: «нельзя путать понятие информации с понятием смысла ...информация является мерой свободы выбора сообщения...


Следует отметить, что при наличии только двух возможных сообщений утверждать, что какое-то сообщение передает какой-то объем [1 бит] информации, неправильно. Понятие информации не применимо к отдельным сообщениям (в отличие от понятия смыла), но применимо к ситуации в целом; при этом единица информации показывает, что в данной ситуации имеется некоторый объем свободы в выборе сообщения, который удобно обозначать как стандартный или единичный объем информации» (Shannon и Weaver, 1963, с. 9). Однако действия, которые совершает пользователь при выполнении задачи, можно с большей точностью смоделировать в виде процесса Маркова, в котором вероятность последующих действий зависит от уже совершенных пользователем действий. Тем не менее, для данного рассмотрения достаточно использовать упомянутые вероятности отдельных, единичных событий, при этом будем исходить из того, что все сообщения являются независимыми друг от друга и равновероятными. Также можно вычислить количество информации, которое передается с помощью устройств, отличающихся от клавиатуры. Если экран дисплея разделен на две области — со словом «Да» в одной области и словом «Нет» — в другой, то один клик, совершенный в одной из областей, будет передавать 1 бит информации. Если имеется n равновероятных объектов, то нажатием на один из них сообщается \log_2 n бит информации. Если объекты имеют разные размеры, то количество информации, сообщаемой каждым из них, не изменяется, но увеличивается время перемещения ГУВ к более мелким объектам (далее мы покажем способ вычисления этого времени). Если объекты имеют разные вероятности, формула остается аналогичной той, которая была дана для случая ввода с клавиатуры разновероятных данных. Различие состоит только в том, что для нажатия клавиши может потребоваться 0.2 с. тогда как для нажатия кнопки, изображенной на экране, в среднем может потребоваться около 1.3 с (без учета времени перемещения руки пользователя с клавиатуры на ГУВ). В случае голосового ввода информации его информационное содержание можно вычислить, если рассматривать речь как последовательность вводимых символов, а не как непрерывный поток определенного диапазона и продолжительности. Данный подход к теории информации и ее связи с разработкой интерфейсов является упрощенным.Но даже в такой упрощенной форме, которую мы также использовали при рассмотрении модели GOMS, теория информации может дать нам общий критерий оценки качества интерфейса.

Экранные состояния объектов


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

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

Приведем некоторые другие команды, изменяющие состояние текста.
С помощью команды Заблокировать (Lock) можно просто запирать текст или другое содержание. Заблокированное содержание можно просматривать, выделять и копировать, но нельзя изменять или перемещать. Обратная команда — Разблокировать (Unlock) — может быть применена к выделенному содержанию для его разблокировки при условии, что оно было заблокировано (в противном случае команда не дает никакого результата, т.е. она не должна быть переключателем). С помощью другой команды — Заблокировать с паролем (Lock with Password) — можно заблокировать старую выборку, используя текущую выборку в качестве пароля. Эта команда также имеет обратный аналог (Разблокировать по паролю (Unlock with Password)). Возможность заблокировать какое-то содержание может быть довольно полезной. Например, она может использоваться для создания стандартных форм для заполнения. Неизменные элементы формы могут быть заблокированы, в том числе и по паролю, при этом простое блокирование позволит предотвратить случайные изменения, а блокирование по паролю — несанкционированные изменения. Если бы электронная инструкция по использованию некоторой компьютерной системы входила в набор текстов, с которыми компьютер изначально поставлялся, — что в общем является неплохой идеей, — то такое руководство, вероятно, блокировалось бы производителем по паролю еще на заводе. Команды Экранная блокировка (Screen Lock) и Экранная разблокировка (Screen Unlock) позволяют заблокировать и разблокировать позиции объектов, выделенных на экране. С помощью этих команд пользователь может создавать меню, которые будут сохранять свое место на экране, в то время как другие объекты перемещаются под ними. Можно даже связывать позицию меню с днем недели (насколько такая возможность является полезной — это уже другой вопрос). Чтобы использовать эту команду, вы размещаете объект в требуемой позиции на экране, выделяете его и применяете команду Экранная блокировка.


Также должна быть версия этой команды с использованием пароля для тех случаев, когда нежелательно, чтобы пользователь мог изменить позицию того или иного меню. Другой полезной командой является регулировка прозрачности выборки. В некоторых ситуациях, таких как, например, отображение сообщений об ошибках, полезно сформировать выборку достаточно прозрачной, чтобы лежащий под ней материал можно было видеть и продолжать с ним работать (рис. 5.2). Аналогичным образом с помощью другой команды можно было бы определять, скрывает ли данный объект другой объект либо скрывается им, либо просматривается через него. Прозрачное окно сообщения может исчезать медленно, а не внезапно, давая пользователю время заметить его. Также необходимо, чтобы в некотором документе сохранялись все сообщения для последующего обзора.


Рис. 5.2. Эффективность прозрачного сообщения об ошибке на фоне текста составляет 1 Для удаления прозрачного диалогового окна не требуется нажатие какой-либо клавиши, так как вы можете продолжить работу через него. Такое окно не создает режимов и является высокоэффективным (эффективность составляет 1). Как и любой другой метод, эта идея имеет свои ограничения и может быть использована чрезмерно. Поток ненужных сообщений все равно отвлекает внимание, даже если пользователь может продолжить работу во время того, как они исчезают. В соответствии с принципом видимости, должно быть предусмотрено визуальное отличие для текста, который является заблокированным, экранно заблокированным, заблокированным по паролю и т.д. Принцип человекоориентированного интерфейса заключается в том, что система сама должна быть построена из тех же самых элементов, что знакомы вам по повседневному использованию этой системы. Такой подход позволяет создавать более понятные продукты.

Эксплуатация единого локуса внимания


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

Наличие у человека только одного локуса внимания имеет и положительные стороны. Фокусники эксплуатируют это свойство нашей психики самым бесстыдным образом. Хороший фокусник может так зафиксировать внимание всей аудитории на одной руке, что ни один зритель не заметит того, что в это время делает другая его рука, хотя она никак и не скрыта. Если нам известно, где в данный момент внимание пользователя зафиксировано, мы можем производить изменения во всех остальных частях системы, зная, что они его не отвлекут. Этот эффект был использован при разработке компьютера Canon Cat (рис. 2.1). Когда пользователь прекращал работу, компьютер сохранял на первой дорожке диска побитовое изображение экрана именно в том виде, который был на момент остановки работы. Когда пользователь возвращался к работе, на экран за долю секунды помещалась та самая картинка. Человеку необходимо около 10 секунд для того, чтобы переключиться с одного контекста на другой или мысленно подготовиться к предстоящей задаче (Card, Moran и Newell, 1983, с. 390), в то время как компьютеру Canon Cat требовалось всего лишь 7 секунд, чтобы считать с диска остальную рабочую часть информации. Поэтому, пока пользователь смотрел на статичное изображение на экране, вспоминая, чем он занимался, и решая, что он собирается делать далее, в его локусе внимания находились приготовления к предстоящей задаче, а система тем временем завершала загрузку. Только после этого экран становился активным, хотя и не меняя своего вида — за исключением того, что курсор начинал мигать. Только отдельные пользователи смогли заметить весь этот фокус. Большинство же владельцев просто думали, что их компьютер умеет магическим образом считывать всю дискету за ту долю секунды, когда появляется первое изображение.
Блестяще! Многие не верят, что человеку требуется в среднем 10 секунд для того, чтобы переключить свое внимание с одного контекста на другой. Это время отсчитывается от последней команды, выполненной в предыдущем контексте, до первой команды, выполняемой в новом контексте. Этот промежуток времени обычно не замечается, поскольку сознание пользователя в это время занято. Тем не менее, при разработке интерфейсов этот феномен должен использоваться с осторожностью. Если во время работы пользователю необходимо постоянно переходить в один из контекстов, то этот переход может стать для него привычным и поэтому происходить за гораздо меньшее время. Разного рода запаздывания можно скрыть. Например, карточная игра, в которой на генерацию каждой новой раздачи требуется несколько секунд, кажется более быстрой, если в это время воспроизводить шелестящий звук тасуемых карт. Ценность такой маскировки обнаруживается, если этот звук внезапно отключить. Тогда задержка сразу станет казаться раздражающей (Dick Karpinski, личное сообщение, 1999).


Рис. 2.1. Компьютер Canon Cat. Обратите внимание на две клавиши LEAP, расположенные под клавишей пробела

Эргономика и когнетика: что мы можем и чего не можем


Познай себя!
Надпись возле Дельфийского Оракула. Плутарх «Морали»

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

Руководства по разработке продуктов, взаимодействующих с нами физически, обычно содержат конкретную информацию, основанную на свойствах и возможностях человеческого скелета и органов чувств. Совокупность сведений в этой области составляет науку эргономику. На основе этих знаний можно проектировать стулья, столы, клавиатуры или дисплеи, которые с высокой степенью вероятности будут удобны для своих пользователей. Тем не менее, нельзя пренебрегать тщательным тестированием разрабатываемых продуктов. Вы не станете проектировать машину, обслуживание которой предусматривает, чтобы один человек оперировал двумя переключателями, расположенными в трех метрах друг от друга. Очевидно, что людей с такими физическими размерами не бывает. Тема эргономики в компьютерной технике, выходящая за пределы данного изложения, рассматривается в обзоре разработок интерфейсов, представленном в книге Мэйхью (Mayhew, 1992, гл. 12). В эргономике учитывается статистическая волатильность параметров человеческого тела. Можно спроектировать автомобильное кресло, подходящее для 95% населения, тогда как остальным 5% потенциальных покупателей автомобиля такие кресла покажутся неудобными. Создание кресла, которое можно было бы регулировать в широком диапазоне, в том числе для редких пользователей с ростом 1 м или еще более редких с ростом 2,5 м, было бы механически невыполнимым или же потребовало значительных затрат.

Большая часть машин, созданных нашей цивилизацией, были механическими и взаимодействовали с нами главным образом физически. Соответственно, наши физические ограничения сравнительно легко учесть.
Постепенно человеческие изобретения стали иметь все большее отношение к области интеллектуальных задач, нежели физических. Мы должны овладеть эргономикой сознания, если мы хотим создавать интерфейсы, которые могли бы хорошо работать. Удивительно, но мы часто не замечаем собственные ментальные ограничения, поэтому для определения границ возможностей нашего сознания мы должны прибегнуть к тщательному наблюдению и экспериментированию. Изучение прикладной сферы наших ментальных способностей называется когнитивным проектированием, или когнетикой. Некоторые когнитивные ограничения очевидны: например, нельзя ожидать от обычного пользователя способности перемножать в уме 30-значные числа за 5 секунд, поэтому нет смысла разрабатывать интерфейс, который требовал бы от пользователя такой способности. Однако мы часто не учитываем другие ментальные ограничения, которые оказывают неблагоприятное влияние на нашу продуктивность при работе с интерфейсами «человек-машина», хотя эти ограничения присущи каждому человеку. Интересно отметить, что все известные компьютерные интерфейсы, а также многие некомпьютерные интерфейсы «человек-машина» разработаны с расчетом на некие когнитивные способности, которыми, как показывают эксперименты, мы на самом деле не обладаем. Большая часть трудностей, связанных с использованием компьютеров и подобных устройств, возникает скорее из-за низкого качества интерфейса, чем из-за сложности самой задачи или же недостатка старания или умственных способностей у пользователя. Когнетика, так же как и эргономика, учитывает статистическую природу различий между людьми. Тем не менее, следует прежде всего рассмотреть сами ограничения, присущие нашим когнитивным способностям, поскольку знания об этих ограничениях пока мало находили практическое применение. К счастью, нам не придется рассматривать физическую структуру мозга хотя бы потому, что наши сегодняшние знания об этом органе весьма неопределенны. Успешный интерфейс вполне может быть разработан на основе прагматического и эмпирического взгляда на то, что может и чего не может человеческий ум, сколько времени требуется человеческому сознанию и телу на выполнение тех или иных задач и какие условия повышают вероятность совершения ошибки.

Этика и управление разработкой интерфейсов


Разумный человек приспосабливает себя к миру. Неразумный человек стремится приспособить мир к себе. Следовательно, весь прогресс зависит от людей неразумных.
Бернард Шоу

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

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

Если не учитывать, что данная область является довольно новой, и поэтому мало кто из специалистов в этой области пока поднялся до управляющих должностей, другой проблемой является то, что разработчики интерфейсов имеют небольшое влияние. Однако идет некоторая работа по решению этой проблемы с помощью предложения образовательных стандартов и тестов. Тем не менее, обладание такого сертификата у специалиста еще не является гарантией его компетентности. Здесь речь идет о другой стороне этой проблемы.
Продукты, которые удовлетворяют данным критериям, могут получать какую-то форму сертификации. Эти критерии будут автоматически изменяться по мере развития интерфейсной технологии. В настоящее время новые продукты часто оказываются сложнее в использовании, чем старые, но это нельзя понять до тех пор, пока вы не попробуете это проверить на собственном опыте. Поскольку эти критерии касаются эффективности, т.е. в конечном счете определяют итоговый результат работы пользователя, то руководители проекта должны уделять им особое внимание. От публикации объективных нормативов качества интерфейсов выиграют не только разработчики и руководители проекта, но также и покупатели. Стив Уайлдстром (Steve Wildstrom), который публикует свои статьи в еженедельнике Business Week, указывает, что «производители компьютеров и, в особенности, разработчики программного обеспечения, часто думают, что требования Единого коммерческого кодекса (Uniform Commercial Code) касаются не их, а кого-то другого» (частный разговор, октябрь 1998 г.). Многие современные лицензии на программное обеспечение, навязываемые покупателям, не гарантируют им даже того, что это программное обеспечение будет выполнять задачу, о которой сообщалось в рекламе. Во многих таких документах прямым образом отрицается понятие merchantability (годности для продажи), которое означает буквально следующее: продажа данного продукта автоматически предполагает, что этот продукт способен выполнять задачу, для которой он, по заявлению продавца, предназначен. В некоторых штатах США были приняты законы, запрещающие отказ от подтверждения «годности к продаже» для продуктов компьютерного производства. Все верховные власти должны поступить так же. Система оценки качества интерфейсов, осуществляемая независимой организацией, может быть полезной для покупателей тех продуктов, в которых интерфейсный компонент выполняет значительную роль. Сама разработка пользовательского интерфейса не должна как-то регулироваться или ограничиваться.


Следует избегать применения принципов, основанных на использовании конкретных интерфейсных механизмов, чтобы не подавлять стремление к нововведениям. Однако введение относительных количественных нормативов продуктивности для продуктов одного типа побудит разработчиков двигаться в правильном направлении. Нужно найти тонкий баланс между созданием настолько нового продукта, что опытные пользователи, привыкшие к обычным интерфейсам, почувствуют неудобство в его использовании, и созданием продукта с интерфейсом, который настолько не отличается от стандартного графического пользовательского интерфейса, что его никак нельзя считать результатом нашего желания в максимальной степени помочь пользователю. С одной стороны, мы должны избежать новизны как таковой, хотя с другой стороны, мы не должны терять ценную возможность выиграть на рынке из-за того, что декалькируем аналогичные существующие продукты. В бизнесе разработки интерфейсов давно существует миф о том, что «расширение функциональности и сохранение простоты использования не могут быть совмещены в одном интерфейсе» (Microsoft, 1995, с. 8). Действительно, добавление множества специальных, созданных именно для данного случая сервисов, уменьшает простоту использования. Но как раз это является плохой разработкой. Часто, но не всегда, возможно увеличить функциональность, не увеличивая степень сложности интерфейса. Добавление нового сервиса, как правило, может быть сделано таким образом, что это не прибавит сложности в интерфейсе (здесь следует отметить разницу между сложностью интерфейса и сложностью задачи). Если добавляемая функция позволяет объединить в единое целое разрозненные элементы интерфейса, то такой интерфейс может стать проще. «Одним из способов сохранить простоту заключается в сокращении объема предъявляемой информации до того минимума, который необходим для адекватного взаимодействия» (Microsoft, 1995, с. 8). Это действительно так, за исключением того, что слово «адекватного» следует заменить словом «нормального».


Однако в этой компании ошибаются, когда утверждают: «Например, не используйте словесных описаний командных имен или сообщений» (Microsoft, 1995, с. 8). Здесь возникает вопрос: что же можно считать минимумом для нормального взаимодействия? В большинстве современных интерфейсов акцент делается на краткость в ущерб ясности. Почему мы должны заниматься расшифровкой непонятного названия «Список» в выпадающем меню в текстовом процессоре, когда можно было бы использовать более понятное «Создать указатель или оглавление»? (Необходимо учесть, что выпадающее меню не занимает места в документе, поскольку оно исчезает сразу же, как только вы уводите от него курсор или выбираете какую-то из опций.) Не следует путать простой внешний вид экрана с простотой использования интерфейса. Навигация против свободного пространства Кажется, что мы просто боимся отображать информацию в наших интерфейсах. Известно, что чем меньше группа вещей, тем легче найти в ней нужный предмет. Однако из этого не следует, как это может некоторым показаться, что чем меньше элементов на экране, тем лучше. Если сотни элементов разбросаны в десятках экранов, то вы больше времени потеряете на перемещения между ними, чем на сам поиск конкретного элемента, даже если этот элемент находится среди моря других аналогичных. Поиск чего-то в длинных, однообразных списках не всегда может быть трудным. Если бы люди не могли быстро находить короткие элементы в длинных списках, журнал «Уолл стрит джорнал» уже давно бы разорился. Предпочли бы вы, чтобы котировки акций печатались по 15 строк на странице, каждая их которых оформлена наподобие экрана из современного интерфейса, в придачу даже со схемой поиска нужной страницы вроде:

Ценные бумаги Страница
AA-AD 1
AD-AS 2
AT-AZ 3
ВА-ВК 4
и так далее
Такая схема показалась бы несерьезной, неэкономной и странной. Однако иногда мы используем больше экранных пикселов на то, чтобы сделать аккуратные рамки с тенями, чем на отображение полезной информации.


Если человек имеет мотив ( обусловленный личным интересом или зарплатой) для того, чтобы искать какие-то нудные данные, длинные списки не могут представлять для него никакой проблемы. Визуальный дизайнер Эдвард Тафт (Edward Tufte, 1983, с. 105) разработал принципы отображения информации, среди которых первыми тремя являются следующие: данные следует показывать прежде всего остального; следует максимально увеличивать долю чернил, используемых для отображения данных; следует максимально уменьшать долю чернил, которые не используются для отображения данных. Для того чтобы приложить эти принципы к устройствам с дисплеями, требуется всего лишь заменить в них слово чернила на слово пикселы. Серьезный, профессиональный пользователь желает, чтобы экраны были до отказа заполнены полезным содержанием. Экраны должны быть хорошо обозначены, снабжены простыми механизмами для осуществления поиска и получения информации, отражающей суть данного экрана. (В конце концов, раз уж мы сели за компьютер, мы должны извлечь из этого максимальную пользу.) Сегодня существует множество исследований о дизайне экранных изображений. Многие ранние, но до сих пор не утратившие свою ценность исследования, рассмотрены в обзоре Туллиса (Tullis, 1984). Некоторые из результатов до сих пор могут быть использованы (например, время поиска в списке элементов составляет приблизительно 30 мс на каждый элемент (с. 126)). Основные результаты, полученные Туллисом, относились к 24х80 алфавитно-цифровым дисплеям и позволяли дать количественные оценки53. Если эти результаты применить к современным растровым дисплеям и получить критерий оценки времени поиска целевого объекта, то это позволило бы не только оптимизировать отдельные, изолированные безоконные экранные изображения (в соответствии с ограничениями Туллиса), но также достичь более глобальной оптимизации, связанной с оценкой навигационной структуры. Как отмечает Туллис (с. 132), почти всегда необходимо искать компромисс между сложностью экрана и сложностью навигации.


Этот компромисс зависит от скорости и простоты работы навигации и от структуры данных. Когда для выполнения внутриэкранного поиска вместо визуального сканирования используется поисковое устройство (как, например, функция LEAP), то для оценки эффективности должны быть разработаны другие виды критериев. Здесь имеется широкая область для дальнейших исследований. В любом случае, если довести до логического конца популярную философию экранного дизайна, которая сводится к принципу, что «чем больше пустого пространства, тем легче читать», то мы увидим, что тогда на каждом экране должен помещаться только лишь один элемент данных. В этом случае пользователь уж точно сможет визуально распознать этот элемент с наименьшим возможным усилием. Имея опыт улучшения множества продуктов с помощью сокращения количества экранов и увеличения доли информации на оставшихся экранах, — или, другими словами, с помощью улучшения логической структуры дизайна, приводящего к такому сокращению, — я пришел к выводу, что почти во всех коммерческих программах мы допускаем ту ошибку, что помещаем на экраны слишком мало информации. Лучший способ заставить интерфейс вашего продукта отличаться — это сделать так, чтобы он работал. В книге Нормана «Невидимый компьютер» (Norman, «The Invisible Computer», 1998) можно найти хорошо написанное и убедительное обоснование важности вопросов разработки интерфейсов, которое в большой степени обращено к тем, кто осуществляет руководство проектами. 52 Некоторые кабели, используемые для соединения оборудования, расположенного на больших расстояниях друг от друга (например, фотографические стробоскопические источники света), снабжены соединителями-гермафродитами. Другой пример — это вышедшие из употребления коаксиальные радиочастотные соединители питания для регистра общего назначения. 53 Критерии, предложенные Туллисом, не учитывают качества содержания, но только его внешний вид. Можно построить такие образцы изображений, которые по этим критериям будут иметь высокие оценки, но будут сложны в использовании.
<= Previous Index Next =>


Каталог элементарных действий


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

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

Элементарные действия, выполняемые пользователем в различных комбинациях, порождают набор элементарных операций, которые применяются к содержанию и используются почти во всех интерфейсах.
Перечислим, какие операции могут быть применены к содержанию: Указание. Пользователь может указать на то или иное содержание. Выделение. Пользователь может выделить какое-то содержание. Активизация. С помощью «клика» пользователь может активизировать содержание. Модификация или использование (с помощью команд): Генерация. Модификация из «пустого» в «непустое». Удаление. Модификация из «непустого» в «пустое». Перемещение. Вставка содержания в одно место и одновременное его удаление из другого. Трансформация. Преобразование в другой тип данных. Копирование. Содержание может быть отправлено или получено от внешнего устройства или скопировано в другую область внутри системы. Например, содержание можно распечатать, отправить по электронной почте, сохранить на жестком диске, копировать в другой документ и т.д. Эти элементарные операции могут и должны быть основой компьютера или самой программы, т.е. они должны являться частью аппаратного или базового программного обеспечения, а не входить в состав множества программных пакетов, и каждая элементарная операция должна всегда вызываться одинаковым образом, независимо от того, к каким объектам они применяются. В основном когнитивные различия между программами заключаются в способах представления выделенного содержания и того, как пользователь может с ним оперировать. В электронных таблицах значения представляются в табличной форме, а применяемая к ним операция может состоять в том, что столбец без итогового значения внизу преобразуется в столбец, внизу которого указывается сумма значений всех его ячеек. В текстовом процессоре текст и иллюстрации представляются в виде страниц, а типичной операцией, применяемой к ним, является изменение начертания текста с обычного на наклонное. В программе обработки веб-страниц страница из текстового процессора может быть преобразована в HTML-формат. В программе обработки фотоизображений фотография с низким контрастом может быть преобразована в фотографию с высоким контрастом. Большинство операций, выполняемых с содержанием, можно описать с помощью этих элементарных операций.


Например, во многих системах имеется возможность сделать запрос о свойствах какого-нибудь объекта. (Если система оснащена двухкнопочным ГУВ, пользователь обычно может выполнить это действие с помощью нажатия на правую кнопку при условии, что курсор наведен на этот объект и система находится в соответствующем состоянии.) Запрос свойств объекта означает, что необходимо получить дальнейшую информацию об элементе или набор связанных с ним опций. Но также его можно рассматривать и как операцию, примененную к одному объекту, чтобы вывести на экран связанный с ним другой объект. С точки зрения пользователя, нет необходимости в том, чтобы операции, выполняемые в операционной системе, отличались от операций, выполняемых в приложениях, и поэтому такого различия не должно быть. То, что интерфейсы всех приложений основаны на небольшом наборе элементарных операций, подтверждает тот факт, что приложения как таковые не очень отличаются друг от друга с точки зрения интерфейса, независимо от того, насколько они сложны и разнообразны с точки зрения задач, для которых они предназначены. Такое базовое подобие можно использовать для создания мощных компьютерных систем, обладающих беспрецедентной степенью простоты и эффективности. Для начала нам следует определить несколько методов отбора и выделения содержания, к которому предполагается применить какую-то операцию. Эти методы будут рассмотрены в разделе 5.2.1.

Когнетика и локус внимания


Он плакал и раздражался, но все было тщетно.
Доминик Манчини, говоря не о «зависшем» компьютере, а об Эдуарде V, короле Англии. «Occupatione Regni Anglie per Riccardum Tercium (1483)». Цитата приводится в книге Алисон Уир «Принцы в башне» (1992)

При всей сложности компьютеров и других продуктов современной технологии «машинная» часть интерфейса «человек-машина» легче поддается пониманию, чем человеческая— намного более сложная и изменчивая. Тем не менее, многие (возможно, даже очень многие) факторы человеческой производительности не зависят от возраста, пола, культурного происхождения или уровня компетентности пользователя. Эти свойства человеческой производительности и способности к обучению имеют непосредственное отношение к основам разработки любого интерфейса. В частности, тот факт, что мы имеем один локус1 внимания, оказывает влияние на многие аспекты разработки интерфейсов «человек-машина».



Когнитивное сознательное и когнитивное бессознательное


О, доктор Фрейд, доктор Фрейд, если бы только вы занимались чем-нибудь другим!
Давид Лазар «Доктор Фрейд», 1951

Использование таких терминов, как сознательное и бессознательное, которые имеют вполне определенное значение в психологии, философии и истории и применяются для описания аспектов функционирования нашего мышления, может вызывать некоторые затруднения. В контексте технического проектирования имеет смысл пользоваться более ограниченными понятиями когнитивного сознательного и когнитивного бессознательного. Еще более точными были бы термины эмпирическое сознательное и эмпирическое бессознательное, однако более благозвучные варианты, предложенные Килстромом (Kihlstrom), уже стали общепринятыми (Cohen and Schooler, 1997, с.137). Понимание того, что мы обладаем этими двумя отдельными наборами ограниченных ментальных способностей, а также того, как они работают во взаимодействии с интерфейсами «человек-машина», важно для разработки интерфейсов в той же степени, в какой знание о размере и силе человеческой руки важно для разработки клавиатуры.

Дадим краткое определение: бессознательными называются те ментальные процессы, которые вы не осознаете в тот момент, когда они происходят. Когнитивное бессознательное — это не грандиозное мифическое порождение фрейдистской психологии, а явление, которое можно продемонстрировать с помощью простого эксперимента, о котором мы скажем далее. Несмотря на обилие книг, посвященных вопросам и парадоксам сознания, изложенный в этой главе подход, взятый из книги Бернарда Баарса «Когнитивная теория сознания» (Bernard J. Baars. A Cognitive Theory of Consciousness, 1988), позволяет избежать дилемм, свойственных данному вопросу, и обращает нас только к тому, что мы можем непосредственно наблюдать и о чем можем делать конкретные выводы. Как сказано в предисловии к этой книге, «в науке применяется одна испытанная временем стратегия: оставить на время философские вопросы и сосредоточиться на тех, которые являются эмпирически разрешимыми».
Когнетика — это практическая дисциплина. Хотя теоретические исследования могут разъяснять неясное и, в конце концов, приводить к надежным практическим результатам, мы все же стремимся избегать их до тех пор, пока не почувствуем эти результаты. (Аналогичным образом изучение роста человеческих костей, которое может дать полезные сведения с точки зрения эргономики, все же скорее относится к области физиологии, чем собственно к эргономике.) Сознание и модели человеческого разума Хотя трактовка когнитивных свойств сознания, предложенная Баарсом, является полезной, его теория разума, в которой моделями служат современные цифровые компьютерные структуры, имеет уже меньшую ценность. Такой подход, на мой взгляд, сомнителен, особенно по той причине, что мыслители издавна использовали последние достижения в области технологии в качестве моделей понимания человеческого существа, а со следующим шагом в технологическом развитии отказывались от них или же ограничивали их применение. Дон Норман, когнитивный психолог, хорошо знакомый с компьютерами, говорил о человеческом разуме в терминах вычислительных устройств (Norman, 1981). Дж. P. Андерсон (Anderson, 1993) еще в 1976 году построил модель ментальных операций на основе так называемых продукций — инструмента, который широко использовался в свое время для описания синтаксиса компьютерных языков. Хотя такие аналогии и могут быть полезны, некоторые ученые склонны придавать чрезмерное значение этой метафоре. Я предполагаю, что в ближайшие несколько лет появится большое количество психологических теорий, использующих архитектуру «клиент-сервер», Интернет и Всемирную сеть с ее гипертекстовыми ссылками и броузерами в качестве моделей работы отдельных аспектов сознания. Следует с осторожностью относиться к этой тенденции, в противном случае мы можем создать аналогии, которые не будут иметь никакой нейрофизиологической основы. В XVII столетии Вселенная и ее обитатели часто описывались в терминах часового механизма (Dijksterhuis, 1961, с. 495).


Однако на фоне нашего сегодняшнего понимания как часовых механизмов, так и организмов, эта метафора утратила свою яркость. В XIX столетии метафора парового двигателя встречалась во многих философских трактатах о физиологии человека. Сегодня мы знаем, что ценность этой аналогии ограничивается главным образом объяснением метаболизма, поскольку метаболическую систему можно назвать тепловым двигателем организма. Тема сознания рассматривается также в двух других известных книгах: «Новый разум императора» Роджера Пенроуза (Penrose, The Emperor's New Mind, 1989) и «Объясненное сознание» Даниела Денетта (Dennett, Consciousness Explained, 1991). Несмотря на то что чтение этих произведений довольно захватывающе, они, к сожалению, не представляют ценности с точки зрения разработки интерфейсов «человек-машина». Обобщая, можно сказать, что без непосредственного подтверждения того или иного примера функционального параллелизма следует избегать слишком буквального понимания метафор, в которых человеческий мозг уподобляется компьютеру. Поскольку рассуждения о том, что является сознательным или бессознательным, кажутся весьма далекими от наших повседневных забот, попытаемся наглядно продемонстрировать их значение в обычной жизни. Попробуйте ответить на следующий вопрос: какая последняя буква в вашем имени? До тех пор пока вы не прочитали предыдущее предложение, вы, вероятно, не думали об этой букве и ее связи с вашим именем. Вы знаете (и уже давно знали), что это за буква и какое место она занимает в вашем имени, но вы не обращали на это своего внимания. Вы не думали, не размышляли об этом. Или, если пользоваться нашей терминологией, вы не осознавали это. Данная информация не запрашивалась, однако вы смогли ее получить, когда в этом возникла необходимость. То место, откуда была извлечена буква, мы будем называть когнитивным бессознательным. Когнитивное бессознательное — это необязательно какое-то физическое место, хотя оно должно быть представлено определенными физическими процессами в мозге.


Представление о том, что бессознательное и сознательное должны соответствовать определенным областям мозга, не совсем верно. Скорее, они могут им соответствовать. Изменение состояния в момент осознания буквы — это один из возможных механизмов процесса. Другой возможный вариант — это наличие в мозге определенного указывающего устройства, и перемещение воспоминания или мысли из одной области мозга в другую вызывает также и перемещение этого указателя. Вполне возможно, что мысли и воспоминания распределены по всему мозгу, наподобие того, что происходит при голографической записи изображений. Мы могли бы рассмотреть и другие возможные механизмы и объяснения, но в этом нет необходимости. Для нас важно сейчас только отметить, что в один момент вы не осознавали, какой буквой заканчивается ваше имя, а в другой момент стали осознавать. Хотя иногда я использую здесь метафору перемещения в пространстве, говоря о мысли как о чем-то перемещающемся из области сознательного в область бессознательного или наоборот, все же не следует понимать это образное выражение как указание на некую модель функционирования мозга. (Возможно, исследования физической структуры мозга смогут подтвердить обоснованность такой модели, но для нас это сейчас не имеет значения.) Когда я пользуюсь в этой книге терминами сознательное и бессознательное, то, как правило, подразумеваю под ними понятия когнитивного сознательного и когнитивного бессознательного. Когда вы подумали о последней букве в вашем имени, то эта мысль, вызванная прочитанным предложением, стала частью вашего сознания. Это изменение состояния вашей мысли — от бессознательного к сознательному — показывает, что у вас есть, по крайней мере, две формы знания. Для того чтобы построить науку когнетику, мы должны отказаться от солипсизма2 в нашем подходе и принять, что другие люди смогли бы сделать те же наблюдения относительно своих ментальных процессов, какие только что сделали и вы. Такой стимул, как, например, прочтение некоторой части этой книги, может вызвать перемещение какой-то информации или ощущения, или любого другого содержимого вашей памяти или знаний из области бессознательного, где оно хранится, в область сознательного, где вы его осознаете.


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


сделать это воспоминание осознанным. С помощью стимуляции одной области мозга можно многократно вызывать определенное воспоминание, состояние или ощущение, тогда как с помощью стимуляции другой области можно многократно вызывать другие переживания. Исследования мозга, предпринятые с использованием методики магнитно-резонансного представления (magnetic-resonance imaging, MRI), а также позитронно-эмиссионной томографии (positron-emission tomography, PET), позволяют выявить физическую основу различных ментальных процессов. Эти методики упомянуты в связи с тем, что в будущем они могут оказать непосредственную помощь в разработке и особенно в тестировании интерфейсов. Например, существует обратная корреляция между уровнем поглощения глюкозы определенной зоной мозга испытуемого, что является показателем потребления энергии в данной физической структуре его мозга, и степенью легкости, с которой испытуемый использует тестируемый элемент интерфейса. В будущем измерение параметров мозговой активности может найти более широкое применение в качестве средства тестирования интерфейсов. Тем не менее, рассмотрение указанных методов выходит за рамки предмета этой книги. Приведенные примеры описывали ситуации, когда ментальные конструкции перемещались из области бессознательного в область сознательного. Следующий пример демонстрирует обратную ситуацию. Внезапный звук или другое неожиданное событие может отвлечь ваше внимание от того, чем вы были заняты в этот момент — например, от чтения книги, — к вопросу о причине этого звука. Скажем, услышав звук падающей с полки лампы, вы подумаете: наверное, это кот туда забрался. После того как вы возвратитесь к чтению, знание о происшедшем событии переместится из вашего когнитивного сознательного в когнитивное бессознательное. Кроме того, существуют пограничные случаи, а также есть многое, что нам еще не известно о сознательном и бессознательном. Например, каждый сталкивался с ситуацией, когда никак не вспомнить чье-либо имя, хотя оно буквально вертится на языке.


Иногда вы все же вспоминаете это имя, и тогда можно сказать, что данное воспоминание становится полностью осознанным. В других случаях воспоминание так и остается ускользающим. Существует ли промежуточное состояние между сознательным и бессознательным? Можно ли зафиксировать состояние сознания в момент, когда информация об имени «движется» из одной области мозга в другую? Можно ли считать «почти вспомненное» имя свидетельством частичной, прерываемой связи, наподобие неплотного, искрящего электроконтакта? Эти вопросы довольно интересны, тем не менее, нам необязательно нужны ответы на них; так же как в космологии — нам известно, что вселенная расширяется, хотя мы и не знаем ответа на вопрос, что послужило причиной этого расширения, т.е. что было до так называемого «большого взрыва», с которого, по мнению большинства космологов, и началось существование нашей вселенной. Как я уже сказал, мы не станем углубляться в какую-либо из метафор, описывающих работу человеческого мозга. В то же время, мы не можем избежать построения его ментальных моделей. (Кстати, поразительно, что мы строим модели нашего мозга внутри нашего мозга.) Пока же я предлагаю читателю представлять сознательное и бессознательное как некие два отдела. Эти отделы являются не просто разными областями или состояниями, в которых хранятся мысли или воспоминания, но они имеют разные способы взаимодействия с окружающим миром и с воспринимаемыми понятиями. Как было установлено когнитивными психологами за последние сто лет, когнитивное сознательное и когнитивное бессознательное обладают свойствами, которые выходят за пределы нашего знания или незнания о них. В табл. 2.1 обобщены различия между когнитивным сознательным и когнитивным бессознательным. Из нее видно, что когнитивное сознательное включается в тех случаях, когда вы сталкиваетесь с ситуацией, которая кажется новой или представляет угрозу, или когда вам требуется принять нешаблонное решение, т. е. такое, которое основано на происходящем именно здесь и сейчас.


Понять логическое содержание проблемы возможно только в том случае, если вы осознаете наличие этой проблемы. Когнитивное сознательное работает последовательно и может оперировать только одним вопросом или контролировать только одно действие в течение некоторого промежутка времени. Человек может осознавать одновременно от 4 до 8 отдельных мыслей или объектов. Как правило, каждые несколько секунд сознательная память очищается. Сознательное проявляется при решении ветвящихся задач. Необходимо сказать, что иногда трудно отличить ветвящуюся задачу от неветвящейся. Например, торможение по сигналу светофора может относиться и к тому и к другому типу задачи. С одной стороны, если вы просто реагируете на красный свет нажатием педали тормоза, данная задача является неветвящейся и, следовательно, обрабатывается когнитивным бессознательным. С другой стороны, если в момент, когда вы приближаетесь к светофору, на нем зажигается желтый сигнал, и поэтому вам требуется принять решение, пересекать ли перекресток без остановки или остановиться, то здесь уже вступает в действие когнитивное сознательное. Пока вы изучаете некоторую задачу, вы можете воспринимать ее как ветвящееся событие, требующее сознательного внимания. По мере повторения задачи ее выполнение может стать неветвящимся и автоматическим. В разделе 2.3 мы начнем рассматривать эти свойства и те следствия из них, которые имеют значение с точки зрения разработки интерфейсов.

Таблица 2.1. Свойства когнитивного сознательного и когнитивного бессознательного Свойство Сознательное Бессознательное
Инициируется Чем-то новым Повторением
Нестандартными ситуациями Ожидаемыми событиями
Опасностью Безопасностью
Используется В новых обстоятельствах В привычных ситуациях
Решает задачи Принятие решений Работа с неветвящимися задачами
Принимает Логические утверждения Логические или противоречивые утверждения
Функционирует Последовательно Одновременно
Управляется Волей Привычными действиями
Производительность Небольшая Огромная
Период функционирования Десятки секунд Десятилетия (всю жизнь)


Количественный анализ интерфейса


Он все тыкал и тыкал пальцами в компьютер, а Мелроуз просто изумлялся тому, что машина, которая предназначена для избавления человека от всей мелкой, рутинной работы, выполняла такую простую задачу настолько долго, что Буб, наверное, уже десять раз успел бы все сделать руками.
Марта Граймс «The Stargazey» (детективный роман)

Многие количественные и эвристические методы используются для анализа и изучения интерфейсов. Эти методы составляют значительную часть содержания большинства книг, посвященных этой теме, включая и те, которые указаны в библиографическом списке за такими авторами, как Шнейдерман (Shneiderman), Норман (Norman) и Мэйхью (Mayhew). Например, с помощью пассивного наблюдения за тестированием нового интерфейса с участием нескольких добровольцев опытный разработчик интерфейсов может узнать столько же ценной информации, сколько можно получить с помощью любого метода количественного анализа. Здесь я хочу сосредоточиться на количественных методах не для того, чтобы принизить значение качественных методов, но скорее для того, чтобы найти между ними баланс и показать ценность численных и эмпирических методов, которые не являются широко известными. Количественные методы часто могут свести спорные вопросы к простым вычислениям. Еще одним, более важным преимуществом этих методов является то, что они помогают нам понять важнейшие аспекты взаимодействия человека с машиной.

Одним из лучших подходов к количественному анализу моделей интерфейсов является классическая модель GOMS— «правила для целей, объектов, методов и выделения» (the model of goals, objects, methods, and selection rules), которая впервые привлекла к себе внимание в 80-х годах (Card, Moran and Newell, 1983). Моделирование GOMS позволяет предсказать, сколько времени потребуется опытному пользователю на выполнение конкретной операции при использовании данной модели интерфейса. После обсуждения модели GOMS мы рассмотрим количественные методы оценки производительности интерфейсов, скорости движения курсора и времени, необходимого для принятия решения.



Команды


Я как писатель-фантаст уверен, что этот чертов робот должен говорить на человеческом языке, а не наоборот.
Спайдер Робинсон

Некоторые команды (как, например, Отменить) не обязательно могут применяться к выборкам. Другие команды действуют только по отношению к текущей выборке — как, например, команда, которая удаляет текущую выборку. Некоторые из этих команд вводятся с клавиатуры. Однако число клавиш на клавиатуре меньше, чем количество возможных команд. Каждая дополнительная клавиша-модификатор (как, например, <Shift>, <Alt>, <Command>, <Control> или <Option>) позволяет удвоить число клавиатурных команд. Полная клавиатура, в которой любая комбинация клавиш может быть воспринята компьютером, допускает астрономическое число сочетаний клавиш. Например, программное обеспечение, в котором предусмотрено использование любых трехклавишных дваждыквазимодальных сочетаний на 110-клавишной клавиатуре, позволяет передать более одного миллиона команд с помощью только одного жеста. Однако широкое использование клавиш-модификаторов, особенно в сочетаниях клавиш, очень часто приводит к появлению чрезвычайно сложных комбинаций, в которых можно просто «сломать пальцы». Кроме того, комбинации редко бывают запоминаемыми или понятными. (Знаете ли вы, какое действие выполняет на вашем компьютере сочетание <Control>+<Shift>+<Option>+<\>?) Запомнить различные сочетания клавиш не просто. Такое запоминание является недопустимым требованием к памяти пользователя. Кроме того, такие команды нарушают критерий видимости, если только в системе каким-то образом не отображается то, какой результат будет получен при применении той или иной команды. Конечно, если в отдельных случаях какой-то из этих жестов не может быть выполнен или если жест имеет разные значения в разные моменты, это означает модальность системы по отношению к данному жесту, что приводит к проблемам, которые обсуждались в главе 3.

Если разделить систему на приложения таким образом, что данная команда может многократно использоваться, но с разными значениями в разных приложениях, появляется возможность увеличить количество команд, которые пользователь может вызвать для заданного множества сочетаний клавиш.
Однако использование команд в приложениях, в которых для них устанавливаются разные значения, приводит к модальным ошибкам. Кроме того, различающийся смысл жеста создает ненужные трудности для его запоминания. Частично эта трудность облегчается с помощью меню. Тем не менее, пользователю все равно приходится запоминать, где находится та или иная команда. (Возможно, пользователю даже придется сначала вспомнить, в каком именно приложении используется необходимая ему команда, особенно если используется несколько приложений с подобными функциями.) Процесс просматривания меню иногда становится привычным, но иногда он оказывается утомительным, особенно если искомая команда находится в каком-то из подменю и если способ организации меню, который показался разработчику очевидным, не является таковым для пользователя. Для назначения команд требуется такой метод, который был бы таким же быстрым и физически простым, как нажатие на пару клавиш, и с помощью которого было бы проще и быстрее найти необходимую команду, чем с помощью системы меню. Нежелательно повторять двойной метод, который используется в большинстве известных графических пользовательских интерфейсах и включает в себя как систему меню, так и набор непонятных горячих клавиш. Например, нет ничего запоминаемого в сочетании Command↓ v↓ ↑↑ которое используется для вставки, кроме того, что клавиша v расположена рядом с клавишей c, используемой в сочетании Command↓ c↓ ↑↑ которое запоминается несколько лучше, поскольку с может напоминать слова «вырезать» (cut) или «скопировать» (copy). Другой метод позволяет решить многие из этих проблем. Предположим, что на клавиатуре есть клавиша <Вычислить> (Calculate). При нажатии на эту клавишу текущая выборка рассматривается как арифметическое выражение и вычисляется. Далее я буду использовать подчеркивание, чтобы показать выборку. Допустим, что текст является следующим: Я хочу купить 3+4 рубашек При нажатии на клавишу <Вычислить> он будет преобразован в следующий текст: Я хочу купить 7 рубашек До нажатия на клавишу <Вычислить> 3+4 было обычным текстом, Он ничем не отличался от остального текста, за исключением того, что он был выделен.


Пять символов (включая пробелы), из которых состояла выборка, можно было переместить или удалить, или же к ним могла быть применена любая другая обычная команда текстового процессора. Но в данном случае была использована операция Вычислить. Пользователю не потребовалось открывать окно калькулятора или вызывать специальное приложение. Теперь рассмотрим случай, когда на клавиатуре нет клавиши <Вычислить>. (Хотя специальная клавиша для вычисления математических выражений — это пока только ценная идея, но она, несомненно, была бы более полезной, чем те клавиши, которые уже существуют, как, например, <F9>.) То, что нам необходимо — это более общий механизм для команд. Перед обсуждением такого механизма рассмотрим требования, которым должен отвечать новый метод вызова команд: Этот механизм не должен быть модальным Он должен включать любое число команд (в частности, он не должен ограничиваться количеством клавиш на клавиатуре) Пользователь должен иметь возможность вызывать команду непосредственно с клавиатуры Пользователь должен иметь возможность вызывать команду с помощью графического устройства ввода Использование механизма не должно требовать изобилия специальных клавиш Механизм не должен порождать большого количества квазирежимов Проиллюстрируем один общий метод примером. (Этот несколько тривиальный арифметический пример используется только для того, чтобы продемонстрировать данный метод. Более эффективные способы применения этого метода будут рассмотрены далее.) Предположим, что имеется следующий текст: Я хочу купить 3+4 рубашек вычислить Выделим сумму 3+4, и затем выделим слово вычислить, при этом сумма станет старой выборкой. В другом методе, который предоставляет пользователю всю мощь командной строки, при нажатии на клавишу <Command> вызывается выбранная команда. Если для выполнения команды требуется аргумент, то в его качестве используется старая выборка. В данном методе сама команда удаляется, а результат вычисления становится левой выборкой. Я хочу купить 7 рубашек Суть заключается в том, что команды не должны ограничиваться только меню, но могут быть частью вашего текста, или же, если это уместно, команда может быть представлена графическим объектом, а не словом или набором слов.


Важно также и то, что в этом случае пользователь может назначать команды самым простым способом — всего лишь набирая их с клавиатуры или рисуя их. Такой способ не противоречит методу, при котором команда выбирается из уже имеющегося списка. Преимуществом меню является то, что список команд, из которых оно состоит, является видимым. Тем не менее, вместо того чтобы выбирать команду из меню, пользователь может с такой же легкостью выбирать команду из небольшого документа, в котором содержится список всех команд. Такой документ может быть составлен как разработчиками, так и самим пользователем. Кроме того, в этом документе может быть не только список команд, но и, например, описания команд и даже заметки, сделанные пользователем. Такой документ, служащий в качестве меню, может использоваться как обычный текстовый документ, а не как нечто, что может быть изменено только программистами или только с помощью специальных средств настройки. Такой подход имеет ряд преимуществ. Например, онлайновые руководства автоматически содержат примеры использования команд, которые в нем описываются. В современных системах команды, имеющиеся в меню, могут как иметь, так и не иметь своего клавиатурного аналога. Однако при таком подходе каждая команда, описанная в меню последовательностью символов, имеет свой клавиатурный эквивалент. Это обеспечивается не благодаря стараниям разработчиков, а по самой природе такой системы. Как команда из меню, так и клавиатурный эквивалент имеют одинаковое написание. И большинство пользователей будут чаще использовать именно клавиатурный эквивалент. Другим преимуществом этого подхода является то, что вы можете составить меню только из тех команд, которые вы используете, просто набрав их в список с помощью текстового процессора. Конечно, если вы постоянно изменяете список, а не просто, скажем, добавляете к нему новые команды, то теряется преимущество их привычного расположения. Аналогично тому, как гиперссылки в тексте часто выделяются визуальными методами, например изменением цвета (обычно на синий) и подчеркиванием, команды также могут обозначаться какими-то особыми способами (например, красным цветом или обратным курсивом).


При таком выделении пользователь сможет указывать на имя команды (или на какую-то из букв ее имени) и затем вызывать ее нажатием на клавишу <Command>. В этом случае выделение команды для ее вызова перестает быть необходимым. Если для команд не использовать особый шрифт или цвет, то придется предусматривать другие правила для обозначения того, что какое-то слово или последовательность слов следует рассматривать как единую команду. Разумнее было бы избежать использования каких-то из существующих сегодня условностей, которые используются для группировки отдельных слов в одну единицу, разделенную пробелами или другими символами. Например, если бы у нас была команда, которую мы бы хотели назвать «преобразовать изображение в формат JPEG», то по существующим правилам нам пришлось бы написать ее в виде преобразовать.изображение.в.формат.JРЕG, <преобразовать изображение в формат JPEG> или преобразовать_изображение_в_формат_JРЕG. Такие способы написания являются слишком «компьютерными», неудобными и унылыми, особенно для тех, кто только знакомится с компьютерами. Синтаксис, который мы выбираем для написания команд, не должен исключать пробелы или символы новой строки. Любые ограничения, накладываемые на набор допустимых символов, используемых для набора команд, в будущем приведут к проблемам. Более того, любые подобные ограничения пользователю придется учитывать при назначении команде имени. Следует также иметь в виду и другой принцип, заключающийся в том, что использование обычаев, которые не совпадают с традициями обычной речи, приводит к возникновению непонимания между пользователем и компьютером. Следует сделать так, чтобы машина подстраивалась под нас, а не подстраивать обычаи естественной речи под то, что проще решить с точки зрения программирования. Еще одно взаимодействие ввода с клавиатуры и создания выборки вызывает проблемы в сегодняшних интерфейсах. В человекоориентированном интерфейсе ввод с клавиатуры не замещает выделенный текст и не отменяет выделение текущей выборки.


Это отличается от распространенного правила, в соответствии с которым ввод символов замещает содержимое текущей выборки, что время от времени приводит к проблемам в тех случаях, когда новый материал неожиданным для пользователя образом удаляет текст, который он не собирался удалять. Идея, что при вводе символов они должны замещать выборку, стала использоваться для того, чтобы сэкономить на одном нажатии клавиши — в большинстве редакторов, чтобы заместить текстовый блок, вы можете просто выделить его и начать ввод. Без этого правила пользователю придется сначала выделить некоторый текст, затем нажать <Backspace> или <Delete> и потом вводить новый текст. В способе, который используется сегодня, экономится только лишь нажатие на клавишу <Backspace>, при этом при первом нажатии текст исчезает и замещается текстом, который вводится далее. Это происходит независимо от того, находился ли замещаемый текст на экране или нет и (обычно) состоял ли он из нескольких символов или трех четвертей вашего документа. Таким образом, вне локуса вашего внимания вы можете удалить текст в 40 страниц. Если вы вовремя заметите это, то, наверное, сможете отменить действие. Но если же вы не заметите удаление, и если ничего не подскажет вам, что текст был удален, вам может не повезти. Человекоориентированный интерфейс никогда не подвергает работу пользователя риску. Экономия одного нажатия на клавишу куплена за слишком большую цену. Случайная потеря хотя бы одного символа может означать потерю части телефонного номера или адреса электронной почты, которая не может быть восстановлена из оставшейся части. Удаление текста должно проходить явным образом по желанию пользователя и не быть побочным эффектом другого действия. Понятие локуса внимания позволяет точно определить, что мы определяем как побочный эффект. Побочный эффект — это следствие применения команды, при котором изменяется содержание или события, которые не находятся в локусе вашего внимания. В только что рассмотренном случае в локусе вашего внимания находится текст, который вставляется, а побочным эффектом является удаление. Устранение побочных эффектов должно быть одной из целей для разработчика человекоориентированпого интерфейса. Другой возможностью текстовых процессоров, которая часто считается полезной, является перетаскивание выделенного текста из одного места в другое.


Однако при этом у пользователя нет возможности создать другую выборку, которая пересекалась бы с текущей, или создать под выборку текущей выборки. Если вы попытаетесь сделать какую-нибудь из этих выборок, система воспримет это действие как попытку переместить текущую выборку. Это означает, что сначала вам следует щелкнуть в каком-то месте вне выборки, чтобы снять ее выделение. Таким образом, жесту перетаскивания были даны два разных значения, а именно: выделение и перетаскивание выборки. Это может препятствовать формированию привычки. Ошибки возникают в результате того, что, хотя символы выборки находятся в локусе вашего внимания, текущее состояние выборки не находится в локусе вашего внимания, несмотря на то, что оно визуально выделено. Во время моих наблюдений я видел, как некоторые пользователи могли случайно перетащить выборку, хотя собирались создать новую выборку. Другая проблема возникает при перетаскивании текста (она также может возникать и в графических программах): иногда случается так, что как только вы начинаете перетаскивать выборку, выясняется, что место, куда вы хотите перенести ее, не видно на экране. В этом случае приходится возвращать выборку обратно или ставить ее в другое место и применять метод вырезания и вставки. Принцип монотонности предполагает, что предпочтительным является наличие только одного метода. В некоторых системах при перетаскивании выборки к нижнему или верхнему краю экрана автоматически начинается его прокрутка, но она происходит слишком медленно, если место назначения находится на расстоянии нескольких страниц. Кроме того, прокрутка может происходит и слишком быстро, что не позволяет остановиться или даже заметить необходимое место. Если бы не маркетинг, я бы не стал оснащать интерфейс возможностью перетаскивания текста, по крайней мере, в том виде, в каком эта опция сейчас используется на персональных компьютерах. В этом случае меньшее число ошибок и проблем было бы хорошей компенсацией для тех пользователей, которые привыкли к возможности перетаскивать текст.


Желательно, чтобы для выделения и для перетаскивания использовались отдельные квазирежимы, поскольку тогда не будет возникать «когнитивная путаница» между этими опциями. Например, ГУВ может быть снабжено кнопкой для создания выборок, а также специальным устройством (например, встроенной сбоку кнопкой), с помощью которой можно было бы сжимать ГУВ (при этом для того, чтобы было понятно, что действие произошло, важно наличие тактильной обратной связи, например в виде щелчка кнопки), что означало бы, что вы забрали выборку. В этом случае между этими функциями не возникало бы никакой путаницы (или она была бы минимальной). После нескольких секунд объяснений и одной-двух попыток использования такого устройства уже было бы понятно, как им пользоваться. Более простой метод для разделения функций выделения и перетаскивания заключается в том, чтобы использовать другую кнопку мыши для перетаскивания или же использовать квазирежим (например, удерживание в нажатом положении специальной, ясно обозначенной кнопки во время использования основной кнопки мыши). (См. более подробно в приложении А.) Функцию перетаскивания, которой может быть оснащен ГУВ, можно также использовать вместо прокручивания. Вы можете захватывать какую-то часть документа и с помощью этого устройства перемещать ее: верх или вниз — в узких документах, и во всех направлениях — в широких документах. Когда курсор перетаскивания (который в некоторых из сегодня существующих системах разумно отображается в виде руки) достигает границы экрана, прокручивание продолжается в выбранном направлении до тех пор, пока пользователь не отпустит устройство перетаскивания или не вернет курсор обратно внутрь окна. Метод прокручивания с помощью полос прокрутки может приводить к путанице. В частности, при нажатии на кнопку со стрелкой вниз содержимое экрана прокручивает вверх. Если же использовать стрелки, повернутые в другую сторону, это создаст только еще большую путаницу. Кроме того, кнопки со стрелками на полосе прокрутки имеют небольшие размеры и поэтому требуют больше времени при использовании, а, как хорошо показывает анализ по закону Фитса, возможность захватывать элементы в любой части документа является намного более быстрым способом. Вышеописанный пример со специальной функцией захватывания, которой может быть оснащена мышь, показывает, что при разработке интерфейсов программного обеспечения часто могут возникать идеи по улучшению аппаратного оборудования, так же как те или иные характеристики аппаратного строения могут приводить к улучшению программного обеспечения.Необходимо сказать, что всегда лучше разрабатывать аппаратное и программное обеспечение вместе, несмотря на то, что такая возможность редко случается. Попытки «подставить» чистый программный интерфейс в аппаратное оборудование, которое было разработано для другого интерфейса, редко могут дать удовлетворительные результаты. Тем не менее, в большинстве случаев это именно то, что мы должны сделать.

Команды и трансформаторы


Хороший дизайн является более важным, чем вы думаете.
Рекс Хефтмэн

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

Мечта о том, чтобы продукты были изначально действительно (а не внешне) просты и в то же время гибки, может быть достигнута на основе подхода, в котором система не должна быть сложнее, чем ваши потребности в данный момент, и при котором возможности системы можно наращивать постепенно. Чтобы понять, как это сделать, вспомним, что в разделе 5.1 было сказано о том, что почти все действия, выполняемые с помощью компьютера, включают содержание, которое вы вводите или получаете, и набор операций, которые вы применяете к этому содержанию. Также вспомним, что интерфейс для любой такой операции состоит из двух частей: выборе содержания и вызова операции. Например, в игре требуется убить монстра, или, выражаясь более прозаическим языком, выполнить операцию по изменению изображения монстра на изображение взрыва. Содержание выбирается с помощью курсора (курсор подводится к монстру), а операция вызывается с помощью клавиши на ГУВ. Между прочим, это довольно хороший интерфейс — быстрый и результативный.

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

В первом случае операция выполняется и содержание видоизменяется.
Во втором случае содержание остается без изменения. В третьем случае для выполнения операции должен быть вызван другой процесс, с помощью которого выборка предварительно модифицируется. Предположим, что вы выбираете часть фотографии, на которой изображен вид городской улицы, и пытаетесь применить к ней команду проверки орфографии. Вызов этой команды предполагает наличие некоторой последовательности символов (текста), но здесь обнаруживается фотография (растровое изображение). Одной из возможностей компьютера является возможность преобразовывать содержание из одного типа данных в другой39. В этом случае данные являются растровым изображением, а команда применима только к текстам, поэтому компьютер должен определить, имеется ли какой-нибудь трансформатор для преобразования растровых изображений в текст. Вообще такие трансформаторы существуют. Это так называемые программы для оптического распознавания символов (optical character recognition programs). Обычно программы для оптического распознавания знаков (OCR-программы) используются для конвертирования данных, полученных с помощью сканера, в текст, который можно редактировать. (Некоторые из цитат, которые приводятся в этой книге, были получены с помощью сканирования соответствующих статей и последующего использования OCR-программы для конвертирования полученного растрового изображения в текст.) Допустим, что в компьютере имеется такая программа. Тогда эта программа автоматически запускается и анализирует растровое изображение. Если программа обнаруживает какие-то распознаваемые символы (например, знак остановки и частично читаемый знак с надписью «Первая северная уица»), то начинается проверка орфографии этих текстов, в результате которой выдается сообщение о том, что обнаружено неизвестное слово «уица», и предлагаются возможные варианты исправления: «улица», «утица», «ушица», «лица». Программное обеспечение вместо того, чтобы состоять из операционной системы и набора приложений, рассматривается человекоориентированным интерфейсом как набор команд, некоторые из которых являются трансформаторами, автоматически вызываемыми в тех случаях, когда тип данных, предусмотренных командой, не соответствует типу данных выбранного объекта.


При этом может быть вызвано более одного трансформатора. Предположим, что с помощью одного трансформатора производится конвертация из А в В, а с помощью другого — из B в С. Если команда предусматривает обработку данных типа С, а данные выборки представляют собой тип А, то перед выполнением команды должны быть запущены два трансформатора. Если необходимых трансформаторов не имеется, никаких изменений с выборкой не производится. Пользователю при необходимости выдается специальное сообщение, а выборка остается без изменений. При таком подходе вместо прикладных программ разработчики будут поставлять наборы команд, представляющие собой совокупность взаимосвязанных операций. Например, вместо программы для обработки фотоизображений разработчик будет предлагать ряд отдельных команд, которые в совокупности будут давать те же возможности, что и программа. Пользователь сможет устанавливать столько команд, сколько ему необходимо, вместо того, чтобы устанавливать целое приложение, из которого ему может понадобиться только некоторая часть. С помощью Интернета передовой разработчик сможет продавать свое программное обеспечение отдельными командами и даже предусмотреть скидки на покупку определенных наборов или определенного числа команд. Когда пользователи сетуют на невероятную сложность приложений и просят, чтобы программы были проще, «без этих ненужных колокольчиков и свистков», разработчики отвечают, что облегченные («lite») версии программного обеспечения зачастую не имеют успеха на рынке. Неудачи с облегченными версиями программных пакетов могут быть объяснены следующим образом. Поскольку пользователь никогда не знает, какие именно возможности полного пакета могут ему понадобиться, он покупает весь пакет, т.к. это единственный способ получения этих возможностей. Если пользователь приобретет ограниченную версию по меньшей цене, единственный способ, каким он сможет обновить эту версию, — это купить полный пакет, даже если пользователь хочет получить только какую-то одну небольшую функцию из этой программы.


Поэтому выходит, что лучше сразу покупать полную версию и примириться с ее сложностью. В результате не удивительно, что мы оказываемся как бы в ловушке. Более гуманным подходом было бы предоставление возможности покупать команды по отдельности. В различных обзорах сообщается о большом количестве никогда не используемых элементов того или иного программного обеспечения. В последнее десятилетие это число возросло приблизительно с 15% до почти 50%. Это создает большой беспорядок. Если же вместо приложений использовать наборы команд, каждая из которых может быть установлена независимо от других, пользователи сведут показатели этой статистики почти до 0. Другими преимуществами такого подхода для разработчиков является возможность поступенчато улучшать свои продукты, а также более простым образом и чаще поставлять (т.е. продавать!) новые элементы приложений, поскольку в этом случае производителям не придется каждый раз выпускать весь пакет заново. Интернет является самым подходящим средством для осуществления таких многократных поштучных продаж. Разработчики (необязательно те же, кто выпускает наборы прикладных команд) также могут производить трансформаторы. И они тоже могут продаваться поштучно. Если большинство пользователей регулярно использует большинство команд текстовой обработки, выпущенных разработчиком А, и разработчик В придумает какую-то полезную команду, которую разработчик А не поставляет, то разработчик В сможет продавать эту команду покупателям продукта, производимого разработчиком А. Однако разработчик В может использовать другую структуру данных. В этом случае он может предложить также и трансформатор для перевода из одной структуры данных в другую, и наоборот. Если продуктом, производимым разработчиком А, пользуется большое число потребителей, разработчик В может создать версию данной команды, работающую непосредственно со структурой данных, предусмотренной разработчиком А. Кроме того, третий разработчик (С) может специализироваться на разработке трансформаторов.


Для пользователей может стать обычной практикой покупать трансформаторы именно у таких разработчиков, а для разработчиков команд — давать лицензии на соответствующие трансформаторы. Эта коммерческая структура частично уже существует сегодня, и различные компании (например, DataViz) специализируются на разработке трансформаторов. Элементы такой компьютерной среды «команды плюс трансформаторы» также существуют, и их нетрудно будет собрать в единую рабочую систему. Для пользователей такие системы будут проще в использовании и более гибкими в сравнении с сегодняшними разработками, ограниченными применением приложений. Такое решение может уменьшить степень избыточности и сложности, снять проблему совместимости между приложениями и необходимость многократно решать одну и ту же проблему. Со временем операционная система может полностью исчезнуть из поля зрения пользователя. Если этого подхода будут придерживаться должным образом, то даже общепринятая версия операционной системы — рабочий стол — не сохранится в ее сегодняшнем виде. Конечно, не все программы должны быть построены по описанному принципу. Игры, например, должны просто запускаться и работать самостоятельно. Запуск должен осуществляться обычным путем — с помощью выбора (мышью или другим способом) имени игры (возможно, из текста, включающего список имен игр) и затем использования команды Выполнить (Execute). В разделе 6.2 также будет описан альтернативный метод. Учтивое программирование: приложения как гости Представим, что вы были приглашены погостить в доме ваших хороших друзей Гримблсов. И даже их собака кажется вам очень милой. Единственная проблема — это портрет их любимой тетушки Астабьюлы, который висит над вашей кроватью. Этот портрет вызывает у вас и вашей жены нервную дрожь, и вы не можете даже спать в комнате, в которой на вас смотрит с портрета тетушка Астабьюла. Вы не решаетесь сказать обо всем этом Гримблсам. Как бы вы поступили в такой ситуации, будучи гостем в доме своих друзей? Сняли бы картину и сожгли ее. Спрятали бы ее в винном погребе, чтобы Гримблсы после месяца поисков обнаружили ее там. Поставили бы ее в шкаф, чтобы Гримблсы нашли ее немного раньше. Поставили бы картину в шкаф и потом, перед отъездом, вернули бы ее на свое место. Любой учтивый гость знает, что вариант 4 является самым правильным.


Принцип заключается в следующем: если ты делаешь по тем или иным причинам изменения в чьей-либо среде, позаботься о том, чтобы поставить все вещи на свои места до того, как вернется хозяин. Современные компьютеры имеют множество параметров изменения рабочей среды, в том числе громкость динамиков, разрешение экрана и глубину изображения, вид меню, шрифт по умолчанию. В компьютере Macintosh имеются сотни настроек, а в IBM-совместимых компьютерах, работающих с операционной системой Windows и пакетом Microsoft Office, это число превышает тысячу. В чем жздесь параллель с визитом к Гримблсам? Если вы используете чью-либо машину и изменяете в ней какие-либо настройки, то перед уходом вы, как человек учтивый, должны вернуть все изменения обратно. Многие программы для нормальной работы требуют определенного разрешения экрана, определенного числа бит на пиксел или какой-то другой настройки параметров. Если же параметры настроены в системе неправильно, поведение программы может варьироваться в диапазоне от благовоспитанного до грубоватого или даже варварского. Ниже приводятся реакции различных протестированных мной программ в случаях, когда параметры монитора не соответствовали требуемым: Полный отказ системы, после которого приходилось вручную производить перезагрузку компьютера. Полный отказ системы с выдачей непонятного числового сообщения, после чего приходится нажимать на кнопку Перезапуск, чтобы произвести перезагрузку компьютера. Выдается сообщение об ошибке, в котором говорится о необходимости настроить параметры экрана. Когда вы нажимаете на кнопку OK, это приводит к полному отказу системы. Выдается сообщение об ошибке, в котором говорится о необходимости настроить параметры экрана. После нажатия на кнопку OK вы можете открыть панель управления и выполнить необходимые настройки. Выдается запрос о том, нужно ли выполнить изменение параметров экрана. Если вы нажимаете на кнопку OK, настройки автоматически изменяются. Если вы нажимаете на кнопку Отмена, запуск программы прекращается, а параметры экрана остаются без изменения. Параметры экрана изменяются без всякого предупреждения, и программа запускается. В специальном диалоговом окне выдается сообщение о том, что можно изменить настройки экрана.


Если вы нажимаете на кнопку OK, настройки изменяются, и программа запускается. После завершения работы программы настройки автоматически возвращаются в начальное положение. Читатель из будущего может подумать, что полный отказ системы — это уж слишком. Ни один из вышеприведенных вариантов нельзя назвать достойным вежливого гостя, хотя вариант —7 приближается к тому. Наилучшим вариантом является сочетание, включающее запрос, упомянутый в пункте —5, и способ выхода из программы, описанный в пункте —7. В маловероятном случае того, что изменение настроек экрана может помешать прохождению другого, параллельного или фонового процесса, такой запрос позволит отказаться от запуска программы. Параметры экрана изменяются без всякого предупреждения, и программа запускается. По завершении работы программы настройки устанавливаются в начальное положение. Другими словами, при запуске программы она будет просто выполняться предусмотренным образом, не влияя на работу других программ. Это может служить определением благовоспитанной компьютерной системы. Но что произойдет, если две программы, требующие разных экранных настроек, одновременно будут выдавать какие-то изображения? Вероятно, это будет ситуация, когда лошадь будет отображаться с одной цветовой палитрой, а рыба с другим разрешением. Вариант из пункта 7, который распространен и может показаться приемлемым, является неудачным, поскольку в нем выдается «диалоговое» окно, которое, по сути, не дает никакого диалога. Это просто злоупотребление, потому что на сообщенную информацию пользователь не может дать качественный ответ, что только приводит к пустой трате времени. (Метод прозрачных сообщений, описанный в разделе 5.2.3, позволяет решить эту проблему.) Прикладные программы, по сути, являются бременем для пользователя, но раз уж нам приходится работать с ними, давайте сделаем так, чтобы они работали как следует (см. также Raskin, 1993). Обобщая сказанное, повторим, что программа, или в будущем команда, должна автоматически выполнять перенастройку параметров, если это необходимо для ее нормальной работы.


После завершения работы программы ( или прерывания пользователем) все параметры должны быть восстановлены в исходное положение. Если восстановление невозможно или может привести к нежелательным побочным последствиям, должно выдаваться специальное предупреждение, в котором сообщалось бы об этих последствиях и предлагалось бы пользователю решить: продолжить ли действие или нет. В настоящее время мы не можем применять к одному экрану разные режимы разрешения одновременно. Но это уже проблема другого рода. Тем не менее, на мой взгляд, пользователи были бы довольны, если бы работа каждого интерфейса руководствовалась пунктом 8. 27 Конечно, если в вашей операционной системе недопустимы длинные имена, то здесь появляется еще одна проблема. 28 Левый символ обычно удаляется командой Backspace. — Примеч. науч. ред. 29 Совсем недавно мне случилось попользоваться текстовым процессором с таким ограничением на размер абзаца. Я превысил это ограничение уже как только вставил в абзац фотографию. Когда я сказал об этом разработчикам, они признали, что никогда не думали об этом. Таким образом, никогда не следует ставить ограничения только потому, что так писать программу легче. Такие ограничения всегда будут слишком узкими. 30 Все это касается современных систем. В будущих, человекоориентированных системах пользователю никогда не придется явным образом делать сохранение информации. 31 Доктор Джеймс Уинтер (James Winter) из Information Appliance продолжил такого рода унификацию структуры, указав на то, что в английском языке уже имеется аналогичная иерархическая структура с символами-разделителям, которая используется для отражения высших уровней организации текста. 32 То же самое касается и файловых имен и меню, которые были предложены в этой книге. 33 Здесь я использую термин последовательность в математическом смысле, чтобы обозначить множество объектов, включающее первый объект, второй и т.д. 34 Поиск может быть либо с приращением (пошаговый (incremental) поиск), либо с убавлением (excremental). 35 Аналогичной проблемой является использование зарезервированных слов в языках программирования. 36 Наверное, когда-то будет создан музей форм взаимодействия, аналогичный музеям старого программного и аппаратного оборудования.Такой музей мог бы быть создан в Интернете. 37 Для того чтобы среднее время ответа не превысило 250 мс, можно использовать такие методы, как предпросмотр и индексирование. 38 Этот пример еще раз показывает, насколько важно проводить тестирование интерфейсов с помощью аудитории, на которую продукт ориентирован. 39 Этот класс функций иногда называется фильтрами. Однако термин фильтр подразумевает скорее отбор, чем преобразование. Поэтому я предпочитаю термин трансформатор, который редко используется в науке о компьютерах (и часто используется в описаниях схем), тогда как термин фильтр используется гораздо чаще (как, например, в выражении программа цифровой фильтрации (digital filter program)).

<= Previous Index Next =>


Квантификация


Гармония мира проявляется Формой и Числом, и потому и сердце, и душа, и вся поэзия Натуральной Философии воплощаются в понятиях математической красоты.
Д'Арки Уентуорф Томпсон «О росте и форме» (1917)

Существует множество методов количественного анализа элементов интерфейса. Однако ясное руководство о том, как использовать эти методы, можно встретить редко. В этой главе будет дано простое описание и подробные примеры модели GOMS, разработанной Кардом, Мораном и Ньюэллом, а также критерий эффективности Раскина, закон Хика и закон Фитса.



Ликвидация приложений


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

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

Поскольку жесты (например, те, с помощью которых вызываются команды) из одного приложения не могут быть доступными в другом приложении, вы должны знать о том, какое приложение в данный момент является активным. Но вы не можете знать это наверняка, когда в локусе вашего внимания находится задача, которую вы пытаетесь выполнить. Поэтому иногда вы будете применять жесты, которые либо не будут давать результата, либо будут давать неправильный результат. Отдельной, создаваемой прикладными программами, стоит проблема, что средства одного приложения являются недоступными, когда вы находитесь в другом приложении. Например, ситуация может быть такой: вы хотите выполнить некоторую задачу, которую могли бы выполнить в приложении A. Но вы находитесь в приложении B, в котором аналогичной команды нет. Специалист по вычислительной технике Дан Свайнхарт (Dan Swinehart) назвал такую ситуацию «дилеммой вытеснения» (dilemma of preemption) (Tesler, 1981, с.90).

Известны три подхода к решению дилеммы вытеснения. Наиболее распространенный метод заключается в том, чтобы каждое приложение снабдить всеми средствами, которые пользователю могут понадобиться. Этот метод обсуждался в разделе 5.1, где было указано, что в каждом персональном компьютере имеется множество различных текстовых редакторов. Большинство текстовых процессоров содержит в себе множество разных текстовых редакторов. Например, типичный текстовый процессор имеет более простой текстовый редактор для ввода шаблона в диалоговое окно поиска, чем тот, который используется для работы с основным текстом. При таком подходе приложения расширяются до колоссальных размеров, поскольку каждое их них должно решать огромное множество задач, которые имеют второстепенное значение с точки зрения его основной задачи.
Например, мой текстовый процессор имеет встроенную программу для рисования, с помощью которой я могу создавать простые рисунки, без необходимости выходить из редактора. В то же время, моя программа для рисования графики имеет встроенный текстовый редактор, с помощью которого я могу включать в рисунки форматированные блоки текста без необходимости выходить из программы рисования. Средства рисования в текстовом редакторе и средства редактирования текстов в программе для рисования хуже, чем программы, которые разработаны специально для соответствующих задач. В идеале все команды и возможности как программы для рисования, так и текстового редактора должны быть доступными для пользователя в любой момент. Аналогичным образом в каждой программе имеются средства для сохранения и открытия именованных файлов. Однако эти средства работают по-разному и имеют разные возможности в разных программах. Это приводит к путанице, трудностям в использовании и создает огромный объем избыточного программного обеспечения, которое требует оплаты, усилий на изучение, ведения документации, а также адекватного размера оперативной памяти и места на диске. То же самое касается и множества других возможностей (например, печати), которые дублируются (или очень похожи) в разных программах. Эти проблемы в некоторой степени были учтены производителями и разработчиками. Ряд компаний разработали программное обеспечение, которое позволяет включать в единый составной документ (compound document) части, созданные в разных приложениях. Когда вы щелкаете мышью по любой точке в таком документе, автоматически активизируется приложение, в котором эта часть составного документа была создана. Этот метод позволяет избежать открытия явным образом соответствующих приложений при работе с составным документом. Конечно, для создания такого документа пользователю все равно приходится вручную запускать приложения, создавать части составного документа и затем собирать их в единое целое (обычно с помощью операций вырезания и вставки или перетаскивания). Хотя этот метод и создает некоторое, самое небольшое удобство, дилемма вытеснения с помощью него не решается, что можно видеть на разных примерах (OpenDoc компании Apple, NextWave компании HP, OLE компании Microsoft и их производные).


Когда вы работаете в одной из частей составного документа, у вас в распоряжении нет программных средств, которые используются для создания других частей. Более того, такой документ как бы не имеет границ, и его поведение неожиданным образом меняется в зависимости от места. Таблица и электронная таблица могут выглядеть одинаково, но одна действует по правилам текстового процессора, а другая — по правилам программы электронных таблиц. Это является злодейской модальностью, поскольку единственным признаком вашего местоположения является изменяющееся при щелчке меню, которое обычно расположено далеко от локуса внимания. Как мы уже знаем, это является неэффективным средством извещения пользователя о текущем состоянии системы. Хотя необходимо сказать, что абсолютного средства, конечно, здесь быть не может. Оригинальным методом устранения режимов, которые присущи приложениям, было использование оконной парадигмы. Алан Кэй (Alan Кау) из компании Xerox PARC предложил перекрывающиеся окна (overlapping windows) для того, чтобы частично устранить модальность приложений. Он также хотел убрать разделение между операционной системой и приложениями, но успеха добился, главным образом, в том, чтобы сделать функционирование операционной системы видимым в форме так называемого рабочего стола. На то время это было действительно продвижением вперед, но, как выразился Ларри Теслер (Larry Tesler) из компании PARC, «окна, в некотором смысле, — это режимы в овечьей шкуре» (Tesler, 1981, с. 94). Это означает, что окна, по сути, не устраняют модальность приложений, но позволяют сделать видимыми и доступными одновременно множество приложений. Идея, предложенная Кэем, и другие идеи, возникшие на основе использования окон, стали важным шагом вперед, результатом которого люди пользуются более десяти лет. Однако проблема режимов и дилемма вытеснения, порожденная существованием приложений, так и не были решены. С того времени овечья шкура поизносилась, и из нее все чаще стал выглядывать на нас волчий зуб.


В разделе 5. 8 будет рассмотрен один из способов того, как можно окончательно разделаться с этим волком. Калькулятор или компьютер? Не секрет, что многие из нас держат рядом со своим компьютером калькулятор. Почему же нам требуется это примитивное устройство, когда в нашем распоряжении имеется целый компьютер? Причина в том, что для выполнения простых арифметических действий на компьютере нам приходится предпринять настолько изощренные манипуляции, что они могли бы быть достойны представления в цирке. Представим, что вы сидите за компьютером и набираете какой-то текст в текстовом процессоре и вам необходимо узнать, сколько стоит одна упаковка Phumuxx, при том, что 375 упаковок стоят $248.93. На моем компьютере мне приходится открывать окно калькулятора. Для этого я переношу руку с клавиатуры на мышь, с помощью которой выполняю команду выбрать и перетащить (click-and-drag), чтобы открыть окно калькулятора. Затем я переношу руки обратно на клавиатуру и ввожу нужные цифры или же долго сначала вырезаю их из текста, а потом вставляю в поле калькулятора. Потом мне нужно нажать еще пару клавиш и, наконец, скопировать полученный результат из окна калькулятора в документ. Иногда дело осложняется тем, что окно калькулятора открывается прямо поверх того места, где находятся необходимые мне числа. В этом случае я должен также использовать мышь, чтобы переместить окно калькулятора в другое место и продолжить операцию. Проще достать карманный калькулятор и с помощью него сделать все намного быстрее. Более удачным решением было бы использование специальной кнопки Вычислить (Calculate) или сквозной команды меню, с помощью которой можно было бы вычислить выделенное арифметическое выражение (такое, например, как 248.93/375) в любой среде, будь это текстовый процессор, программа коммуникации или рисования, презентационное приложение или просто рабочий стол. Другими словами, это пример универсальной функции, применимой в любом месте. С помощью эксперимента, в котором участвовал опытный оператор компьютера (и владелец калькулятора), я смог определить, что общее время, которое понадобилось оператору, чтобы во время использования текстового процессора достать калькулятор, включить его, выполнить простую операцию сложения и переместить руки обратно на клавиатуру компьютера для продолжения работы, составило около 7 с.


Затем я измерил время, которое понадобилось ему на использование встроенного калькулятора. При этом оператору было необходимо переместить курсор к меню в верхней части экрана, найти программу калькулятора, открыть ее, получить сумму и затем щелкнуть по окну текстового процессора, чтобы вернуться к своей работе. Это заняло около 16 с. Тому же оператору было предложено выполнить арифметическую операцию в середине документа при использовании компьютера Canon Cat со встроенной клавишей <Вычислить> и возможностью выполнять арифметические операции внутри документа. Время составило 6 с (цифры вводились с помощью верхнего ряда клавиш). Таким образом, в этом случае не было выгоды во времени от использования внешнего калькулятора. Кроме того, в компьютере Canon Cat после вычисления результат оставался в документе на случай, если пользователю требовалось вставить туда результат. В то же время, этот результат оставался выделенным, поэтому пользователь при необходимости мог легко его удалить нажатием на клавишу <Delete>. В системе должна быть доступной также и другая возможность: в любом месте, где пользователь может ввести цифры, он должен иметь возможность ввести арифметическое выражение и вычислить его. Такие команды, как проверить орфографию в текущей выборке; использовать текущую выборку как арифметическое выражение и вычислить его; передать текущую выборку по электронной почте; передать текущую выборку по факсу; перейти по данному URL; выполнить текущую выборку как программу, написанную на языке Java или любом другом языке, должны быть доступными для пользователя в любой момент, что является абсолютно выполнимым с точки зрения разработки.

Локус внимания


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

Здесь я использую термин локус, поскольку он обозначает некоторое место или область. Термин фокус, который иногда используется в этом контексте, может вызвать неправильное представление о том, как работает внимание, потому что может быть понят как действие.3 Когда вы находитесь в бодрствующем и сознательном состоянии, вашим локусом внимания является какая-то деталь или объект окружающего мира или идея, о которой вы целенаправленно и активно думаете. Различие между фокусом и локусом внимания можно понять на примере следующего предложения: «Мы можем целенаправленно сфокусировать наше внимание на каком-либо локусе». Тогда как фокусировать означает волевое действие, мы, тем не менее, не можем полностью управлять содержанием локуса нашего внимания. Если вы слышите, как позади вас внезапно взорвалась петарда, ваше внимание будет направлено на источник звука. Слово фокус также используется при обозначении объекта, который в данный момент выбран на экране. Ваше внимание может быть — или не быть — направлено на такого рода фокус, когда вы пользуетесь тем или иным интерфейсом. Из всех объектов или явлений окружающего мира, которые вы воспринимаете с помощью своих чувств или воображения, в каждый момент времени вы можете сконцентрироваться только на одном. Чем бы ни был этот объект, деталь, воспоминание, мысль или понятие, он становится локусом вашего внимания.
В данном случае имеется в виду не только то внимание, которое можно активно обращать на что-либо, но также и пассивное восприятие потока поступающей информации или простое — переживание происходящего. Вы слышите и видите намного больше того, что становится локусом вашего внимания. Когда вы входите в комнату, чтобы найти какой-то потерянный предмет, он может лежать прямо перед вами и, тем не менее, остаться незамеченным. С помощью оптических средств мы можем установить, что изображение нужного предмета попадало на вашу сетчатку. Возможно даже, что это изображение оказывалось в центральной ямке сетчатки, где четкость зрения наибольшая. Из экспериментов по нейрофизиологии мы знаем, что сигнал, представляющий объект, был сформирован и передан с помощью зрительного нерва. И все же вы не заметили искомый предмет, поскольку он не стал локусом вашего внимания. Прислушавшись, я могу заметить, что лампы дневного света в коридоре рядом с моей комнатой раздражающе жужжат. Но если этого не делать, я не услышу этого звука. Магнитная звукозапись покажет, что звук сохраняется, даже когда я не осознаю его. Чаще всего я замечаю этот звук в тот момент, когда свет включается или выключается. Внезапное начало жужжания обращает на него мое внимание. Внезапное прекращение звука заставляет меня осознать, что я слышал его, причем уже после того, как это происходило. В этом случае то, что кажется очень точным воспоминанием о звуке, который я только что слышал, внезапно становится локусом моего внимания. Эксперименты показывают, что образы непосредственного восприятия — то, что психологи называют перцептивной памятью — хранятся в течение небольшого периода времени. Известный феномен инертности зрительного восприятия лежит в основе того эффекта, что отдельные кадры кинофильма превращаются в сплошной визуальный поток. Зрительные образы обычно затухают через 200 мс. Эта величина может варьироваться в пределах от 90 до 1000 мс. Слуховые образы затухают в среднем через 1500 мс (в диапазоне от 900 до 3500 мс) (Card, Moran and Newell, 1983, с. 29-31).


Сейчас, сидя за столом, я не могу восстановить жужжание осветителей в том же ярком и непосредственном звучании, как я мог это сделать сразу же после того, как оно прекратилось, и внезапная тишина направила мое внимание на тот факт, что этот звук был. Прошло несколько часов, и впечатление рассеялось, оставив только бледное воспоминание о том раздражающем звуке ламп, похожее скорее на описание, чем на ощущение. Восприятия не всегда откладываются в памяти. Большинство восприятий утрачиваются после того, как затухают. С точки зрения разработки интерфейсов из быстрого затухания сенсорных восприятий следует, что человек, прочитавший или услышавший 5 секунд назад некоторое сообщение, необязательно сможет вспомнить его содержание. Если такое сообщение важно само по себе или содержит важную деталь, например номер в сообщении «Ошибка 39-152», то оно должно оставаться на экране до тех пор, пока не перестанет быть актуальным (такой подход можно назвать наилучшим), или же необходимо предоставить пользователю возможность немедленно обработать эту информацию, прежде чем она исчезнет из его памяти. Когда некоторая информация становится локусом внимания, она перемещается в кратковременную память, определение которой мы дадим в разделе 2.3.4. Там она будет храниться в течение 10 секунд.

Миф о дихотомии «новичок-эксперт»


В первую очередь мы люди, а потом, уже либо эксперты, либо новички.
Клиффорд Насс, программа радио СВС «Quirks and Quarks» (Выходки и кварки) от 23 января 1994 г.

Мнение психолога Клиффорда Насса аналогично мнению, которое имеет автор этой книги: разработка интерфейса должна начинаться с учета слабых и сильных сторон человека. Каждый элемент интерфейса должен соответствовать как нашим когнитивным способностям, так и требованиям задачи, стоящей перед пользователем, хотя этим требования к разработке не исчерпываются. Мнение Насса также отражает распространенный взгляд, суть которого заключается в том, что всех пользователей можно разделить на две группы: экспертов и новичков (и, вероятно, еще тех, кто временно находится на переходной стадии от одной группы к другой). Эта дихотомия неверна. Как пользователь сложной системы вы не являетесь ни новичком, ни экспертом, и вас нельзя отнести к какой-то точке на одномерном диапазоне между этими двумя полюсами. Вы можете знать или не знать каждый элемент интерфейса или каждый набор связанных элементов, которые работают одинаковым образом. Вы можете знать, как использовать многие команды и опции какого-то программного пакета, — вы даже можете работать с этим пакетом профессионально, и поэтому другие люди могут обращаться к вам за советом по его использованию. Однако вы можете не знать, как пользоваться некоторыми другими командами, или вообще не знать о существовании этих команд или даже целых категорий команд в данном пакете. Например, пользователю программы для обработки фотоизображений, который применяет ее только для создания онлайновых изображений, может никогда не понадобиться возможность выполнения цветоделения, которая используется, главным образом, для коммерческой печати (или он может даже и не знать об этой возможности).

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


Всякий раз, когда система автоматически как-то изменяется, даже если эти изменения настолько же незначительны, как и, скажем, измененный порядок элементов в меню, ваши ожидания от работы системы не оправдываются, и накопленные привычки и навыки теряют смысл. (Кстати говоря, в своей новой операционной системе Windows 2000 компания Microsoft представила адаптивные меню.19) С другой стороны, не существует теории о том, что один и тот же неизменный интерфейс не может служить хорошо в течение всего времени использования, начиная от начального уровня и заканчивая профессиональным. Лучшим вариантом было не менять ничего в течение всего времени использования продукта, и, наверное, не следует проводить специальных исследований для того, чтобы убедиться, что для выполнения какой-то задачи лучше изучать только один интерфейс, а не несколько. Очень легко попасть в ловушку идеи разработки разных интерфейсов для разных классов пользователей, потому что она чревата слишком большими обобщениями, которые могут привести к ложному упрощению процесса разработки. Немногие из этих обобщений окажутся верными для каждого пользователя в любом (значительно большем) классе пользователей, который можно выделить. Средством против такого заблуждения может быть взгляд на интерфейс не с точки зрения класса пользователей, а с точки зрения индивида. Каждый человек, который использует какое-то программное обеспечение достаточно долгое время, проходит через сравнительно короткий этап изучения каждой команды и каждого элемента интерфейса, а также через намного более длительный период обычного (и, надеюсь, автоматичного) его использования. Нам действительно необходимо разрабатывать такие системы, которые легко изучить и понять, но еще более важным является то, чтобы эти системы могли эффективно использоваться в течение длительного времени. Исключение могут составить только программы, которые предполагается использовать недолго, поэтому каждый ее пользователь будет начинающим, и вопрос приобретения навыков и привычек здесь не имеет значения.


В качестве примера такого интерфейса можно привести выставочный киоск, оснащенный компьютером. Фаза изучения работы элемента интерфейса требует сознательного внимания. Поэтому простота и ясность функции, а также ее видимость имеют особую важность. Фаза профессионального владения интерфейсом главным образом характеризуется бессознательным использованием его возможностей. Такое использование подкрепляется следующими качествами интерфейса: соответствие задаче, немодальность и монотонность. Эти требования ни в коей мере не противоречат друг другу. Таким образом, хорошо разработанный, человекоориентированный интерфейс совсем не требует разделения на подсистемы. для новичков и экспертов. Конечно, это не значит, что интерфейс не может быть разделен на такие части. Однако если вы разрабатываете интерфейс и у вас возник соблазн создать комбинации клавиш специально для опытных пользователей, подумайте, не следует ли вместо этого переработать существующий метод так, чтобы его механизм мог подойти под требования всех пользователей. 10 Мне не известно, как долго термин режим используется при описании интерфейсов. Во внутреннем отчете компании Xerox, посвященном системе Gypsy Typescript System, с гордостью заявлялось: «В Gypsy нет режимов» (Tesler and Mott, 1975). На самом деле в Gypsy существовали режимы, но наиболее проблемные из тех, что встречались в текстовых процессорах того времени, были устранены. В 1975 году термин режим в этом контексте был настолько новым, что авторы даже посчитали нужным заключить его в кавычки. 11 Уже во время написания этой книги разработчики AutoCAD лицензировали технологию, которая использовалась в Drafting Assistant. 12 На компьютере Macintosh соответствующая клавиша названа более точно, Delete (удалить). 13 Я был в шоке, обнаружив кнопку питания с задней стороны системного блока на компьютере Canon Cat, когда его первые экземпляры пришли из Японии. Когда я указывал на то, что в технической документации эта кнопка даже не упоминается, в ответ я многократно получал от инженеров только одно-единственное объяснение: «Мы думали, что в технических требованиях содержалась ошибка». 14 Благодарю компанию John Fluke Manufacturing Со.


за предоставленный экземпляр прибора. 15 Также используются другие термины: объект-действие и действие-объект. 16 Книгу «The Psychology of Everyday Things» ( Психология каждодневных вещей) можно назвать классическим трудом, с которым следует ознакомиться каждому. 17 Система обеспечения автобусного и железнодорожного сообщения в Сан-Франциско. — Примеч. науч. ред. 18 Я всегда говорю, что если из этого выражения убрать слово «совместимость» (compatibility), его истинное значение сразу становится понятным. 19 Когда я писал этот раздел, операционная система Windows 2000 была новым продуктом, и поэтому я смог поговорить только с несколькими ее пользователями. Типичным отзывом было высказывание: «Сначала адаптивные меню казались неплохой идеей, но как только я столкнулся с тем, что какое-то меню изменилось, это меня выбило из колеи. Больше мне эта идея не нравится.»

<= Previous Index Next =>


Модель скорости печати GOMS


Цель точной науки заключается в том, чтобы свести проблемы природы к установлению количеств посредством операций с числами.
Джеймс Клерк Максвелл «К вопросу о фарадеевых силовых линиях» (1856)

Здесь я хочу обсудить только один простейший, но довольно ценный аспект метода GOMS — модель, основанная на оценке скорости печати. Разработчики, которые знакомы с методом GOMS, редко проводят детальный и формальный анализ модели интерфейса. Отчасти это происходит из-за того, что основы GOMS и других количественных методов известны им настолько, что они изначально руководствуются этими методами в процессе разработки. К формальному анализу, конечно, прибегают в случаях, когда необходимо выбрать один из двух вариантов разработки, когда даже небольшие различия в скорости могут давать большой экономический и психологический эффект. Иногда разработчики пользуются поражающими своей точностью расширенными моделями GOMS, как, например, анализ с использованием метода критического пути GOMS (critical-path method GOMS, CPM-GOMS) или версия, называемая естественным языком GOMS (natural GOMS language, NGOMSL), в которой учитывается поведение неопытного пользователя, например время, необходимое ему для обучения. С помощью этих методов можно, например, предсказать, сколько времени понадобится пользователю для выполнения некоторого набора действий при использовании данного интерфейса с абсолютной погрешностью менее 5%. В расширенных моделях почти все оценки не выходят за пределы стандартного отклонения, принятого для измеренных значений времени (Gray, John и Atwood, 1993, с. 278). Для вопросов, которые вызывают жаркие споры и по поводу которых авторитетные разработчики зачастую высказывают совершенно разные мнения, полезно вооружиться количественными методами, имеющими теоретическое обоснование и получившими экспериментальную апробацию. Более полный обзор и библиографию, посвященные различным моделям GOMS, можно найти у Джона (John, 1995); там же можно найти и модель CPM-GOMS, разработанную самим Джоном.



Модели «существительное-глагол» и «глагол-существительное»


Большой класс команд предусматривает применение некоторого действия к некоторому объекту. Например, при использовании текстового процессора вы можете выбрать какой-то абзац и изменить его шрифт. В этом случае объектом является абзац, а действием — выбор нового шрифта, при этом в интерфейсе могут использоваться две последовательности: либо (1) сначала выбор глагола (изменить шрифт), а затем выделение существительного (абзац); либо (2) сначала существительное, а потом глагол. На первый взгляд может показаться, что оба варианта являются симметричными, и порядок не важен. Однако для большинства интерфейсов ситуация не является симметричной, и порядок (существительное-глагол или глагол-существительное)15 имеет большое значение с точки зрения юзабилити интерфейса.

В большинстве руководств по разработке интерфейсов рекомендуется именно модель взаимодействия существительное-глагол (Apple, 1987; Hewlett Packard, 1987; IBM, 1988; Microsoft. 1995). Анализ, проведенный с точки зрения локуса внимания пользователя, показывает преимущества такой модели:

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

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

Простота и обратимость.
При использовании модели глагол- существительное должна быть предусмотрена возможность отмены или отката команды. Если пользователь назначает команду и затем решает изменить ее, следует учитывать, что он находится в этот момент в режиме, и система ожидает, что будет сделано выделение текста для применения уже назначенной команды. Поэтому должен быть предусмотрен механизм подачи системе сигнала о том, что вы не хотите выделять текст и хотите назначить другую команду. В модели существительное-глагол, для того чтобы выбрать другой текст, не требуется нажимать кнопку отката или применять какой-либо другой способ отмены действия. Тем не менее, в каждом из увиденных мной руководств по разработке интерфейсов, в которых рекомендуется модель существительное-глагол, использование модели глагол-существительное также допускается. В руководстве Microsoft говорится, что модель глагол-существительное необходимо использовать для палитр, например, в выборе стиля кисти в графических редакторах (Microsoft, 1995). Вообще, это не совсем правильно. В данном случае также можно использовать чистую модель существительное-глагол. Вы можете рисовать с использованием набора параметров, принятого по умолчанию (например, тонкая линия черного цвета), и затем с помощью команд изменять цвет, ширину, текстуру и другие параметры линии. Однако на самом деле мы хотим сразу видеть, как выглядит каждый мазок, который мы делаем, со всеми его параметрами. Общепринятый способ, при котором пользователь сначала выбирает атрибуты из одной или нескольких палитр, — аналогично тому, как вы можете перед началом рисования макать кисть в ту или другую банку с краской, — приводит к модальным ошибкам, которые, как мы уже видели, неизбежно должны здесь возникать. Имеет смысл делать так, чтобы выбранный режим сохранялся до тех пор, пока пользователь специально не сменит его. В этом случае вы можете начать рисование и неожиданно обнаружить, что для этого используются другие атрибуты, но, к счастью, результат рисования в данный момент находится в локусе вашего внимания.


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


Разработчики компании предложили отменить установку отдела по умолчанию, вынуждая пользователей каждый раз сначала выбирать отдел. Они заметили, что в этом случае единственно возможная ошибка связана только с выбором неправильного отдела. Тем не менее, такое решение раздражало тех пользователей, которые обычно работали за своим компьютером, и необходимость каждый раз вводить информацию, которая уже была доступна системе, вызывала раздражение. По сути дела, проблемой являлась все та же ситуация «глагол-существительное». Сначала необходимо было ввести, что вы хотите сделать (доставить эти товары в этот отдел), и затем выбрать, что именно вы хотите доставить. Однако при открытии окна заказа в локусе вашего внимания находятся (или только что находились) товар или товары, которые вам нужны. Часть решения заключалась в том, чтобы разместить список товаров наверху окна заказа. Таким образом, пользователь мог начать с выделения нужных товаров. А список отделов, который раньше не имел никаких надписей, получил заголовок в форме вопроса: «В какой отдел следует доставить заказанные товары?» Если система могла определить собственный отдел пользователя (на основе журнала работы пользователя), в первую строку списка отделов автоматически добавлялся элемент под названием «Мой отдел», который так же, как и другие элементы списка, имел флажок. Все другие отделы, расположенные в алфавитном порядке, составляли остальную часть списка. Рядом с каждым отделом находился флажок. При установке флажка появлялось сообщение: «Отмеченные товары заказаны», которое исчезало сразу после любого действия пользователя. В измененном варианте интерфейса выбор отдела являлся действием, т.е. глаголом, после которого информация об отмеченных товаpax отправлялась для обработки. Психологически это стало действием, завершающим всю операцию заказа, а не предваряющим его. Кроме того, следует отметить, что к этому моменту бланк заказа уже заполнен, и внимание пользователя сместилось с самих товаров на необходимость их доставки.Таким образом, ход работы стал соответствовать тому, куда обычно следует внимание пользователя. Отпала необходимость в установке места доставки по умолчанию, так как интерфейс предоставлял четкое психологическое окончание процессов выбора товаров и отправки заказа. В начальном варианте интерфейса требовалось подтверждение заказа, тогда как в новом варианте количество щелчков мыши сократилось, ибо от пользователя не требовалось делать еще одного лишнего щелчка. С введением нового варианта интерфейса у пользователей появилась возможность сформировать привычку выбирать из списка отделов обычное место доставки, но оставалась вероятность того, что пользователь в редких случаях мог забыть отметить при необходимости и другие отделы, в которые товары должны быть доставлены. Тем не менее, даже с наличием этой потенциальной ошибки новый вариант интерфейса был существенно улучшен по сравнению с предыдущим.

Монотонность


Человек — слишком сложный организм. Если уж ему суждено исчезнуть, то вымрет он от желания простоты.
Эзра Паунд

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

Одним из оправданий такого разнообразия методов для выполнения задачи может быть то, что одни пользователи могут предпочесть один метод, а другие пользователи — другой. Например, для новичка научиться пользоваться меню может быть легче, тогда как опытный пользователь, скорее всего, не будет отрывать рук от клавиатуры и отдаст команду с ее помощью (см. раздел 3.6). Другим оправданием может быть то, что один метод (например, выделение, вырезание и вставка) может быть полезным для работы с разнесенными частями документа, а другой метод (выделение и перетаскивание) может быть эффективным, только когда на дисплее видны и исходная и конечная позиции одновременно. Другим обоснованием множества методов может быть то, что каждый из них порожден традицией, и поэтому разработчики считают разумным использовать как можно больше навыков из уже существующих у пользователей.

Этот последний довод, называемый еще обратной совместимостью (backward compatibility)18, является самым слабым и может привести к абсурдным интерфейсам в виде собрания несовместимых методов. Однажды во время одного из длинных авиаперелетов нам пришлось приземлиться из-за плохой погоды. Пока мы ждали ее улучшения, я прошел в кабину пилотов, где смог изучить устройство автопилота. В нем имелось не менее пяти способов для ввода координат и столько же способов для включения большинства его функций.
Когда я спросил пилота о причинах такой избыточности, она ответила, что автопилот сделан таким образом, чтобы функционально быть как можно более подобным автопилотам на других самолетах, на которых пилоты могли изучать данный прибор и тем самым избежать необходимости переучивания. Однако возникал вопрос относительно того, насколько такой подход можно считать правильным и насколько точно выполняется дублирование других автопилотов. Как она мне еще объяснила, пилоты должны изучать не только те небольшие, но, тем не менее, раздражающие различия между старой системой автопилота и ее эмуляцией на новой модели, но также и остальные четыре способа использования автопилота. То есть пилот обязан знать каждый аспект работы каждого элемента оборудования пилотской кабины. Более того, следует отметить, что многие новые функции автопилота имеются только в некоторых эмуляциях, и ранние модели автопилотов не содержат этих функций, т.к. и копируемые автопилоты их не имели. Тактика гибридизации различных вариантов интерфейса, а вернее, сбрасывания всех методов подряд в одну кучу увеличивает время обучения, создает сложный в использовании автопилот и, как отметила упомянутый пилот, «создает путаницу в кабине и увеличивает вероятность ошибки». Хотя она и не сказала этого, но, вероятно, это также увеличивает стоимость и сложность приборов, руководств по их использованию и стоимость их обслуживания. То же касается любого интерфейса, который представляет собой совокупность разрозненных подходов, накопленных с течением времени, включая также Macintosh и Windows. Для описания интерфейса, имеющего только один способ выполнения той или иной задачи, я использую термин монотонный, который все же не совсем удачен (см. приложение B, а также Alzofon и Raskin, 1985, с. 95). Монотонность — это вторая сторона отсутствия модальности. В интерфейсе, который не имеет режимов, данный жест пользователя может иметь один и только один результат: жест g всегда приводит к действию a.


Тем не менее, вполне возможно, что другой жест h тоже может приводить к результату в виде действия a. Однако монотонный интерфейс допускает только один способ выполнения того или иного действия, т.е. в этом случае действие a может вызываться только лишь жестом g и более никаким другим. Интерфейс, который является полностью немодальным и монотонным, допускает только одно соответствие между причиной (командами) и следствием (действиями). Чем более монотонным является интерфейс с точки зрения пространства данной задачи, тем легче для пользователя сформировать автоматичность ее выполнения, которая, в конце концов, создается тем, что снимается необходимость выбирать способ достижения результата. Другой причиной отсутствия монотонности в интерфейсе может быть нерешительность разработчиков. Я встречал случаи, когда проблема наличия каких-то двух и более вариантов, ни один из которых не имеет преимуществ по сравнению с другими, предусмотрительно «решалась» с помощью внедрения сразу всех этих вариантов. В пользу такого подхода обычно приводится довод о том, что пользователь в этом случае получает выбор, как будто бы пользователь является экспертом по интерфейсам и может сам выбрать самый эффективный вариант. Общераспространенным мифом (более подробно о нем см. в разделе 3.6) является то, что интерфейсы для начинающих и опытных пользователей системы должны быть совершенно различными. Иногда разработчики говорят о том, что «необходимо найти компромисс между легкостью изучения интерфейса и общей скоростью работы системы» (Card, Moran, и Newell, 1983, с. 419). Это действительно может касаться каких-то особых моделей интерфейсов, но это необязательно имеет отношение ко всем интерфейсам вообще и в частности к тем видам интерфейса, которые обсуждаются в этой книге. Современные графические пользовательские интерфейсы, имеющие рабочий стол, являются сочетанием, по крайней мере, двух разных интерфейсов: с одной стороны, сравнительно видимой и быстроизучаемой системы на основе меню, а с другой — неполного собрания трудноизучаемых и труднозапоминаемых комбинаций клавиш.


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


Только в результате этих двух свойств мог бы возникнуть эффект исчезновения интерфейса из сознания пользователя, предоставляя ему возможность направить все свое внимание на текущую задачу. Чтобы изучить все психологические свойства системы, являющейся монотонной и полностью (или почти полностью) лишенной режимов, требуется провести еще множество экспериментальных исследований. Если я прав, то использование продукта, интерфейс которого основан на немодальности и монотонности, могло бы быстро вызывать привыкание (близкое к зависимости) у пользователей, приводя к тому, что все они могут приобрести преданность этому продукту и предпочитать его всем другим. Для пользователей такого продукта оказалось бы психологически трудным перейти к применению конкурирующего продукта. В отличие от продажи наркотиков, продажа интерфейсов, вызывающих привыкание у их пользователей, не является противозаконной, а сам интерфейс приносит пользователям облегчение. С другой стороны, это все же имеет сходство с продажей наркотиков в том, что может приносить такие же сверхвысокие доходы.

Навигация и другие аспекты человекоориентированных интерфейсов


Средний человек испытывает большие страдания от муки новой идеи.
Адмирал Уильям С. Симс

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

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



Одновременное выполнение задач


На языке когнитивной психологии любая задача, которую вы научились выполнять без участия сознания, становится автоматичной. Автоматизм позволяет выполнять сразу несколько действий одновременно. Все одновременно выполняемые задачи, за исключением не более чем одной, являются автоматичными. Та задача, которая не является автоматичной, естественно, находится непосредственно в локусе вашего внимания. Когда вы выполняете одновременно две задачи, ни одна из которых не является автоматичной, эффективность выполнения каждой из них снижается в результате конкуренции за область внимания. Этот феномен психологи называют интерференцией. Чем более предсказуемой, автоматичной и бессознательной становится задача, тем больше становится эффективность ее выполнения одновременно с другими задачами, и, тем менее, она конкурирует с ними (Baars, 1988, с. 33).

Человек, по-видимому, имитирует одновременное выполнение нескольких задач, требующих сознательного контроля, через последовательное переключение внимания с одной задачи на другую (Card, Моran, Newell, 1983, с. 42). Действительная одновременность достигается, когда все задачи, кроме разве что одной, становятся автоматичными. Например, вы можете одновременно не спеша идти, что-нибудь есть и при этом решать какую-нибудь математическую задачу. (В это же время можно бессознательно обдумывать и еще одну математическую задачу, но по определению когнитивного бессознательного вы не заметите этого процесса. Здесь я обращаю ваше внимание только на то, что вы не можете сознательно работать над двумя разными математическими задачами одновременно.) Для большинства людей все эти действия, за исключением поиска решения математической задачи, настолько знакомы, что могут выполняться «на автопилоте». Однако если при одновременном выполнении всех этих действий вы внезапно почувствуете какой-нибудь неприятный на вкус кусочек вашей походной еды, вы станете думать только о том, что вы такое съели, тогда как математическая задача перестанет быть вами осознаваемой.

Не менее важным, чем понимание того, что в каждый отдельный момент времени нельзя осознавать более одной задачи, является тот факт, что человек не может избежать формирования автоматических реакций.
Эта невозможность не зависит от повторения: никаким количеством повторений нельзя научиться не формировать привычки при регулярном использовании того или иного интерфейса. Формирование привычек является неотъемлемой частью нашего ментального аппарата. Его невозможно остановить волевым действием. Наверное, когда-нибудь в субботу утром вы нечаянно приезжали туда, где находится ваша работа, хотя собирались поехать в какое-то другое место. Сделали вы это по привычке, которая сформировалась через повторение определенной последовательности действий. Когда вы учились читать, то поначалу проговаривали по отдельности каждый слог и обращали внимание на произношение каждой буквы. Теперь же (я надеюсь) вы можете читать без необходимости сознательного контроля над процессом составления слов из букв. Любая последовательность действий, которую вы регулярно выполняете, становится, в конце концов, автоматичной. Набор действий, составляющих последовательность, становится как бы одним действием. Как только вы начнете выполнять некоторую последовательность, требующую не более 1 или 2 секунд времени, вы не сможете остановиться и проделаете все действия вплоть до завершения последовательности. Вы также не сможете прервать последовательность, выполнение которой занимает больше нескольких секунд, если она не стала локусом внимания. Если возвратиться к примеру с субботним утром, то после того как вы сделали неверный поворот, вы могли внезапно осознать, что собирались ехать совершенно в другом направлении. Это осознание помещает текущую задачу управления автомобилем в локус вашего внимания и позволяет вам прервать автоматичную последовательность действий, которая направила вас к месту вашей работы. Когда вы повторяете какую-то последовательность действий, единственный способ предотвратить формирование привычки — это удерживать то, что вы делаете, в локусе внимания. Это очень сложно. Как обычно говорят, наше внимание «гуляет». Неизбежность формирования привычек имеет свои следствия и с точки зрения разработки интерфейсов.


Например, многие из нас пользовались компьютерными системами, которые перед тем как выполнить необратимое действие, например удаление файла, задают вопрос: «Вы уверены?» После этого вам требуется ввести либо Y («Да»), либо N («Нет») в качестве ответа. В основе этого лежит идея, что, запрашивая подтверждение вашего решения, система оставляет вам шанс исправить ошибку, которая могла бы быть неисправимой. Эта идея считается общепринятой. В этой связи можно привести, например, строки из книги Смита и Дьюэла (Smith and Duell, 1992), адресованные медицинскому персоналу: «Если вы случайно удалите какую-то часть постоянной записи — что трудно сделать, поскольку компьютер всегда спросит вас о подтверждении операции...» (с. 86). К сожалению, Смит и Дьюэл дают нереалистичную оценку ситуации — ведь вы вполне можете случайно удалить запись, даже если упомянутое подтверждение было получено. Так как ошибки случаются редко, вы обычно будете отвечать Y («Да») на любую команду, которая требует подтверждения. Из-за постоянного повторения ввод Y после команды удаления вскоре становится привычным действием и, вместо того чтобы остаться отдельной ментальной операцией, превращается в часть действия по удалению файлов. В результате вы, не останавливаясь и не проверяя собственное намерение, вводите Y. Таким образом, запрос компьютерной системы, предназначенный служить в качестве меры безопасности, из-за привычки становится бесполезным и только усложняет обычный процесс удаления файлов. Все дело в том, что любой запрос о подтверждении, требующий установленного ответа, вскоре становится бесполезным. Разработчики, которые используют такого рода подтверждения, и администраторы, которые думают, что запросы о подтверждении обеспечивают безопасность, на самом деле не учитывают силу свойства формирования привычек, присущего когнитивному бессознательному (см. также раздел 6.4.2). Более эффективный подход заключается в том, чтобы дать пользователю возможность отменить ошибочную команду, даже если после нее были совершены какие-то другие действия.


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

Запрашиваемое вами действие не может быть отменено. Оно может привести к полной потере информации в данном файле. Если вы уверены, что хотите полностью удалить эту информацию, введите в обратном порядке десятое слово в этом диалоговом окне.
Такой вид запроса о подтверждении операции можно назвать просто драконовским, и при этом он столь же бесполезен. Любой эффективный способ подтверждения непременно будет раздражать, потому что он препятствует формированию у пользователя привычного ответа на запрос и вообще привыканию к этой процедуре. Если по тем или иным причинам, скажем, связанным с правами доступа, какой-либо файл никогда не должен быть удален пользователем, следует предотвратить саму возможность такого действия. Кроме того, подобные меры каждый раз создают у пользователя новый локус внимания, и поэтому он может забыть подумать о правильности своего решения, тем самым сводя на нет назначение запроса о подтверждении и свои собственные старания. Не существует идеального способа подтверждения операции. Даже если пользователь будет вводить обоснование удаления, — такой метод особенно подходит для ситуаций, связанных с соблюдением правомочности действий, — это, в конце концов, приведет к тому, что он станет каждый раз выбирать один и тот же стандартный ответ. Если основание для выполнения того или иного необратимого действия было с самого начала неверным, никакое предупреждение или запрос о подтверждении этого действия не поможет пользователю избежать ошибки. В ловушке автоматизма Я попался в ловушку собственного автоматизма, когда писал эту главу.Я выделил курсивом слово, потом попытался убрать курсивное начертание. В большинстве текстовых процессоров Macintosh, чтобы привести текст к нормальному стилю, требуется, удерживая клавишу со значком яблока (называемую еще клавишей Command), нажать и отпустить клавишу с буквой T (Command-T). Однако в Microsoft Word команда Command-T изменяет формат абзаца. Если бы вы спросили меня, с какой программой я в тот момент работал — или, другими словами, если бы вы сделали это локусом моего внимания, — я бы ответил, что с Word. Тем не менее, чтобы применить нормальный стиль, я автоматически (!) выполнил команду Command-T и в результате по ошибке получил изменение формата абзаца. Единственный способ избежать подобных ошибок — это предусмотреть в интерфейсе неизбежность формирования привычек.

Определение человекоориентированного интерфейса


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

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

Многие из нас испытывают раздражение, например, от того, что для запуска (иначе говоря, загрузки) компьютера требуется какое-то время. В 1999 году была реклама одного автомобильного радиоприемника со встроенным компьютером, в которой утверждалось, что «в отличие от домашнего компьютера, эта система не заставит вас долго ждать, пока она загрузится». Внимательное изучение шести наиболее серьезных работ в области разработки интерфейсов показывает, что даже в этих книгах, написанных в основном в то время, когда разработке интерфейсов стали придавать важное значение, проблема загрузки не упоминается (Shneiderman, 1987; Norman, 1988; Laurel, 1990; Tognazzini, 1992; Mayhew, 1992; Cooper, 1995). Тем не менее, я уверен, что каждый из названных авторов всецело согласился бы с тем, что сокращение или устранение задержки при запуске компьютера улучшило бы эффективность его использования, тем более что я еще не встречал пользователя, у которого такая задержка не вызывала бы раздражение. Однако никогда не существовало технической необходимости в том, чтобы компьютер после включения начинал работать более чем через несколько секунд. Наши компьютеры долго загружаются только лишь потому, что многие дизайнеры и разработчики не потрудились сделать интерфейс в этом отношении ориентированным на человека.
Кроме того, некоторые люди думают, что если компьютеры с медленной загрузкой продаются миллионами, то это якобы свидетельствует об их высокой производительности. Нельзя сказать, что проблема долгой загрузки машины всегда игнорировалась. Уже вышедший из употребления Apple Newton, Palm Pilot и другие карманные компьютеры могут запускаться мгновенно, а появление на некоторых компьютерах «спящего режима» — состояния, в котором компьютер потребляет меньше энергии, чем в обычном режиме, и из которого он может быть быстро переведен в рабочее состояние, — это шаг в правильном направлении. Инженерам удавалось с успехом решать и более сложные проблемы. Например, в ранних моделях телевизоров необходимо было ждать около минуты, пока разогревалась катодная трубка кинескопа. В некоторых моделях инженеры добавили специальную схему, которая поддерживала катодную трубку в теплом состоянии, что позволило сократить время достижения рабочей температуры. (Поддержание катодной трубки в разогретом состоянии потребовало бы большого расхода электричества и уменьшило бы срок ее службы.) В другом варианте был разработан кинескоп с катодной трубкой, которая разогревалась в течение нескольких секунд. И в том и в другом случае интересы пользователя были удовлетворены. В начале двадцатого столетия был создан автомобиль на паровой тяге, называвшийся Стенли Стимер (Stanley Steamer). Несмотря на все свои очевидные достоинства, этот механизм не имел успеха из-за одного недостатка: чтобы тронуться с места, от момента зажигания до достижения необходимого давления в котле требовалось подождать 20 минут. Принцип разработки, согласно которому программные продукты не должны вынуждать пользователя ждать без необходимости, можно считать очевидным и ориентированным на человека. Таким же является и стремление не подгонять пользователя. В общем виде этот принцип можно было бы сформулировать следующим образом: «Ритм взаимодействия должен устанавливаться самим пользователем». Не требуется обладать большими техническими знаниями, чтобы понять, что большая пропускная способность коммуникационных линий может ускорить передачу веб-страниц.Однако другие взаимосвязи иногда бывают не столь очевидны. Поэтому для разработчиков интерфейсов «человек-машина» важно знать внутренние механизмы технологии. В противном случае у них не будет возможности оценивать достоверность утверждений, высказанных, например, программистами или специалистами по аппаратной разработке относительно осуществимости тех или иных элементов интерфейса.

<= Previous Index Next =>


Определение интерфейса


Позвоните по вышеуказанному номеру и испытайте невероятное разочарование от нашей системы голосовой почты.
Надпись под рекламным объявлением одной из марок обуви

В этой книге выражения интерфейс «человек-машина» или интерфейс «человек-компьютер» я обычно буду сокращать до пользовательского интерфейса или просто интерфейса. Многие считают, что термин пользовательский интерфейс относится только к современным графическим пользовательским интерфейсам (graphical user interface, GUI), основанным на окнах и меню, управляемых с помощью мыши. Например, в одной из статей в журнале «Mobile Office» было сказано: «Уже недалеко то время, когда вам совсем не нужно будет задумываться об интерфейсе, вы будете просто разговаривать со своим компьютером». В ответ на это я мог бы заметить, что системы, управляемые голосом, действительно могут обходиться без окон, но телефонные автоответчики их также не имеют, и, тем не менее, их интерфейсы зачастую оказываются чрезвычайно плохими. Итак, способ, которым вы выполняете какую-либо задачу с помощью какого-либо продукта, а именно совершаемые вами действия и то, что вы получаете в ответ, и является интерфейсом. (См. также Raskin, 1993.)