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

 
 

Введение

Важность основ

Один человек, один компьютер. Слоган компании «Эпл»

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

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

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

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

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

1. Предпосылки

Нет ничего более невозможного, чем написать книгу, которая бы получила одобрение каждого читателя. Мигель де Сервантес

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

Раскин не согласен с мнением, что компьютером сложно пользоваться потому, что с его помощью мы решаем сложные задачи. Независимо от того, насколько сложна задача, выполняемая тем или иным продуктом, составные части этой задачи все равно должны оставаться простыми. Эта глава заканчивается определением человекоориентированного интерфейса.

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

Интерфейс — способ, которым вы выполняете задачу с помощью продукта, а именно совершаемые вами действия и то, что получаете в ответ.

1.2. Простое должно оставаться простым

Технология — странная вещь. Одной рукой она дает вам великие дары, а другой — наносит удар в спину. С. П. Сноу (цитата из Jarman, 1992)

Простые задачи должны оставаться простыми независимо от уровня сложности всей системы.

1.3. Ориентация на человека и на пользователя

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

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

Создание интерфейса — тяжелая работа. Есть инструменты вроде Visual C++, которые облегчают процесс. Но они ограничивают возможности.

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

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

1.5. Разработка интерфейса как часть общего цикла разработки

Интерфейс надо разрабатывать на ранней стадии проекта. Определив задачу, для которой продукт предназначен, сначала спроектируйте интерфейс, после чего приступайте к его реализации.

На первом этапе разработки следует определить, что именно должен сделать пользователь для получения того или иного результата и как система должна отвечать на каждое его действие.

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

Ваше время бесценно, ваша работа священна

Система должна рассматривать все данные, вводимые пользователем, как бесценные.

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

Если есть специальная задумка, о ней надо предупредить.

Второй закон интерфейса: «Компьютер не должен тратить впустую ваше время или вынуждать вас выполнять действия сверх необходимых».

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

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

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

Например, многих бесит, что для запуска компьютера требуется какое-то время.

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

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

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

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

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

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

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

Мы должны овладеть эргономикой сознания, если мы хотим создавать интерфейсы, которые могли бы хорошо работать.

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

Изучение прикладной сферы наших ментальных способностей называется когнитивным проектированием, или когнетикой. Некоторые когнитивные ограничения очевидны: например, нельзя ожидать от обычного пользователя способности перемножать в уме 30-значные числа за 5 секунд, поэтому нет смысла разрабатывать интерфейс, который требовал бы от пользователя такой способности.

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

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

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

Дадим краткое определение: бессознательными называются те ментальные процессы, которые вы не осознаете в тот момент, когда они происходят. Когнетика — это практическая дисциплина.

Сознание и модели человеческого разума

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

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

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

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

Когнитивное сознательное работает последовательно и может оперировать только одним вопросом или контролировать только одно действие в течение некоторого промежутка времени. Человек может осознавать одновременно от 4 до 8 отдельных мыслей или объектов. Как правило, каждые несколько секунд сознательная память очищается.

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

Таблица «Свойства когнитивного сознательного и когнитивного бессознательного»:

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

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

Вы слышите и видите намного больше того, что становится локусом вашего внимания.

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

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

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

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

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

Любая привычка означает отказ от внимания к деталям.

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

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

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

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

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

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

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

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

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

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

В ловушке автоматизма

В интерфейсе надо предусматривать неизбежность формирования привычек.

2.3.3. Сингулярность локуса внимания

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

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

Поглощенное внимание привело к гибели 101 человека

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

В этот момент зазвучала сирена, предупреждающая о малой высоте. «Несмотря на почти нулевые показания альтиметра, желтый сигнал, предупреждающий об отклонении от назначенной высоты, почти нулевые показания радиоальтиметра и его звучащую сирену, каждый член экипажа был настолько уверен, что самолет находится на высоте 2000 футов, что никто из них не предпринял никаких действий, и уже спустя 8 секунд после того, как командир экипажа посмотрел на показания альтиметра, самолет упал в болота Флориды». (Цитата из Garrison, 1995.)

***

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

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

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

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

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

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

В одном теле одна личность.

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

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

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

