Пользователи не задумываются над тем, как устроена машина, пока она справляется со своими задачами. При этом не имеет значения, какой именно процессор используется и является ли язык программирования объектно-ориентированным, многопоточным или, быть может, называется какими-то другими умными словами. Для пользователей важнее всего удобство и результаты. Но все, что они видят, – это интерфейс. Другими словами, с точки зрения потребителя именно интерфейс является конечным продуктом.
Ваше время бесценно, ваша работа священна
Я приучился часто сохранять проделанную работу, чтобы даже в случае системного сбоя не потерять большую часть своего труда. В конце каждого абзаца или даже после нескольких предложений я при помощи сочетания клавиш вызываю команду сохранения. Эта команда создает копию текста на диске, где он может оставаться относительно защищенным от потери в случае сбоя. Приблизительно каждый час я создаю резервную копию своей работы с помощью энергонезависимого запоминающего устройства, которое может быть физически извлечено из компьютера и таким образом защищено от любых неожиданностей в его работе. Кроме того, каждую неделю я сохраняю резервную копию всей системы на внешнем диске. Это не значит, что я параноик, – я всего лишь считаю, что такой подход практичен. Однако необходимости во всех этих сложных процедурах не должно возникать. Система должна рассматривать все данные, вводимые пользователем, как бесценные. И если перефразировать Первый закон робототехники Азимова: «Робот не может причинить вред человеку или своим бездействием допустить, чтобы человеку был причинен вред», то первый закон проектирования интерфейсов должен звучать примерно так: «Компьютер не может причинить вред данным пользователя или своим бездействием допустить, чтобы данным был причинен вред».
Работая над этой книгой, я по совету своих редакторов стал использовать опцию, позволяющую либо принять, либо отклонить изменения, внесенные в документ. Каждый раз, сделав несколько изменений, я запускал команду сохранения. Когда произошел сбой системы, я не стал беспокоиться, полагаясь на сделанные мной периодические сохранения. Однако когда я попытался найти файлы с самыми последними изменениями, это не удалось, и мне пришлось делать ту же работу заново. Немного поэкспериментировав, я выяснил, что при включенной опции «принять или отклонить» команда сохранения, подаваемая с клавиатуры, перестает действовать. Однако пользователю никакого предупреждения об этом не дается. В результате пропало больше трех часов моего труда, и мне пришлось тратить время на эксперименты и выяснять, что же произошло и как это предотвратить в будущем. Если не считать излишней сложности сегодняшних компьютерных систем, именно такие досадные мелочи говорят о необходимости усовершенствования подходов к разработке интерфейсов.
Наилучшей формулировкой второго закона интерфейса может быть следующее утверждение: «Компьютер не должен тратить впустую ваше время или вынуждать вас выполнять действия сверх необходимых». В разделе 4.3 будет рассматриваться измерение объема работы, необходимого для выполнения той или иной задачи.
1.6. Определение человекоориентированного интерфейса
Можно создать самолет с любыми техническими характеристиками, которые только пожелает Министерство военно-воздушных сил, если при этом не требуется, чтобы он мог летать.
Вилли Мессершмидт (выдающийся немецкий авиаконструктор времен второй мировой войны)
Интерфейс является ориентированным на человека, если он отвечает нуждам человека и учитывает его слабости. Чтобы создать такой интерфейс, необходимо иметь представление о том, как действуют люди и машины. Кроме того, следует развить в себе способность чувствовать те трудности, с которыми сталкиваются люди. И это не всегда просто. Мы настолько привыкли к тому, как работают программы, что соглашаемся принять их методы работы как данность, – даже в тех случаях, когда их интерфейсы неоправданно сложны, запутанны, неэкономны и побуждают людей к ошибкам.
Многие из нас испытывают раздражение, например, от того, что для запуска (иначе говоря, загрузки) компьютера требуется какое-то время. В 1999 году была реклама одного автомобильного радиоприемника со встроенным компьютером, в которой утверждалось, что «в отличие от домашнего компьютера, эта система не заставит вас долго ждать, пока она загрузится». Внимательное изучение шести наиболее серьезных работ в области разработки интерфейсов показывает, что даже в этих книгах, написанных в основном в то время, когда разработке интерфейсов стали придавать важное значение, проблема загрузки не упоминается (Shneiderman, 1987; Norman, 1988; Laurel, 1990; Tognazzini, 1992; Mayhew, 1992; Cooper, 1995). Тем не менее, я уверен, что каждый из названных авторов всецело согласился бы с тем, что сокращение или устранение задержки при запуске компьютера улучшило бы эффективность его использования, тем более что я еще не встречал пользователя, у которого такая задержка не вызывала бы раздражение. Однако никогда не существовало технической необходимости в том, чтобы компьютер после включения начинал работать более чем через несколько секунд. Наши компьютеры долго загружаются только лишь потому, что многие дизайнеры и разработчики не потрудились сделать интерфейс в этом отношении ориентированным на человека. Кроме того, некоторые люди думают, что если компьютеры с медленной загрузкой продаются миллионами, то это якобы свидетельствует об их высокой производительности.
Нельзя сказать, что проблема долгой загрузки машины всегда игнорировалась. Уже вышедший из употребления Apple Newton, Palm Pilot и другие карманные компьютеры могут запускаться мгновенно, а появление на некоторых компьютерах «спящего режима» – состояния, в котором компьютер потребляет меньше энергии, чем в обычном режиме, и из которого он может быть быстро переведен в рабочее состояние, – это шаг в правильном направлении.
Инженерам удавалось с успехом решать и более сложные проблемы. Например, в ранних моделях телевизоров необходимо было ждать около минуты, пока разогревалась катодная трубка кинескопа. В некоторых моделях инженеры добавили специальную схему, которая поддерживала катодную трубку в теплом состоянии, что позволило сократить время достижения рабочей температуры. (Поддержание катодной трубки в разогретом состоянии потребовало бы большого расхода электричества и уменьшило бы срок ее службы.) В другом варианте был разработан кинескоп с катодной трубкой, которая разогревалась в течение нескольких секунд. И в том и в другом случае интересы пользователя были удовлетворены. В начале двадцатого столетия был создан автомобиль на паровой тяге, называвшийся Стенли Стимер (Stanley Steamer). Несмотря на все свои очевидные достоинства, этот механизм не имел успеха из-за одного недостатка: чтобы тронуться с места, от момента зажигания до достижения необходимого давления в котле требовалось подождать 20 минут.
Принцип разработки, согласно которому программные продукты не должны вынуждать пользователя ждать без необходимости, можно считать очевидным и ориентированным на человека. Таким же является и стремление не подгонять пользователя. В общем виде этот принцип можно было бы сформулировать следующим образом: «Ритм взаимодействия должен устанавливаться самим пользователем».
Не требуется обладать большими техническими знаниями, чтобы понять, что большая пропускная способность коммуникационных линий может ускорить передачу веб-страниц. Однако другие взаимосвязи иногда бывают не столь очевидны. Поэтому для разработчиков интерфейсов «человек-машина» важно знать внутренние механизмы технологии. В противном случае у них не будет возможности оценивать достоверность утверждений, высказанных, например, программистами или специалистами по аппаратной разработке относительно осуществимости тех или иных элементов интерфейса.
2. Когнетика и локус внимания
Он плакал и раздражался, но все было тщетно.
Доминик Манчини, говоря не о «зависшем» компьютере, а об Эдуарде V, короле Англии. «Occupatione Regni Anglie per Riccardum Tercium (1483)». Цитата приводится в книге Алисон Уир «Принцы в башне» (1992)
При всей сложности компьютеров и других продуктов современной технологии «машинная» часть интерфейса «человек-машина» легче поддается пониманию, чем человеческая – намного более сложная и изменчивая. Тем не менее, многие (возможно, даже очень многие) факторы человеческой производительности не зависят от возраста, пола, культурного происхождения или уровня компетентности пользователя. Эти свойства человеческой производительности и способности к обучению имеют непосредственное отношение к основам разработки любого интерфейса. В частности, тот факт, что мы имеем один локус[1] внимания, оказывает влияние на многие аспекты разработки интерфейсов «человек-машина».