Многие примеры поглощенности кажутся невероятными до тех пор, пока вы сами не окажетесь в подобной ситуации или пока не услышите так много свидетельств, что убедитесь в силе этого состояния. Аварии и катастрофы самолетов служат убедительными примерами, поскольку они, как правило, хорошо изучены и тщательно документированы. Поэтому приведем еще один случай. Известный пилот управлял самолетом незнакомой для него модели, в которой перед посадкой требовалось выпустить шасси. В этой модели используется специальная звуковая сигнализация, которая срабатывает, когда самолет находится на определенной высоте от земли при не выпущенном шасси. «Я посадил самолет при убранном шасси, посчитав, что звуковой сигнал, который постоянно звучал, пока я приближался к посадочной полосе, имел отношение к пневматическому тормозу. (Это был один из моих первых уроков, связанных со странной ментальной путаницей, приводящей к авариям.)» (Garrison, 1994). Но в том случае не было никакой «странной ментальной путаницы». Гаррисон целиком сосредоточился на том, чтобы совершить хорошую посадку – это одна из самых трудных задач в пилотировании, требующая очень большой концентрации. [6]
   Способность человека «отстраиваться» от того, что отвлекает, необязательно проявляется в виде реакций типа «все или ничего», как это было в предыдущих примерах. Реакция может быть пропорциональной уровню поглощенности или интенсивности помехи. По мере роста напряжения «люди все больше и больше концентрируются только на нескольких характеристиках окружающей обстановки, обращая все меньше и меньше внимания на другие» (Loftus, 1979, с. 35). Таким образом, если во время использования какого-либо интерфейса компьютер начинает работать неожиданным образом, то по мере того как ваше волнение, вызванное возникшей проблемой, возрастает, вы с меньшей вероятностью сможете замечать подсказки, сообщения и другие средства помощи пользователю.
   Чем более критической является задача, тем меньше вероятность того, что пользователь заметит предупреждения относительно тех или иных потенциально опасных действий. Предупреждающее сообщение с наибольшей вероятностью может остаться незамеченным именно в тот момент, когда информация, содержащаяся в нем, имеет наибольшую ценность. Это напоминает курьезное следствие из третьего закона Мерфи, [7]но на самом деле не имеет к нему отношения. Единственное, чем мы можем здесь помочь, – это сделать так, чтобы пользователь не смог совершить ошибок, связанных с работой интерфейса, или, другими словами, чтобы пользователь имел возможность сразу отменить результаты любого действия, а не просто получал предупреждения о потенциальных его последствиях. Большинство ситуаций в интерфейсе могут быть спланированы таким образом, что сообщения об ошибках становятся ненужными. Сильная критика применения сообщений об ошибках имеется в книге Купера «About Face» (Cooper, 1995, с. 421–440).

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

   То, что у нас может быть только один локус внимания, может показаться странным. Попробуем рассмотреть причины этого. Баарс в своей работе (1988) красноречиво отвечает на этот вопрос, пытаясь найти биологическое объяснение тому, что мы развились таким ограниченным образом, и утверждает, что
   «сознание и связанные с ним механизмы ставят под сомнение функциональные объяснения проблемы, поскольку возможности сознания парадоксальным образом ограничены. Почему мы не можем переживать две разные «вещи» одновременно? Почему кратковременная память (STM) [8]способна вместить не более полудюжины несвязанных между собой элементов? Каким образом такие ограниченные возможности оказались приемлемыми? Как было бы замечательно, если бы мы могли читать одну книгу, а писать другую, говорить с приятелем и еще наслаждаться какой-нибудь вкусной едой, и все это одновременно. Определенно, возможности нашей нервной системы кажутся достаточными для того, чтобы совершать все эти действия в одно и то же время. Стандартный ответ про некие «физиологические» ограничения – что у нас только две руки и один рот – кажется неубедительным, поскольку он приводит к другому вопросу, который еще более усложняет проблему: почему организмы, наделенные самым совершенным мозгом в животном царстве, не развили у себя руки и рты, чтобы нормально управляться с несколькими параллельными процессами? А также – почему наша способность к параллельной обработке информации возрастает с автоматизмом и уменьшается по мере того, как в процесс вовлекается сознание? (с. 348)»
   Баарс предполагает, что ответ на эти вопросы связан с тем, что в каждом из нас существует только одно «Я», что есть только одна «целостная система». Но если сказать, что в человеке есть только одна личность, то это вызывает очередной вопрос, а именно: почему ансамбль «сознание-тело» не содержит в себе множества личностей? Здесь я говорю не об изменениях, которые происходят постоянно@, но о действительно одновременном наличии нескольких независимых друг от друга сознаний в едином физическом организме. Возможно, что наличие только одной личности является формой биологического приспособления к линейности времени либо обусловлено скорее эволюционной случайностью, чем функциональной адаптацией. Тем не менее, причина того, что личность только одна, вероятнее всего, состоит именно в адаптации – содержать в одном теле одновременно множество личностей, наверное, было бы просто физически невозможно. При свойственной нам организации тела две личности не могли бы одновременно разговаривать или поворачивать голову в разных направлениях. Даже если бы наши глаза могли двигаться независимо друг от друга, как у геккона, разве они смогли бы удовлетворить два разных любопытства? Как мне представляется, человек, у которого в результате мутации возникло множество сознаний, стал бы жертвой какого-нибудь хищника, попытавшись убежать от него в разные стороны одновременно, – и это только один из возможных трагических вариантов. [9]
   Иногда рождаются сиамские близнецы и двухголовые животные, но они имеют два разных сознания, и эти случаи обусловлены неправильной записью или прочтением генетического кода. Их нельзя назвать успешными с точки зрения эволюции, и они не являются результатом естественного отбора. В естественных условиях такие капризы природы вряд ли смогли бы выжить и дать потомство.

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

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