Если нам известно, где в данный момент внимание пользователя зафиксировано, правильно произвести изменения во всех остальных частях системы, зная, что они не отвлекут. Этот эффект использовали при разработке компьютера Canon Cat. Когда пользователь прекращал работу, компьютер сохранял на первой дорожке диска побитовое изображение экрана в том виде, который был на момент остановки работы. Когда пользователь возвращался к работе, на экран за долю секунды помещалась та самая картинка. Человеку необходимо около 10 секунд для того, чтобы переключиться с одного контекста на другой или мысленно подготовиться к предстоящей задаче, в то время как компьютеру Canon Cat требовалось только 7 секунд, чтобы считать с диска остальную рабочую часть информации.

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

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

Обычно, прервав некоторую работу, вы затем к ней возвращаетесь.

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

Хороший интерфейс — который всегда возвращает вас туда, где вы остановились в последний раз. Если вы захотели бы вернуться к предыдущей задаче, вы вообще не совершали действий.

Компьютер и телевизор должны запоминать то, что в последний раз делал пользователь.

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

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

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

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

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

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

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

Щелкнуть (click) означает расположить курсор в определенном месте, а затем нажать и отпустить кнопку ГУВ. Таким образом, выражение «щелкните на слове аллигатор» означает, что вам требуется навести курсор на слово аллигатор и затем, не меняя позицию курсора, нажать кнопку ГУВ и отпустить ее. Перетащить (drag) означает нажать кнопку ГУВ в одном местоположении курсора, переместить его в другое место и уже затем отпустить кнопку. Это действие еще иногда называется щелкнуть и перетащить (click and drag). Дважды щелкнуть (double click) означает расположить курсор в определенном месте, а затем два раза быстро нажать кнопку ГУВ без промежуточного движения или какого-либо другого действия. (На практике небольшое движение допустимо — обычно ГУВ слегка смещается в момент нажатия кнопки.) В некоторых интерфейсах применялись тройные щелчки, а также щелчки с еще большим количеством нажатий.

3.2. Режимы

Режимы (modes) — важный источник ошибок, путаницы, ненужных ограничений и сложности в интерфейсе.

Чтобы понять, что такое «режим», нужно понятие жеста. Жест (gesture) — это последовательность действий человека, которая выполняется автоматически (после старта). Например, для опытного пользователя набор такого простого слова, как это, представляет всего один жест, в то время как для начинающего пользователя, который еще не вполне овладел клавиатурой, набор этого слова по буквам будет состоять из отдельных жестов. Объединение последовательности действий в жест, связанный с определенным психологическим процессом, определяется как формирование модуля (chunking), т. е. соединение отдельных элементов когнитивного процесса в единый ментальный модуль, что позволяет воспринимать множество элементов как целое.

Режимы проявляются в том, как реагирует интерфейс на тот или иной жест. Режим — состояние интерфейса, при котором интерпретация данного конкретного жеста остается неизменной.

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

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

  1. Не использовать режимы.
  2. Обеспечить четкое различие между режимами.
  3. Не использовать одинаковые команды в разных режимах, чтобы команда, примененная не в том режиме, не могла привести к неприятностям.

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

3.2.1. Определение режимов

Более полное определение режима должно включать в себя то, как пользователь рассматривает интерфейс: интерфейс «человек-машина» является модальным по отношению к данному жесту, если, во-первых, текущее состояние интерфейса не находится в локусе внимания пользователя и, во-вторых, если в ответ на некоторый жест интерфейс может выполнить одно из нескольких возможных действий в зависимости от текущего состояния системы. Степень модальности Q того или иного интерфейса может быть определена через классификацию каждого жеста, допустимого в интерфейсе, как модального или немодального. Затем, с учетом вероятности применения данного немодального жеста N_l выраженной как р(N_i) и вычисленной для данного пользователя или в среднем для группы пользователей, получаем Q=\sum_i p(N_i). Диапазон значений Q варьируется от 0 (полностью модальный) до 1 (полностью немодальный).

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

