Один человек, один компьютер.
Слоган компании Apple Computer
Представьте себе, что вы поднялись на борт сияющего шикарной отделкой авиалайнера, оснащенного просторными, комфортабельными кожаными креслами с целым набором встроенной аудио- и видеотехники; в буфете вас ожидают отличная еда и напитки. Вы садитесь в свое кресло и смотрите в большой, чисто вымытый иллюминатор. Со вздохом предвкушения особенно приятного полета вы протягиваете руку к шкафчику впереди вас, чтобы поглядеть, что там. Сначала вы достаете весьма объемистую бутылку любимого напитка, а затем буклет с описанием этого замечательного воздушного лайнера.
В то время как двери закрываются и идут приготовления к взлету, вы усаживаетесь поудобнее и начинаете читать. Из буклета вы узнаете, что интерьер самолета создан трудами самых лучших в мире дизайнеров, что повара из пятизвездочных отелей лично составляли меню и готовили блюда и что в группу разработчиков самолета не были включены инженеры-авиаконструкторы, поскольку всемирно признанные дизайнеры сделали внешний вид самолета таким, что и без того создается впечатление авиалайнера, способного летать во много раз быстрее, чем любой другой.
Еще в буклете мелким шрифтом сообщается, что путешествие на этом самолете нередко даже в хорошую погоду сопровождается болтанкой и что достаточно регулярно с ним случаются катастрофы. Если же перелет обойдется без этих инцидентов, то в целом, как обещают авторы, ваше путешествие будет комфортным и интересным.
Теперь звук закрывающихся дверей внезапно принимает угрожающее значение, вы теряете спокойствие и чувствуете, что попали в ловушку. Вы начинаете думать, что именно этот рейс обречен и что вы предпочли бы сейчас сидеть в более жестком кресле, без любимого напитка и даже без бокового иллюминатора, лишь бы только самолет был оборудован хорошей и надежной техникой.
Представленная абсурдная ситуация довольно точно описывает суть большинства существующих сегодня "человеко-машинных" интерфейсов. Наши компьютеры и сотовые телефоны оснащены самыми последними моделями чипов и другой электронной начинкой.
Современные операционные системы способны радовать глаз великолепными цветными заставками и стремительными трехмерными эффектами. Вы щелкаете по кнопке, и вот! — вы видите, как она движется самым реалистичным образом, слышите, как звук щелчка мыши весьма точно передается с помощью цифрового стереофонического воспроизведения, а затем, как только на экране открывается панель, до ваших ушей доносится чарующее глиссандо арфы.
Но когда вы начинаете пользоваться этой системой, выясняется, что в некоторых случаях она неприятно ограничивает вас своим непредсказуемым поведением. Из тысяч команд, предусмотренных в системе, вам не удается найти ту, которая нужна в данный момент, а простые стандартные процедуры выполняются бесконечно долго. Программа, приобретенная в прошлом году, вдруг перестает запускаться под улучшенной версией той же самой операционной системы, и вам приходится покупать новую версию программы. Ко всему прочему оказывается, что операционная система имеет свойство время от времени зависать.
В основе разработки хороших интерфейсов лежат некоторые основные принципы, которые на сегодня не являются общеизвестными. И вопрос о необходимости изучения этих принципов не возникает, поскольку кажется, что уже определено, как должны выглядеть и работать интерфейсы: ведь они непрерывно совершенствовались в течение двух десятилетий, основные разработчики программного обеспечения опубликовали руководства по созданию интерфейсов, чтобы обеспечить совместимость между ними, а существующие средства разработки позволяют быстро создавать любые интерфейсы, которые выглядят по-современному — подобно тому, как и упомянутый авиалайнер создавался, чтобы быть похожим
на безопасный и комфортабельный летательный аппарат.
Все эти интерфейсы неспособны выполнять многие важные для нас задачи. Например, чтобы записать какую-то мысль, вы хотели бы просто подойти к компьютеру или другому устройству для обработки информации и начать набирать ее — без всякой загрузки, без необходимости открывать текстовый процессор, создавать файл, вообще без использования операционной системы. (Мое определение операционной системы звучит следующим образом: "То, с чем приходится возиться перед тем, как начать возиться с программой".) Чтобы добавить к репертуару системы несколько средств для выполнения простых операций, вы не обязаны изучать целую прикладную программу.
К сожалению в разработке интерфейсов изначально было взято неверное направление, и это привело к тому, что уровень их сложности стал неоправданно высоким с точки зрения как технологической, так и логической необходимости.
Миллионы из нас имеют противоречивые отношения с информационными технологиями. Мы не можем жить без них, и в то же время нам трудно жить с ними. Тем не менее, проблема создания удобных и простых технологий имеет свои решения, хотя мы и не можем ими воспользоваться — они станут доступными, только если мы оставим груз прошлого. Привычный вариант интерфейса в виде рабочего стола, ориентированный на работу с прикладными программами, является частью этой проблемы. В этой книге предлагаются некоторые альтернативные варианты. В конце концов, компьютерные проблемы — это не погода, и мы все-таки можем что-то сделать для их разрешения.
С учетом широкого распространения Интернета, а также очевидной важности компьютерных продуктов, предназначенных для группового взаимодействия, может показаться странным, что содержание этой книги касается, главным образом, разработки однопользовательских интерфейсов. Одной из причин этого является тот факт, что проблема разработки однопользовательских интерфейсов еще не решена. Но главная причина состоит в том, что качество любого интерфейса в конечном итоге определяется качеством взаимодействия между одним человеком и одной системой — между ней и вами. Если индивидуальное взаимодействие с некоторой системой не проходит для пользователя легко и комфортно, то в результате этот недостаток негативным образом отражается на качестве работы всей системы, независимо от того, насколько она хороша в других своих проявлениях.
Index
Next =>
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), чтобы в программном обеспечении можно было предусматривать распознавание одновременного нажатия нескольких клавиш.
Старые и более примитивные компьютеры имели клавиатуры, в которых только некоторые специальные клавиши (например, ) можно было одновременно нажимать вместе с другими клавишами. Аккордные клавиатуры позволяют решить ряд сложных интерфейсных проблем. Например, рассмотрим наложение символов. Требуется логически ясный метод создания двух символов в одном месте. Например, для того чтобы сделать знак доллара с помощью наложения буквы 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-клавишный циклический буфер и описанные выше методы наложения, то для обратной связи во время набора интерфейс может временно отображать пару налагаемых друг на друга символов в виде смежных символов.Смысл этого заключается в том, что интерфейс не может отличить одновременное нажатие клавиш при быстром наборе от одновременного нажатия с целью наложения символов друг на друга до тех пор, пока клавиши.не отпущены, после чего слияние накладываемых символов происходит автоматически. Также хочу добавить, что требуется радикальная реформа клавиатуры, связанная с удалением клавиши . Эта клавиша порождает режим.
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 =>
Другие решения интерфейса для Хола
В разделе 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, если оно в шкале Фаренгейта. Результат преобразования будет отображен на экране.
В данном примере нажимать на клавишу не требуется. Некоторые примитивные средства разработки интерфейсов требуют, чтобы пользователь обязательно использовал клавишу , и поэтому в них невозможно использовать символы 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.
Более эффективное диалоговое окно с несколькими кнопками запуска
Все три варианта являются ошибочными. Если пользователь всегда обновляет оглавление полностью, то при первом варианте ему придется делать каждый раз по два щелчка мышью (или один щелчок и одно нажатие на кнопку ).
Если переключатель остается в том положении, в котором окно использовалось последний раз, пользователь не сможет пользоваться этим окном привычным образом, поскольку каждый раз ему придется останавливаться и проверять, в каком положении переключатель находится. Если же переключатель может устанавливаться пользователем в положение по умолчанию (см. раздел 3.2.2), то тем самым включается режим.
Диалоговое окно, изображенное на рис. 5.6, позволяет решить сразу все эти проблемы. Кроме того, по закону Фитса кнопки большого размера имеют преимущество по сравнению с набором переключателей. Если такое окно сделать прозрачным, то можно также отказаться от использования кнопки (см. раздел 5.2.3). В этом случае используемые две кнопки не должны быть прозрачными, чтобы пользователь мог видеть, что они являются активными.
Диалоговые окна для поиска с разделителями обычно снабжены устройством для сохранения текущего шаблона сразу после обнаружения последнего экземпляра. Такое устройство можно назвать "искать еще" или "найти далее". В некоторых вариантах оно запускается с помощью той же кнопки, которая использовалась для начального поиска. Если поиск является пошаговым, то команда для повторного поиска того же объекта является необходимой, поскольку в этом варианте нет никакой команды для запуска начального поиска. Применять для повторного поиска клавишу включения квазирежима не желательно, т.к. пользователь может нажать эту клавишу, а затем передумать и отпустить ее. В этом случае будет начат поиск, который пользователь не хотел запускать. В результате пользователь может потерять место в тексте, в котором он находился. Хотя использование системы глобального отката может исправить ситуацию, все же лучше вообще не создавать этой проблемы. Специальный метод для выполнения повторного поиска будет рассмотрен в разделе 5.6.
В больших по размеру текстах поиск может осуществляться по кругу (циклично) не только в локальном документе, но и далее, в автоматически расширяющихся областях вплоть до всего Интернета.37 После того как поиск был выполнен по всему локальному документу, он может быть продолжен в отношении последующих документов папки, а затем перейти на начало первого документа папки и продолжиться до текущего, уже просмотренного документа.
После циклического поиска внутри папки рассматривается следующая локальная область поиска и т.д. Если во время пошагового поиска, выполняемого таким образом, пользователь поймет, что процесс поиска слишком расширился, он может остановить его, убедившись, что в ближних областях искомого экземпляра нет. Текущую область поиска определить обычно легко, т.к. пользователь может видеть результаты поиска в своих контекстах, а не просто список файлов, как это делается во многих современных поисковых системах.
В общем случае пользователи будут применять более эффективные стратегии поиска, чем просто полагаться на такой метод автоматически расширяющегося поиска. Например, если вы ищете какой-то документ в текущей папке, то, скорее всего, вы станете искать символы документов, чтобы быстро просмотреть начало или заголовок каждого документа. Если нужный документ обнаружен, запускается пошаговый поиск в отношении целевого объекта. Таким образом, обеспечивается порядок, по которому поиск производится в первую очередь в выбранном документе, что позволяет применять более короткий шаблон на меньшей площади поиска. Если же вы не знаете, в каком документе искомый объект находится, или если вы не хотите искать с начала документа, вы можете применить сплошной поиск, который в любом случае обнаружит искомый объект.
Форма курсора и методы выделения
Цель как поиска с ограничителями, так и пошагового поиска строки обычно заключается в том, чтобы обнаружить в тексте некоторую строку и выделить ее. Пользователи стараются использовать как можно более короткие последовательности в шаблонах поиска, т.к. длинные последовательности трудно набирать, и в большинстве систем они должны быть набраны с точностью до каждого символа, чтобы соответствовать целевому объекту. Поэтому поиск строки обычно не применяется для выделения даже средних по размеру целевых объектов, длина которых больше, чем 10-15 символов, не говоря уже о действительно больших блоках текста. Поиск строки применяется для того, чтобы помочь пользователю обнаружить место, где расположена искомая выборка, после чего пользователь может применить уже другой метод для обозначения этой выборки (например, использовать ГУВ для перемещения курсора от одного конца выборки до другого). Однако, если края выборки нельзя видеть одновременно, следует использовать другой метод. Он состоит из следующих шагов: (1) обозначение одного края выборки с помощью той техники, которая используется в данной системе; (2) сделать видимым другой край выборки с помощью полос прокрутки; (3) обозначить другой край выборки. В большинстве систем обозначение второго края выборки позволяет выделить всю выборку.
Более эффективный подход заключается в том, чтобы создать такой механизм поиска, который позволили бы размещать курсор на конкретном символе. Два таких размещения курсора можно использовать для обозначения первого и последнего символа выборки. Таким образом, все множество механизмов, обычно используемых для поиска краев выборки (а именно: перемещение курсора, прокрутка, различные механизмы поиска страниц, поиска по шаблону и т.д.) и их обозначения заменяются одним механизмом, который используется два раза, что упрощает процесс изучения, использования и формирования привычек, а также упрощает внедрение.
Рассмотрим теперь графическую форму курсоров. В настоящее время наиболее распространенной формой текстовых курсоров является курсор, который помещается между символами, как это показано на рис. 5.7.
Одной из проблем стандартного текстового курсора является то, что пользователи пытаются поместить его точно между символами, целясь на небольшой горизонтальный объект, который по размеру меньше, чем требуемый, что в соответствии с законом Фитса приводит к временным затратам. Кроме того, во время тестирований, проведенных в компании Information Appliance, мы с удивлением обнаружили, что эта распространенная форма курсора создает интересную когнитивную проблему, состоящую в том, что пользователь должен располагать курсор по-разному, в зависимости от того, какое действие он собирается совершить далее. В частности, чтобы удалить существующий символ с помощью клавиши , требуется разместить курсор справа от символа (в английском или любом другом языке, который читается слева направо). Чтобы вставить какой-то символ рядом с существующим символом, необходимо поместить курсор слева от существующего символа (в этом случае существующий символ сдвинется вправо). Наше удивление было связано с тем, что использование стандартного курсора хорошо знакомо каждому пользователю, и поэтому никто не мог подумать, что курсор можно было бы рассматривать как потенциальный источник проблем.38 Любой, кто пользовался курсором, знает, что разобраться с тем, как им пользоваться, несложно. Тем не менее, у начинающих пользователей компьютеров может возникнуть некоторая путаница и ошибки при первых попытках его использования. Путаница усугубляется еще и тем, что пользователи не видят локусы действия применяемых команд.
Рис. 5.7.
Стандартный курсор, помещаемый между символами
Введение режима, при котором удаление происходит в направлении, обратном обычному, не решает проблемы. Такой метод, называемый правосторонним удалением (forward erase), позволяет всегда размещать курсор слева от символа, к которому будет применено действие. Однако в этом случае вы будете иногда неожиданно для себя удалять в неправильном направлении, т.к. текущее направление удаления не находится в локусе вашего внимания.
Если требуется наличие двух направлений удаления, желательно использовать для этого две разные клавиши или же ввести режим для противоположного направления удаления.
Использование курсора, который визуально показывает как (1) область вставки, так и (2) символ или символы, которые могут быть удалены клавишей , может быть ценным улучшением интерфейсов, ориентированных на работу с текстами. Вторая форма подсветки может быть аналогична той, которая используется для подсветки выборок. Один из способов достижения этого показан на рис. 5.8.
Рис. 5.8.
Курсор из двух частей, выделяющий как отдельный символ, так и расширенную выборку. Часть курсора, которая обозначает область вставки, мигает для того, чтобы курсор можно было легко обнаружить на экране
Перемещение курсора к объекту с помощью ГУВ является многократным процессом, в котором пользователь сначала визуально фиксирует целевой объект и затем перемещает курсор к этому объекту. Если пользователь не помнит, где находится курсор, ему также придется визуально искать его местонахождение. После этого он опять ищет целевой объект и т.д. до тех пор, пока объект и курсор не оказываются рядом в одном поле зрения широтой приблизительно 5°. Другими словами, для перемещения курсора с помощью ГУВ пользователь должен выполнить несколько процессов, требующих времени. Тем не менее, ГУВ необходимо для указания на графические объекты или при работе в полностью графической среде.
Неповоротливость ГУВ при работе с текстами усугубляется в случаях, когда возникает необходимость указать на объект, находящийся за пределами страницы. В этих случаях использование только ГУВ вынуждает пользователя использовать полосы прокрутки, переключатели страниц и другие механизмы, чтобы перейти к тому содержанию, на которое нужно указать. Каждый из этих методов требует изучения, и многие из них работают довольно медленно.
Функция LEAP дает пользователю когнитивное преимущество, которое избавляет его от необходимости выбирать между разными методами в зависимости от расстояния до объекта. (Alzofon и др., 1987 г.).
Наличие клавиши и ГУВ означает, что имеется два основных способа перемещения курсора. Однако пользователь выбирает тот или иной метод в зависимости от содержания объекта, а не от расстояния между курсором и этим объектом. Обычно содержание уже находится в локусе вашего внимания, поэтому когнитивный выбор между клавишей и ГУВ сделать сравнительно просто.
Использование функции 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. Для перемещения курсора к некоторому целевому объекту требуется выполнить следующие операции: нажать на клавишу , после чего набрать 3.5 символа. Таким образом, применение функции LEAP в среднем состоит из 4.5 символов. Добавление, в соответствии с правилами, оператора М дает в результате 1.35+(4.5*0.2)=2.25 с.
В другом эксперименте по хронометрированию, в котором участвовали опытные пользователи, сравнивалась мышь с функцией LEAP. Задача состояла в том, чтобы переместить курсор между двумя случайно выбранными символами, отображенными на экране размером 25 строк по 80 символов. Отсчет времени не начинался до тех пор, пока пользователь не начинал двигать мышью, или до тех пор, пока он не нажимал на клавишу . Среднее время составило приблизительно 3.5 с для мыши и 1.5 с для клавиши . Увеличение значения по сравнению с расчетным, вероятно, связано с небольшими размерами целевых объектов (в качестве которых использовались отдельные символы), что было обусловлено законом Фитса. Неожиданно малые значения для клавиши , вероятно, могут объясняться небольшими размерами текста, в котором возможный шаблон поиска в среднем мог состоять приблизительно из 2 символов. Участникам эксперимента было дано неограниченное время на планирование своих действий перед использованием мыши или клавиши .
Таким образом, во многих случаях пользователь может быстрее завершить передвижение курсора с помощью клавиши , чем переместить свои руки с клавиатуры к мыши.
5.6. Позиция курсора и клавиша
Объектом функции клавиши
является отдельный символ. С какой стороны символа должен появляться курсор: справа или слева? Размещение курсора слева от символа правильно только в том случае, если вы собираетесь сделать в этом месте вставку. Тогда как размещение курсора справа от символа правильно при условии, что вы собираетесь удалить этот символ. По-видимому, компьютер должен знать о вашем намерении перед тем, как правильно разместить курсор.
Для случая со вставкой рассмотрим старый курсор в виде прямоугольника вокруг буквы или в виде подчеркивания. При использовании клавиши для перехода к какой-то букве курсор должен располагаться на самой букве. (Курсор не мешает чтению буквы; рис. 5.9.) Тогда пользователь может точно сделать в этом месте вставку или удаление. Прямоугольный курсор позволяет более точно, чем стандартный, межсимвольный курсор, показать место, где произойдет вставка или удаление.
Рис. 5.9. (а) С помощью ГУВ или клавиши
курсор был размещен рядом с буквой l в слове slat. (b) Если нажать клавишу , получится sat. (с) Но если вы введете букву p, вы получите слово splat. Обратите внимание на то, что в первом случае обе части курсора (для вставки и удаления) были размещены на букве l, показывая, что вы можете в этом месте сделать либо вставку, либо удаление. После удаления (b) или вставки (с) элементы курсора разделились, показывая теперь, где возможно выполнить вставку или удаление
Такой вариант порождает другую проблему. Предположим, что имеется слово tongs. Курсор установлен на букве o. Вы вводите букву h. Получается thongs. Куда должен переместиться курсор? Здесь опять же нужно знать намерение пользователя. Если курсор находится на букве h, то неясно: эта буква является местом вставки или удаления? Удалением должно быть действие, противоположное вставке, — так, чтобы нажатие на клавишу привело к удалению буквы h и возвращению к слову tongs.
Но если вы введете другую букву, скажем r, такое нажатие должно сместить букву o к букве h, образуя в результате слово throngs. При использовании надсимвольного курсора, наверное, тоже должны быть предусмотрены средства предварительного определения направления его действия.
Проблема может быть решена следующим образом. Когда вы передвигаете курсор, он должен помещаться на отдельный символ. При вводе или удалении курсор должен разделяться на две части, связанные с двумя прилегающими символами, как это показано на рис. 5.9. Первый символ обозначен удаляющей частью курсора, а второй обозначен снизу указателем вставки. Фокус отчасти заключается в том, что используется курсор из двух частей. Он сделан таким образом, что когда его части объединяются (как они должны это делать после нажатия клавиши или перемещения курсора каким-то другим способом), пользователю графически ясно, что они располагаются на одном символе независимо друг от друга. Все это может показаться сложным, когда описывается словами, но на самом деле для начинающего пользователя научиться пользоваться курсором LEAP проще, чем обычным курсором, изображенным на рис. 5.7. Все, что нужно знать начинающему пользователю — это то, как выглядят маркеры для выделения и вставки, и что клавишей удаляется выделенное, а вводимые символы появляются рядом с маркером вставки.
Символы располагаются скорее последовательно, чем смежно, т.к. хотя два последовательных символа обычно и могут быть смежными, они не являются таковыми, если первый из них находится в конце строки. Для языков, которые читаются слева направо, курсор удаления обычно располагается справа от вставляемого символа, а для языков, которые читаются справа налево, — порядок обратный. Для вертикально-ориентированных языков курсор вставки размещался бы под курсором удаления, и для двумерной печати (boustrophedonic scripts) в каждой строке они бы менялись местами.
Восприятие целевых объектов становится проще при использовании ГУВ с курсором из двух частей, поскольку объекты, или символы, больше по размеру, чем пробелы между ними, и поэтому активные области легче обнаружить. (Активная область для курсора PARC распространяется приблизительно до середины каждого символа по обе стороны от пробела между ними.
Однако визуально они никак не разделяются, отчего целевой объект кажется меньше по размеру. На практике многие пользователи стараются поместить курсор между символами, тем самым вызывая ограничение закона Фитса, связанное с небольшими размерами целевых объектов.)
Как мы уже говорили, начинающие пользователи иногда испытывают трудности в понимании того, как работает стандартный межсимвольный курсор. Этот переходный процесс связан с интерфейсным элементом, настолько знакомым каждому пользователю, что редко (если вообще когда-то) у кого-нибудь возникает мысль подвергнуть его сомнению. С курсором из двух частей, который при переходе на какой-то символ складывается, упомянутая неясность в том, на какой символ курсор указывает, исчезает и таким образом снимает всю проблему.
В некоторых случаях может быть полезным ограничить действие функции LEAP. Ограничение поиска может быть выполнено с помощью: (1) выделения области поиска; (2) выделения команды или текущей выборки (как это описано в разделе 5.2.1), ограничивающей последующий переход (с помощью клавиши ) к этой области, которая становится старой выборкой; (3) использования клавиши . Однако ограничение функции LEAP не должно выполняться путем введения режима. Отсутствие возможности определить, включен режим или нет, делает использование функции LEAP чрезвычайно неудобным — пользователь больше не сможет легко находить необходимые ему объекты. Компания Canon использовала в компьютере Canon Cat механизм, названный "Local Leap" (локальный прыжок), который вызывал именно эти проблемы, о которых читатель этой книги теперь уже знает и может их предупредить.
Внедрение функции LEAP также требует наличия другой функции — функции LEAP AGAIN (Прыгнуть еще раз), с помощью которой выполняется переход к следующему экземпляру того же шаблона в том же направлении, в котором функция LEAP была применена последний раз. В компьютерах SwyftWare и Canon Cat поиск обычно осуществлялся в виде перехода (LEAP) к шаблону и затем использования несколько раз клавиши до тех пор, пока не обнаруживался искомый экземпляр.
Функция 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), которую можно нажимать многократно, вплоть до четырех раз соответственно. Такое решение позволит избежать резкого увеличения количества клавиш на клавиатуре. Важно, чтобы все символы разделителей имели специальную клавишу, иначе они не будут работать как все другие набираемые символы. То есть пользователь не должен нажимать на какую-то клавишу (например, ) и потом применять команду Вставить разрыв страницы. Для этого он должен использовать только специальный символ страницы.
Если разнообразные символы разделения работают так же, как и все другие символы, исчезает необходимость в обучении пользователей тому, как с ними управляться. Если пользователь все же настаивает на использовании явных имен документов, он может ставить такие имена сразу после символа документа. Для того чтобы найти документ с именем "Собаки Азии", поиск должен будет производиться по фразе "Собаки Азии", перед которой стоит символ документа. При таком поиске будут игнорироваться все случаи использования последовательности "Собаки Азии", кроме тех, которые используются в качестве имени документа. Для получения каталога может использоваться команда, которая сможет собрать документы, включающие искомую подстроку и предваряющиеся символом документа, а также другими символами, вплоть до и включая ближайший символ конца абзаца или разделитель более высокого уровня.
Отказ от использования иерархической файловой структуры не означает отказ от структурирования сохраняемой информации. Ничто не мешает вам создавать оглавления и указатели или размещать все ваши письма к дяде Альберту и тете Агате на соответствующих страницах. Ничто не мешает вам создавать сразу перед письмами титульную страницу (как отдельный документ) "Письма к дяде Альберту и тете Агате".
В этом случае вы, в сущности, создадите файловое имя, но оно не потребует использования специальных механизмов в программном обеспечении. По желанию, если вы действительно любите файловые имена и иерархии, вы можете создать свою собственную иерархическую файловую структуру. Однако тогда, структура будет частью вашего содержания, а не интерфейса.32
Поэтому вместо специального механизма поиска файлов вы сможете использовать обычные средства поиска. Перед группой файлов вы можете поместить в виде документа название папки. Также перед группой папок вы можете поместить название тома. (В этом случае за символом тома будет следовать название тома, чтобы избежать совпадений с другими такими названиями, не являющимися именами тома.) Отсутствие встроенной файловой организации не мешает созданию файла, предназначенного для какой-либо цели, но, в то же время, понятного вам, т.к. он создан именно вами. Тем не менее, поскольку система при этом никак не изменяется, другой пользователь может искать что-либо в ваших данных и фактически проигнорировать вашу структуру и рассматривать ее как сплошной, неструктурированный файл.
Преимуществом организации произвольной файловой структуры является то, что такая структура не устанавливается разработчиками системы, у которых могут быть совсем другие идеи, отличные от ваших. В этом случае вам не приходится создавать ментальную модель того, что разработчики пытались сделать. У многих пользователей формируются неправильные модели того, как та или иная система работает. Ментальные модели трудно изменяются и поэтому они могут долгое время создавать трудности для таких пользователей (Norman, 1988).
Сказанное не является теорией. Отказ от использования в компьютерах SwyftWare и Canon Cat файловых имен, директорий, а также от механизмов, с помощью которых с ними производятся манипуляции, оказался одним из самых удачных решений. Пользователи, привыкшие к использованию обычных компьютерных систем, признавали, что им было трудно перейти к использованию систем, основанных на принципе организации информации по содержанию.
Но когда такой переход происходил, обычные методы вскоре казались им неудобными. А пользователи, которые начинали знакомиться с компьютерной техникой с компьютера Canon Cat, не испытывали радости от необходимости изучать более сложные методы использования обычных файловых систем, когда они переходили на PC или Macintosh.
В сравнении с обычными графическими пользовательскими интерфейсами методы, описываемые в этой книге, могут показаться сложными. Но кажущаяся сложность возникает только лишь из-за того, что новый подход еще не знаком, а также из-за того, что мы привыкли к тому множеству действий, которое мы должны выполнить, и к тем проблемам, которые возникают при использовании существующих сегодня систем. Конечно, новая система потребует от пользователя усилий на изучение. Но если вы сравните успехи начинающих пользователей, работающих с разными системами, или сравните эффективность работы опытных пользователей, преимущества более простой системы станут очевидными.
Представьте, что у вас есть n документов, которые вы должны скопировать на внешний носитель — пусть это будет жесткий диск. Для этого, используя, например, операционную систему Macintosh, вы должны будете перетащить пиктограмму каждого документа на пиктограмму диска. Новая парадигма, на первый взгляд, делает операцию более сложной. Вам нужно найти начало и конец каждого документа, выбрать документ, переместить курсор к нужному месту на диске и затем переместить каждый документ.
Вспомните, что в обычном графическом пользовательском интерфейсе вы всегда начинаете с открытия некоторого общего приложения. Ваш первый шаг — это добраться до рабочего стола. Вы должны помнить, какие пиктограммы соответствуют нужным документам, и вам (или кому-то другому) всегда приходится выполнять действия по назначению имен этим документам. Вы также должны помнить, в какой папке эти документы находятся. Поэтому кажущаяся простота достигается только после того, как выполнен значительный объем работы, и пользователь разделался с большим количеством обременительных ментальных требований.
Более эффективным методом является изобретение под названием LEAP. Предположим, что, как и в случае для обычного графического интерфейса, курсор находится в одном из документов, которые вы хотите переместить. С помощью LEAP пользователь может выбрать документ шестью нажатиями клавиш, причем не глядя на экран и не держа в голове имя документа. Нажатие 6 клавиш отнимает меньше времени, чем перетаскивание пиктограммы.
Функция LEAP работает следующим образом: имеется две клавиши , находящиеся под большими пальцами. производит поиск вперед от позиции курсора, a — назад. При нажатии на клавишу включается квазирежим, после чего все, что вы ввели, воспринимается как шаблон поиска. Для выборки документа вы должны нажать и ввести символ документа (LEAP-Up↓ Doc↓ ↑↑). Мы перемещаемся к началу документа. Затем мы нажимаем и вводим символ документа (поиск в этом случае найдет символ документа в конце документа). Одновременное нажатие на обе клавиши позволяет выделить весь текст. (Вероятно, удобнее всего это делать с помощью больших пальцев, которые редко используются при работе с клавиатурой. См. рис. 2.1 с изображением обычной клавиатуры, снабженной клавишами . Альтернативным вариантом является клавиша <Выбрать> (Select).) Для того чтобы сделать эту функцию видимой, рядом с клавишами необходимо поместить какое-то обозначение. Например, можно использовать надпись: "Для создания выделения нажмите одновременно на обе клавиши LEAP". Обратите внимание, что пользователю не требуется смотреть на экран при выборе документа. Когда документ выбран, нажатием клавиши курсор перескакивает на тот объект, куда нам необходимо вставить текст, после чего дается команда Копировать (Copy). При таком выделении документ включает свои разделители. Таким образом, если документ перемещается, он сохраняет в себе свою сущность как документ, поскольку эти разделители перемещаются вместе с ним.
Та же самая техника, которая использовалась для копирования документов (или другой выборки любой длины, начиная от единственного символа и заканчивая набором документов или даже всем содержанием системы (!)) из одного места в другое, может быть использована и для перемещения выборки.
Разница состоит только в том, что подается команда Переместить (Move) вместо команды Копировать (Copy). В функциональном отношении этот процесс является не более сложным, чем аналогичные процессы в обычных пользовательских графических интерфейсах. Зачастую он оказывается более быстрым, а число методов, понятий и структур, которые должен знать пользователь, оказывается меньшим.
Сравним перемещение нескольких выборок из разных документов на диск с помощью клавиши с выполнением этой же задачи в обычном пользовательском графическом интерфейсе. В первом случае метод будет аналогичным тому, который применялся для перемещения документов на диск. Объекты, предназначенные для выборки, сначала находятся (при этом необходимости их открывать нет), потом они выбираются, как это было описано выше (за исключением того, что в начале и в конце выборки используются символы не документа, а текста), и затем они копируются в нужное место. В обычном пользовательском графическом интерфейсе пользователь должен сначала открыть
документ, в который будет производиться копирование (возможно, это потребует использования команды Создать (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
Нажатие клавиши :
H P K H K K K K K
Нажатие клавиши завершает часть анализа, касающуюся метода. В соответствии с правилом 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, теория информации может дать нам общий критерий оценки качества интерфейса.
Экранные состояния объектов
Элементы человекоориентированного интерфейса должны быть доступными для начинающего пользователя и эффективными для опытного пользователя, причем переход от одного к другому не должен требовать переучивания. Хороший интерфейс должен давать одну ментальную модель, которая подходит для обоих классов пользователей, с учетом, конечно, того факта, что по отношению к одним частям системы мы можем быть опытными пользователями, а по отношению к другим— начинающими. В предыдущем разделе было предложено, чтобы клавиша, выполняющая некоторый текст как команду, могла быть применена к выделенному тексту независимо от его происхождения. В результате выполняется определенная команда, при условии, что выделенный текст является именем этой команды, — в противном же случае никакого действия следовать не должно. Хорошо, если бы для ввода команд можно было использовать квазирежим с помощью удерживания клавиши . Однако это удобство в существенной мере зависело бы от эргономичности клавиши . В целом, такая возможность улучшила бы использование систем с командной строкой, которые многим нравятся за скорость и удобство работы, но, в то же время, многими ненавидятся за трудность в изучении. Улучшения здесь два: вы можете подавать команды в любом месте и в любое время, а т.к. команды аналогичны представленным в меню, то можно легко переходить от меню к непосредственной подаче команд и обратно.
Ввод команд требует специального места, а также времени на то, чтобы его найти, поэтому удобнее, чтобы пользователь мог ввести команду в любом месте, где находится курсор, и в тот момент, когда это требуется. После выполнения команды введенное имя команды должно быть удалено с тем, чтобы имена команд не оказались разбросанными по всему содержанию. С другой стороны, если вы выполняете команду из списка, то удаление имени команды нежелательно, поскольку список, по сути дела, является меню. Создание такого меню не должно требовать ничего, кроме как напечатать список команд, выделить его и затем применить к нему команду (например, Создать Меню (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 мы рассмотрим количественные методы оценки производительности интерфейсов, скорости движения курсора и времени, необходимого для принятия решения.
Команды и трансформаторы
Хороший дизайн является более важным, чем вы думаете.
Рекс Хефтмэн
Когда сложность некоторого продукта или части программного обеспечения, или компьютерной системы превышает наши в ней потребности и создает трудности, это вполне оправданно вызывает в нас раздражение. Даже если нам требуется поработать с каким-то простым текстом, мы вынуждены разбираться в сотнях или, как в случае с 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 =>
Команды
Я как писатель-фантаст уверен, что этот чертов робот должен говорить на человеческом языке, а не наоборот.
Спайдер Робинсон
Некоторые команды (как, например, Отменить) не обязательно могут применяться к выборкам. Другие команды действуют только по отношению к текущей выборке — как, например, команда, которая удаляет текущую выборку. Некоторые из этих команд вводятся с клавиатуры. Однако число клавиш на клавиатуре меньше, чем количество возможных команд. Каждая дополнительная клавиша-модификатор (как, например, , , , или