2.3.6. Возобновление прерванной работы

   Обычно, прервав некоторую работу, вы затем к ней возвращаетесь. Если перерыв продолжается всего несколько секунд – в пределах периода затухания кратковременной памяти, – дополнительных стимулов, для того чтобы вы могли вернуться к выполнению текущей задачи, не требуется. Если период более длительный, то возвращение к выполнению прерванной задачи должно быть чем-то инициировано – например, видом лежащей перед вами незаконченной работы. Такие подсказки в обычной жизни встречаются так же часто, как и при работе с компьютерами: банановая кожура, оставленная вашим 4-летним ребенком на кухонном столе, становится подсказкой о том, что кожуру необходимо выбросить.
   Одной из метафор, пронизывающих как персональные компьютеры, так и производные от них технологии, является та центральная, нейтральная отправная область, называемая еще рабочим столом, из которой пользователь может запускать различные приложения. После включения большинство компьютеров отображают рабочий стол, хотя некоторые из них можно настроить на запуск определенного набора приложений. Закрыв приложение, вы обычно возвращаетесь на рабочий стол. Такой подход к интерфейсу не является ориентированным на человека и эффективным. Причина здесь очевидна: когда вы закрываете какое-либо приложение, вы хотите либо (1) возвратиться к предыдущей задаче, с которой вы работали, либо (2) начать новую задачу.
   В нынешних системах, основанных на рабочем столе, вы всегдадолжны самостоятельно осуществлять переход к необходимой задаче. Для интерфейса, который всегда возвращает вас туда, где вы остановились в последний раз, это был бы худший возможный случай, потому что если вы захотели бы вернуться к предыдущей задаче, вам вообще не пришлось бы совершать никаких действий.
   Аналогичным образом, когда вы возвращаетесь на какой-либо сайт, или веб-страницу, лучше всего было бы возвратить вас на то место, где вы были последний раз, а не на начальную страницу, тем более что если сайт хорошо разработан, то переход на начальную страницу осуществляется одним щелчком мыши. По этим же самым причинам очевидно, что когда вы открываете документ в каком-либо приложении, например в текстовом процессоре, вы должны вернуться к тому месту, где вы с ним работали в тот момент, когда закрыли или сохранили его в последний раз.
   Компьютер Canon Cat имел свойство при запуске всегда возвращаться к последней задаче. Более того, на экране появлялось именно то изображение, включая позицию курсора, которое было на момент последнего его использования. Многие пользователи говорили, что когда они видели на экране ту же самую картинку, это помогало им быстрее вспомнить, чем они занимались, когда последний раз пользовались машиной, поэтому возвращаться к работе с Canon Cat было для них более приятно, чем к работе с компьютером, который при запуске отображал рабочий стол. В последнее время подобный подход используется в компьютере под названием Apple iBook, который сохраняет текущее состояние на диске и при включении машины выводит его обратно на экран.
   Разработчики радиоприемников и телевизоров с цифровой настройкой всегда предусматривают возможность сохранения параметров звука и каналов, на которые эти приборы были настроены в последний раз, что, конечно, усложняет эти приборы и повышает их стоимость, так как для этого требуются элементы энергонезависимой памяти, необязательные для всего остального механизма. Для разработчиков компьютеров задача упрощается, потому что в компьютерах уже имеется значительный объем такой памяти в виде жесткого диска. Поэтому нет оправдания тем разработчикам, которые не предусматривают подобную возможность также и в компьютерах, имея все необходимые для этого аппаратные средства.

3. Значения, режимы, монотонность и мифы

   Нет прогресса без борьбы.
Фредерик Дуглас

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