Режимы также ограничивают диапазон действий пользователя. Если жест g вызывает действие a в режиме A, а в режиме B он вызывает действие b, то для того чтобы выполнить действие a, необходимо сначала выйти из режима B (если вы в нем находились) и переустановить интерфейс в режим A. И только после этого вы сможете использовать жест g для выполнения действия a. Разделение интерфейса на ограниченные области является неизбежным следствием наличия режимов. Набор состояний, в которых жест g имеет конкретную интерпретацию, можно назвать диапазоном (range) жеста g.Полностью человекоориентированный интерфейс должен состоять только из одного диапазона.Режимы также лишают пользователя возможности взаимодействовать с системой. Это особенно заметно в том случае, когда вы вынуждены прервать свою работу, чтобы ответить на возникшее окно сообщения. Надо сделать так, чтобы пользователь не прерывал работу. Ведь для принятия решения пользователю требуется просмотреть какой-то файл или выполнить какие-то вычисления. Другими словами, запросы и подсказки должны даваться не модально, а так, чтобы пользователь мог в максимальной степени сохранять контроль над системой.

Вариант диалогового окна с использованием группы переключателей:

3.2.2. Режимы, пользовательские настройки и временные режимы

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

Кнопки, которые меняются за одну ночь

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

Чем меньше кнопок, тем лучше?

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

3.2.3. Режимы и квазирежимы

Ряд экспериментов, проведенных в университете города Торонто, подтвердил, что удерживание кнопки в нажатом состоянии, нажатие на ножную педаль или любая другая форма физического удерживания интерфейса в определенном состоянии не приводит к возникновению модальных ошибок. Другие исследования показали, что в основе этого феномена лежат нейрофизиологические причины. Большая часть нашей нервной системы функционирует таким образом, что постоянный стимул порождает сигналы, которые со временем снижают свою способность привлекать наше внимание. Это снижение продолжается до тех пор, пока наша когнитивная система совсем не перестает получать никакие сигналы. Однако сигналы, которые сообщают нам о том, производят ли в данный момент наши мышцы усилие, не снижают уровня своего воздействия.Для обозначения режимов, которые пользователь удерживает кинестетически, автор использует термин квазирежим и его прилагательное квазимодальный.Для сохранения эффективности число квазирежимов должно быть от 4 до 7.На компьютере Canon Cat есть клавиша «Use Front». В Ворде стиль абзаца назначался в квазирежиме (нажимаете и удерживаете клавишу «Use Front», пока жмете на кнопку ¶Style), и поэтому компьютеру было ясно, сколько раз нажали на клавишу. В результате пользователь выучил, что одно нажатие выравнивало выделенный текст по левой стороне, два нажатия — по правой стороне, и т. д. Если бы цикл всегда начинался с той опции, которая использовалась последний раз, как часто делается в интерфейсах, применение команды назначения стиля абзаца не могло бы стать привычным, и вам всегда приходилось бы смотреть на монитор, чтобы увидеть результат команды. Команды остаются в одном и том же порядке, что делает их использование автоматичным.Элементы интерфейса называют привычными, если «слепой» пользователь их легко использует. Интерфейсы, построенные на основе принципов, изложенных в книге, могут использовать даже слепые пользователи, — а по отношению к тому, что находится вне нашего локуса внимания, мы все — в самом прямом смысле слепые.В основном существует только два типа сигналов, которые вы вводите в компьютер или другое устройство для обработки информации: те, которые служат для создания содержания, и те, которые используются для управления системой. В этом отношении предлагается следующий практический подход: квазирежимы должны использоваться для управленческих функций, тогда как для создания содержания должны применяться операции без задействования квазирежимов. Именно этот подход можно считать наиболее верным, поскольку управлять системой, удерживая кнопку для включения квазирежима, труднее. Однако важнее, чтобы пользователь мог больше времени уделить созданию содержания и работе с ним, а не применению различных команд для управления системой.

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

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

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

3.4. Видимость и состоятельность

Элемент интерфейса можно считать видимым, если он либо в данный момент доступен для органов восприятия человека (обычно это глаза, но здесь также рассматриваются и другие сенсорные модальности), либо он был настолько недавно воспринят, что еще не успел выйти из кратковременной памяти пользователя. Если элемент интерфейса не видим, то мы говорим, что он невидимый. Для нормальной работы интерфейса «должны быть видимы только необходимые вещи — те, что идентифицируют части работающих систем, и те, что отображают способ, которым пользователь может взаимодействовать с устройством. Видимость отображает связь между предпринимаемыми действиями и их реальной отдачей» (Norman, 1988, с. 8).

Задача разработчика интерфейса — сделать каждый элемент своего продукта видимым. Если в интерфейсе соблюдается принцип видимости, то каждая функция и способ ее использования для большинства людей из той культуры, на которую этот интерфейс ориентирован, становятся очевидными только лишь по одному виду. Элемент управления, который очевиден только по виду, — состоятельный (affordance). То, какую состоятельность будет иметь элемент интерфейса, зависит от опыта и знаний пользователя, а также от контекста, в котором он этот элемент встречает. Каждый видимый элемент должен быть состоятельным.Оптимизация качества восприятия интерфейса — важный аспект с точки зрения эргономики, и основное значение здесь имеют когнитивные свойства интерфейса.

Система BART и отсутствие состоятельности

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

3.5. Монотонность

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

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

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

Для описания интерфейса, имеющего только один способ выполнения той или иной задачи, я использую термин монотонный, который все же не совсем удачен. Монотонность — это вторая сторона отсутствия модальности. В интерфейсе, который не имеет режимов, данный жест пользователя может иметь один и только один результат: жест g всегда приводит к действию a.

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

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

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

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

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

Мнение психолога Насса отражает распространенный взгляд, суть которого в том, что все пользователи делятся на две группы: новички и эксперты. Эта дихотомия неверна.

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

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

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

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

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

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

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

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

Одним из лучших подходов к количественному анализу моделей интерфейсов является классическая модель GOMS — «правила для целей, объектов, методов и выделения, которая впервые привлекла к себе внимание в 80-х годах. Моделирование GOMS позволяет предсказать, сколько времени потребуется опытному пользователю на выполнение конкретной операции при использовании данной модели интерфейса. После обсуждения модели GOMS мы рассмотрим количественные методы оценки производительности интерфейсов, скорости движения курсора и времени, необходимого для принятия решения.

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

Автор хочет обсудить только один простейший, но довольно ценный аспект метода GOMS — модель, основанная на оценке скорости печати.

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

4.2.1. Временные интервалы в интерфейсе

Разработчики модели GOMS во время ее создания заметили, что время, требующееся для выполнения какой-то задачи системой «пользователь — компьютер», является суммой всех временных интервалов, которые потребовались системе на выполнение последовательности элементарных жестов, составляющих данную задачу.

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

Двойная «дискликсия»

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

Первая проблема «дискликсии»: пользователь промахивается второй раз. Вторая проблема: если пользователь щелкает слишком медленно, машина воспринимает это как два отдельных клика, а не как один двойной. Третья проблема: пользователь смещает мышь в сторону при втором клике и вызывает другие команды.

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

***

Длительность ответа, поступающего от компьютера, R, может оказывать неожиданный эффект на действия пользователя. Если при использовании какого-то управляющего элемента на экране монитора в течение приблизительно 250 мс ничего не возникает, пользователь, скорее всего, может почувствовать беспокойство, решит сделать еще одну попытку или подумает, что система неисправна.

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

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

=
4.2.2. Расчеты по модели GOMS

Правило 0. Начальная расстановка операторов M
Операторы M следует устанавливать перед всеми операторами K (нажатие клавиши), а также перед всеми операторами P (указание с помощью ГУВ), предназначенными для выбора команд; но перед операторами P, предназначенными для указания на аргументы этих команд, ставить оператор M не следует.

Правило 1. Удаление ожидаемых операторов M
Если оператор, следующий за оператором M, является полностью ожидаемым с точки зрения оператора, предшествующего M, то этот оператор M может быть удален. Например, если вы перемещаете ГУВ с намерением нажать его кнопку по достижении цели движения, то в соответствии с этим правилом следует удалить оператор M, устанавливаемый по правилу 0. В этом случае последовательность P M K превращается в P K.

Правило 2. Удаление операторов M внутри когнитивных единиц
Если строка вида M K M K M K... принадлежит когнитивной единице, то следует удалить все операторы M, кроме первого. Когнитивной единицей является непрерывная последовательность вводимых символов, которые могут образовывать название команды или аргумент. Например Y, перемещать, Елена Троянская или 4564.23 являются примерами когнитивных единиц.