3.1. Терминология и условные обозначения

   Мир делится на людей, которые думают, что они правы.
Дидр Мак-Грат

   Содержание (или контент) – это информация, которая находится в компьютере или другом устройстве, предназначенном для обработки информации, и которая является для вас осмысленной и полезной. Создание или изменение содержания – это та задача, которую вы предполагаете выполнить с помощью упомянутого устройства. Если вы писатель, содержание – это те ваши произведения, которые хранятся в системе. Если вы художник, ваши рисунки представляют собой содержание системы. Сама система – компьютер, а также меню, пиктограммы и другие его принадлежности – не является содержанием, если только вы не программист и не разработчик интерфейсов. Теперь мы можем перефразировать первый закон робототехники Азимова (см. главу 1) в терминах содержания: «Никакая система не может причинить вред содержанию или своим бездействием допустить, чтобы содержанию был причинен вред».
    Графическое устройство ввода(ГУВ) – это механизм для передачи системе информации об определенном местоположении или выборе объекта на экране монитора. В качестве примера типичного ГУВ можно привести мышь, трэкбол, световое перо, планшетный карандаш (tablet pen), джойстик или тачпад. Под кнопкой ГУВбудет подразумеваться основная кнопка любого ГУВ, например левая кнопка двухкнопочной мыши. Как правило, графическое устройство ввода используется для управления местоположением курсора, который представлен на экране монитора в виде стрелки или другого значка, являющегося системной интерпретацией указываемого вами места. Поскольку в конкретный момент мы можем направить свое внимание только на один курсор, система не должна отображать более одного курсора для каждого имеющегося графического устройства ввода. В приложении А приведено обоснование тому, почему у мыши должна быть только одна кнопка.
   Одно нажатие и отпускание клавиши или переключателя без каких-либо промежуточных действий мы будем называть нажатием(tap). Этот термин относится только к клавишам на клавиатуре или другим контактным переключателям без фиксации, которые при отпускании автоматически возвращаются в исходное положение и электрическое состояние.
    Щелкнуть(click) означает расположить курсор в определенном месте, а затем нажать и отпустить кнопку ГУВ. Таким образом, выражение «щелкните на слове аллигатор» означает, что вам требуется навести курсор на слово аллигатори затем, не меняя позицию курсора, нажать кнопку ГУВ и отпустить ее. Перетащить(drag) означает нажать кнопку ГУВ в одном местоположении курсора, переместить его в другое место и уже затем отпустить кнопку. Это действие еще иногда называется щелкнуть и перетащить(click and drag). Дважды щелкнуть(double click) означает расположить курсор в определенном месте, а затем два раза быстро нажать кнопку ГУВ без промежуточного движения или какого-либо другого действия. (На практике небольшое движение допустимо – обычно ГУВ слегка смещается в момент нажатия кнопки.) В некоторых интерфейсах применялись тройные щелчки, а также щелчки с еще большим количеством нажатий.
   Существуют различные варианты обозначений для комбинаций клавиш, используемых при управлении большей частью программного обеспечения. Например, нажатие клавиши «Ctrl» и, при ее удерживании, нажатие и удерживание клавиши «Shift» и затем, при нажатом положении обеих этих клавиш, нажатие клавиши с буквой t часто обозначается в руководствах как «Ctrl»-«Shift»-«t» или «Ctrl»+«Shift»+«t». Однако эти обозначения операций с клавишами нельзя отличить от условных обозначений последовательностей действий Control, дефис, Shift, дефис, t или Control, плюс, Shift, плюс, t соответственно.
   Такая двусмысленность может приводить к ошибкам. Например, когда я работал над рукописью этой книги, мне понадобилось посмотреть, какая комбинация клавиш применяется для выполнения необходимой мне команды. В руководстве было указано (в конце предложения)
   Control+.
   Поэтому я нажал «Ctrl» и затем, удерживая эту клавишу, ввел знак «плюс». Из-за двусмысленного обозначения в руководстве я сделал ошибку. На самом деле требовалось при нажатой клавише «Ctrl» нажать клавишу со знаком точки.
   Кроме того, эти обозначения не дают возможности отразить такие действия, как, например, одновременное нажатие и удерживание клавиш «Ctrl» и «Shift» с последующим вводом нескольких алфавитных символов, причем клавиша «Shift» отпускается после ввода первых двух символов, а «Ctrl» остается нажатой. Альтернативный вариант, который я только что использовал, – выражение операций обычным языком, что хотя и понятно, но довольно громоздко.
   Чтобы обозначать операции с клавишами точно и кратко, я использую символ стрелки, указывающей вниз, сразу после названия клавиши, на которую требуется нажать и удерживать в нажатом состоянии, – например, Shift“ означает, что необходимо нажать и удерживать клавишу «Shift». Символ стрелки, указывающей вверх, после названия клавиши показывает, что эту клавишу следует отпустить, – например Shift‘. Нажатие одной клавиши, скажем, клавиши «t», может быть точно обозначено с помощью записи t“t‘. Запись нажатия одной клавиши можно сократить до t“‘ или просто до t, если это не вызывает двусмысленности и не может привести к путанице.
   Между отдельными действиями, которые следуют друг за другом, ставится пробел. Нажатие клавиши пробела обозначается словом
   Пробел
   Это обозначение невозможно перепутать с набором слова пробел (space), потому что последовательность символов этого слова, вводимая с клавиатуры, будет записываться буквами, разделенными пробелами, а именно:
   п р о б е л
   Когда есть риск неверного истолкования или необходимо сделать акцент на каждом отдельном действии, я применяю полную запись:
   п“ п‘ р“ р‘ о“ о‘ б“ б‘ е“ е‘ л“ л‘
   Любые комбинации клавиш могут быть линейно представлены в этой системе записи. Например, нажатие и удерживание клавиши «Shift», затем нажатие клавиши «n», после этого нажатие и удерживание клавиши «Ctrl» при все еще нажатой клавише «Shift», затем нажатие клавиши «k», отпускание клавиши «Shift» при все еще нажатой клавише «Ctrl», затем нажатие клавиши «w» и после этого отпускание клавиши «Ctrl» записывается следующим образом:
   Shift“ n Control“ k Shift‘ w Control‘
   При условии, что порядок отпускания клавиш не имеет значения для работы интерфейса, отпускание любой из нажатых клавиш обозначается стрелкой вверх для каждой отдельной клавиши. Таким образом, набор слова пробел будет записываться так:
   п“‘ р“‘ о“‘ б“‘ е“‘ л“‘
   Приведем еще один полезный пример. Чтобы восстановить исходное состояние ОЗУ на компьютере Macintosh, должна быть выполнена следующая последовательность команд:
   Command“ Control“ Power“ ‘‘‘ Command“ Option“ p“ r“
   Все клавиши требуется удерживать до тех пор, пока не зазвучит сигнал, после чего:
   ‘‘‘‘
   (Выражаясь обычным языком: нажмите и удерживайте клавишу «Command» – отсутствие стрелки вверх означает, что клавишу не следует отпускать сразу же. Затем нажмите и удерживайте клавишу «Ctrl». Здесь также нет стрелки вверх, поэтому следует, удерживая обе эти клавиши одновременно, нажать клавишу «Power». Ни одной стрелки вверх еще не было, так что сейчас вы удерживаете сразу три клавиши. Последующие три стрелки вверх означают, что требуется отпустить все три клавиши в любом порядке или одновременно. Затем, как следует из записи, вам необходимо нажать, не отпуская, клавишу «Command», затем нажать, не отпуская, клавишу «Option», затем нажать, не отпуская, клавишу «p», после чего нажать и удерживать клавишу «r», так что, в конце концов, вы будете удерживать в нажатом положении четыре клавиши одновременно. Это следует делать до звукового сигнала, после чего все четыре клавиши следует отпустить.)
   Если при наборе последовательности имеет значение время, то об этом должно быть сказано в примечании. Например, для набора одной буквы t запись будет следующей:
   t“ t‘
   Однако при использовании большинства клавиатур, если между t“ и t‘ происходит задержка длительностью более 500 мс, на экране приблизительно каждые 100 мс станут появляться еще символы t. Эта функция обычно называется автоповтором. Задержки, в том числе и те, которые запускают автоповтор, часто создают проблемы в работе интерфейсов. Использование задержек в интерфейсах, а также улучшение механизма автоповтора будут обсуждаться далее в разделе 6.4.5.

3.2. Режимы

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

   Режимы (modes) являются важным источником ошибок, путаницы, ненужных ограничений и сложности в интерфейсе. Многие проблемы, создаваемые режимами, хорошо известны. Тем не менее, практика создания систем без режимов почему-то не находит широкого применения в разработке интерфейсов. Прежде чем приступить к обсуждению методов устранения режимов, следует рассмотреть их подробно, тем более что даже среди специалистов по интерфейсам нет общего мнения относительно того, что представляет собой режим (Johnson and Engle-beck, 1989).
   Чтобы понимать режимы, нам следует сначала определить понятие жеста. Жест (gesture) – это последовательность действий человека, которая выполняется автоматически (после старта). Например, для опытного пользователя набор такого простого слова, как это, представляет всего один жест, в то время как для начинающего пользователя, который еще не вполне овладел клавиатурой, набор этого слова по буквам будет состоять из отдельных жестов. Объединение последовательности действий в жест, связанный с определенным психологическим процессом, определяется как