Правило 3. Удаление операторов M перед последовательными разделителями
Если оператор K означает лишний разделитель, стоящий в конце когнитивной единицы (например, разделитель команды, следующий сразу за разделителем аргумента этой команды), то следует удалить оператор M, стоящий перед ним.

Правило 4. Удаление операторов M, которые являются прерывателями команд
Если оператор K является разделителем, стоящим после постоянной строки (например, название команды или любая последовательность символов, которая каждый раз вводится в неизменном виде), то следует удалить оператор M, стоящий перед ним. (Добавление разделителя станет привычным действием, и поэтому разделитель станет частью строки и не будет требовать специального оператора M.) Но если оператор K является разделителем для строки аргументов или любой другой изменяемой строки, то оператор M следует сохранить перед ним.

Правило 5. Удаление перекрывающих операторов M
Любую часть оператора M, которая перекрывает оператор R, означающий задержку, связанную с ожиданием ответа компьютера, учитывать не следует.

Кроме того, отметим, что в этих правилах под строкой будет пониматься некоторая последовательность символов. Разделителем будет считаться символ, которым обозначено начало или конец значимого фрагмента текста, такого как, например, слово естественного языка или телефонный номер. Например, пробелы являются разделителями для большинства слов. Точка является наиболее распространенным разделителем, который используется в конце предложений. Скобки используются для ограничения пояснений и замечаний и т. д. Операторами являются K, P и H. Если для выполнения команды требуется дополнительная информация (как, например, в случае когда для установки будильника пользователю требуется указать время его включения), эта информация называется аргументом данной команды.

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

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

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

Информационно-теоретическая производительность определяется так же, как понятие производительности определяется в термодинамике,— отношением мощности на выходе к мощности на входе процесса.

Информационная производительность интерфейса E определяется как отношение минимального количества информации, необходимого для выполнения задачи, к количеству информации, которое должен ввести пользователь. Так же, как и в отношении физической производительности, параметр E может изменяться в пределах от 0 до 1.

Диалоговое окно с информационной теоретической эффективностью 0:

Как правило, чем более производительнее интерфейс, тем он более продуктивный и человекоориентированный.

4.3.1. Производительность интерфейса для Хола

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

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

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

Интерфейс, в котором не используется разделитель:

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

4.4. Закон Фитса и закон Хика

Основы знаний надлежит искать в математике. Роджер Бэкон «Opus Majus», 13 в.

Различные количественные законы, имеющие отношение к разработке интерфейсов, имеют хорошее когнитивное обоснование, и их правильность была неоднократно проверена. Эти законы часто дают нам дополнительные данные, на основе которых можно принимать те или иные решения, связанные с разработкой интерфейсов. Закон Фитса (Fitts’ Law) позволяет определить количественно тот факт, что чем дальше находится объект от текущей позиции курсора или чем меньше размеры этого объекта, тем больше времени потребуется пользователю для перемещения к нему курсора. Закон Хика (Hick’s Law) позволяет количественно определить наблюдение, заключающееся в том, что чем больше количество вариантов заданного типа вы предоставляете, тем больше времени требуется на выбор.

4.4.1. Закон Фитса

В одномерном случае, при котором размер объекта вдоль линии перемещения курсора обозначается как S, а дистанция от начальной позиции курсора до объекта — как D (на рисунке), закон Фитса формулируется следующим образом:

Время (мс) = a + b \log_2(D/S+1)

(Константы a и b устанавливаются опытным путем по параметрам производительности человека.)

Расстояния, которые используются в законе Фитса для определения времени, необходимого для перемещения курсора к цели:

Для приближенных вычислений Раскин использует следующие значения констант в уравнении закона Фитса: a = 50, b = 150.

При проведении обычного эксперимента вам придется добавить еще 0,25 с, чтобы учесть время человеческой реакции в начале движения курсора.

4.4.2. Закон Хика

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

Время (мс) = a + b \log_2(n+1)

Если вероятность 1-го варианта равна p(i), то вместо логарифмического коэффициента используется:

\sum_i p(i) \log_2(1/p(i)+1)

Значения a и b, как в законе Фитса.

Наше рассмотрение законов Фитса и Хика нельзя считать полным. Но этого достаточно, чтобы отметить их ценность с точки зрения разработки интерфейсов. Они могут быть полезными даже, когда эмпирические значения коэффициентов a и b неизвестны.

5. Унификация

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

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

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

5.1. Унификация и элементарные действия

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

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

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

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

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

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

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

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

5.2.1. Подсветка, указание и выделение

Подсветка (highlighting) означает, что с помощью каких-либо средств отображенному на экране объекту придается заметное отличие. Когда пользователь наводит курсор на какие-то объекты, они должны быть подсвечены.

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

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

Выделение (selecting) — это процесс, с помощью которого пользователь указывает, что один или несколько объектов имеют особый статус, который может быть воспринят системой. Как результат процесса получается выборка (selection).

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

Три недостатка выборок:

  1. Команда для создания составных выборок невидимая.
  2. Когда создаешь большую выборку, иногда случайно отпускаешь «Shift» и щелкаешь по следующему файлу, — вся выборка отменяется.
  3. Механизм — «переключатель»: один и тот же жест отменяет и устанавливает выделение.

Решения:

  1. Сделать экранную подсказку.
  2. Установить специальную команду, с помощью которой текущая выборка определяется как объединение старого и текущего выделения. Благодаря такой команде пользователь сосредоточился на создании выборки, не заботясь о том, что было выбрано до этого.
  3. Сделать разные команды для установки и удаления. Операторы Отменить и Повторить являются основополагающими, и их функция настолько важна, что в будущих системах для них должна быть предусмотрена специальная клавиша.

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

5.2.2. Команды

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

  • Этот механизм не должен быть модальным.
  • Он должен включать любое число команд (в частности, он не должен ограничиваться количеством клавиш на клавиатуре).
  • Пользователь должен иметь возможность вызывать команду непосредственно с клавиатуры.
  • Пользователь должен иметь возможность вызывать команду с помощью графического устройства ввода.
  • Использование механизма не должно требовать изобилия специальных клавиш.
  • Механизм не должен порождать большого количества квазирежимов

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Важно, чтобы все символы разделителей имели специальную клавишу, иначе они не будут работать как все другие набираемые символы. Если вы хотите иерархическую файловую структуру, она будет частью вашего содержания, а не интерфейса. Раскин разрабатывал компьютер Canon Cat, на клавиатуре придумал клавишу «Leap». Ее смысл: команда Переместить вместо команды Копировать. Этот метод убивает функцию перетаскивания.

5.4. Поиск строк и механизмы поиска

Изучим использование интерфейсов для поиска.

Строкой (string) называется последовательность символов. Обычные русские слова и предложения — примеры строк. При поиске по строке (string search) компьютер просматривает длинную последовательность, называемую текстом, что найти короткую последовательность, которую указал пользователь и назвал шаблоном (pattern).

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

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

Наиболее распространенный — поиск с разделителями (delimited search). Вводишь слова — поисковик рассматривает как шаблон для поиска. Проблема метода: допустил опечатку в слове — сиди, жди, пока закончится ошибочный поиск. Менее распространенный метод — пошаговый поиск (incremental search). Вводишь первую букву — поисковик ищет, вводишь вторую — тоже. Буквы можно удалять. Главная фишка — пошаговый поиск требует меньше времени.

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

5.4.1. Разделители в шаблоне поиска

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

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

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

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

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

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

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

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

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

5.6. Позиция курсора и клавиша «LEAP»

Объект функции клавиши «LEAP» — отдельный символ. урсор появляется между буквами (Са|ша). Автор говорит, что курсор должен быть буквой (Саша).

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

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

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

Главная проблема — жесты (например, с помощью которых вызываются команды) из одного приложения не могут быть доступными в другом приложении.

Вторая — «дилемма вытеснения» (назвал специалист по вычислительной технике Дан Свайнхарт). Ситуация такая: вы хотите выполнить некоторую задачу, которую могли бы выполнить, но вы находитесь в приложении B, в котором нет аналогичной команды.

Есть три подхода к решению дилеммы вытеснения.

Наиболее распространенный метод: каждое приложение снабдить всеми средствами, которые пользователю могут понадобиться.

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

Оригинальный метод устранения режимов, которые присущи приложениям, — использование оконной парадигмы. Алан Кэй из «Xerox PARC» предложил перекрывающиеся окна. Эти окна, по сути, не устраняют модальность, но делают видимыми и доступными одновременно множество приложений.

Калькулятор или компьютер?

Команды, которые должны быть доступны для пользователя в любой момент:

  • проверить орфографию в текущей выборке;
  • использовать текущую выборку как арифметическое выражение и вычислить его;
  • передать текущую выборку по электронной почте;
  • передать текущую выборку по факсу;
  • перейти по данному URL;
  • выполнить текущую выборку как программу, написанную на языке Java или любом другом.

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

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

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

Автор предлагает другую систему. Например, вы в Пэинте обрабатываете фотку инсрукции к таблеткам, нажимаете сочетание клавиш, которое проверяет орфографию, и Пэинт указывает на ошибку в слове «инсрукции» прямо на рисунке.

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

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

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

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

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

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

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

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

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

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

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

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

Эти эксперименты показывают, что скорость изучения и легкость использования какого-то интерфейса не связаны с воображаемыми свойствами интуитивности и естественности. Научиться пользоваться мышью очень легко. Все, что мне нужно было сделать в экспериментах с участием людей, не знакомых с этим устройством, — это положить мышь на стол, подвигать ее и щелкнуть по чему-нибудь с ее помощью. Через 5-10 с каждый мог понять, как пользоваться мышью. Это действительно быстро и легко, но это не значит, что использование мыши является интуитивным или естественным.

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

6.2. Улучшенная навигация: ZoomWorld

Противоположностью лабиринтов является ситуация, в которой вы можете видеть цель и путь к ней, который позволяет сохранить чувство ориентации во время перемещения и при необходимости вернуться назад. Изящным решением является принцип масштабируемого интерфейса ПМИ (zooming interface paradigm, ZIP).

Пример масштабируемого интерфейса, который будет описан, называется ZoomWorld (дословно — масштабируемый мир). Его идея заключается в том, что пользователь имеет доступ к безграничной плоскости информации с неограниченной степенью разрешения. Эта плоскость является масштабируемой средой ZoomWorld. ZoomWorld в принципе аналогичен тому, как используются стены в комнатах планирования.

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

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

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

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

6.3. Пиктограммы

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

Если вы наводите курсор на какую-то пиктограмму, появляется небольшое окно с текстом, в котором дается ее описание. Возникает очевидный вопрос, который я неоднократно слышал от пользователей, впервые встретивших такие текстовые окна: «Почему вместо пиктограмм сразу не использовать текст?» В самом деле почему бы и нет? Ведь, по сути дела, вместо того чтобы объяснять, пиктограммы зачастую сами требуют для себя объяснений.

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

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

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

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

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

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

Хортон (Horton, 1994) отмечает, что «выделение цветом может быть бесполезным, если используется слишком много цветов или если имеется слишком много пиктограмм одного цвета». Хортон также уточняет, что если пиктограммы расположены близко друг к другу, не следует использовать более семи цветов; если же пиктограммы разбросаны по всему экрану, то число цветов не должно превышать четырех.

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

6.4. Способы и средства помощи в человекоориентированных интерфейсах

Будьте водителем, а не механиком. Из рекламы автомобилей

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

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

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

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

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

6.4.1. Вырезать и вставить

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

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

Любой человекоориентированный метод удаления:

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

6.4.2. Сообщения пользователю

Всегда поступайте правильно. У некоторых людей это будет вызывать одобрение, у остальных — удивление. Марк Твен

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

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

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

Сообщения: учебный пример

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

6.4.3. Упрощение входа в систему

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

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

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

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

Здесь возникает следующий вопрос: как обеспечить уникальность символьных паролей? Как избежать случаев, когда два или более пользователей выберут одинаковый пароль? Можно предоставить системе самой назначать пароли. Однако это приведет к тому, что генерируемые системой пароли будут плохо запоминаемыми (как, например, 2534-788834-003PR7 или ty6*«fjd%d). Существует много способов создания запоминающихся паролей, и вы всегда можете дать пользователю возможность выбора из пяти или шести таких способов. Например, вы можете предложить компьютеру случайно выбрать два прилагательных и одно существительное из большого словаря и предоставить вам такой список:

  • эксклюзивный уродливый тюлень;
  • вкусный человекоподобный оракул;
  • старая свободная папайя;
  • цветущий маленький лабиринт;
  • скверная репообразная история,-

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

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

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

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

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

Джон Бумгарнер (John Bumgarner), работавший в компании Information Appliance, предложил хорошее решение проблемы автоповтора. Он заметил, что в большинстве фонетических языков одна буква почти никогда не встречается три раза подряд. Он также заметил, что автоповтор редко используется, если букву требуется повторить менее пяти раз (в этом случае пользователь просто нажимает на клавишу необходимое число раз).

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

Метод автоповтора Бумгарнера достаточно прост в использовании и, как показали тестирования, такой автоповтор никогда не запускается случайно (даже если ваша кошка сядет на клавиатуру). Отрицательной стороной, которая свойственна также и стандартному методу автоповтора, является то, что автоповтор работает как невидимая функция, которая нигде в системе не обозначена. Хорошо разработанные компьютеры и информационные устройства снабжаются аккордными клавиатурами (chord keyboards), чтобы в программном обеспечении можно было предусматривать распознавание одновременного нажатия нескольких клавиш.

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

Если же наложение выполнять с помощью квазирежима, ввод знаков акцента и других диакритических символов упрощается и делается более последовательным: e↓’↓↑e↑ Если используются n-клавишный циклический буфер и описанные выше методы наложения, то для обратной связи во время набора интерфейс может временно отображать пару налагаемых друг на друга символов в виде смежных символов. Смысл этого заключается в том, что интерфейс не может отличить одновременное нажатие клавиш при быстром наборе от одновременного нажатия с целью наложения символов друг на друга до тех пор, пока клавиши. не отпущены, после чего слияние накладываемых символов происходит автоматически.

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

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

В этой главе — принципы, которые иллюстрируют и дополняют книгу.

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

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

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

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

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

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

7. Проблемы за пределами пользовательского интерфейса

Утверждение, что следует развивать привычку думать о том, что мы делаем, часто повторяется в учебниках и в речах известных людей и является абсолютно ошибочной избитой фразой. Верно совершенно обратное. Развитие цивилизации связано с увеличением числа важных операций, которые мы можем выполнять не задумываясь. Альфред Норф Уайтхед

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

7.1. Более человекоориентированные среды программирования

7.1.1. Системное окружение и среда разработки

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

7.1.2. Важность ведения документации при создании программ

Во многих источниках сообщается, что для программистов важно подробно документировать машинный код, который они пишут. Для этого обычно приводятся две причины: во-первых, чтобы помочь понять программу при ее чтении (Knuth, 1992, с. 99), и, во- вторых, чтобы упростить адаптацию программы к новым условиям (Weinberg, 1971, с. 164).

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

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

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

7.2. Режимы и кабели

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

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

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

Гермафродитный четырехпроводный соединитель, четыре провода обозначены как а, b, с и d:

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

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

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

  • большей продуктивности работы пользователя;
  • большему удобству для пользователя;
  • большей ценности в глазах покупателя;
  • уменьшению расходов на поддержку покупателей;
  • ускорению и упрощению процесса внедрения;
  • преимуществу перед конкурентами на рынке;
  • лояльности к данной марке;
  • упрощению инструкций и онлайновой помощи;
  • более безопасным продуктам.

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

Мы могли бы установить, что интерфейс текстового процессора не может быть принят, если, скажем, его общая информационно-теоретическая эффективность меньше 0,7 или если общая символьная производительность является меньше 0,8, а отдельные элементы имеют эффективность меньше 0,5.

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

Не следует путать простой внешний вид экрана с простотой использования интерфейса.

Навигация против свободного пространства

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

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

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

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

***

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

Заключение

Он почувствовал жалость к псу, которому по окончании долго действовавшего «Распоряжения о мордах» сняли намордник, и он теперь плохо понимает, что же ему делать. К. Г. Грей (из справочника Джейн «Все самолеты мира», 1919)

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

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

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

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

Плюсануть
Поделиться
Отправить
Класснуть
Запинить