<= Previous | Index | Next => |
Утверждение, что следует развивать привычку думать о том, что мы делаем, часто повторяется в учебниках и в речах известных людей и является абсолютно ошибочной избитой фразой. Верно совершенно обратное. Развитие цивилизации связано с увеличением числа важных операций, которые мы можем выполнять не задумываясь.
Альфред Норф Уайтхед
В этой главе будет представлено попурри из случаев применения нестандартного мышления (или не-мышления), которые могут быть полезными для разработчиков в разных областях технологии. В разделе 7.1 будет затронута проблема, связанная с тем, что среды программирования имеют, наверное, самые худшие интерфейсы в компьютерной индустрии. Мы рассмотрим два аспекта, в которых могут быть сделаны улучшения. Один из них заключается в том, что сложность системного окружения и сред программирования достигла таких высоких уровней, что это отбивает у начинающего программиста стремление к экспериментированию и изучению среды в процессе работы. Второй аспект связан с тем, что хотя всем известно, что документирование является полезным, оно по большей части не выполняется. Небольшое изменение в языках программирования могло бы позволить упростить весь процесс.
В разделе 7.2 рассматривается проблема изобилия кабелей (или шнуров), которые растут из наших компьютеров подобно змеям из головы медузы Горгоны. Зачастую оказывается трудно подобрать кабель требуемого типа, с необходимым переходником, вилкой или разъемом. Эту проблему можно было бы решить, если бы кабели не имели разные концевые соединения типа «папа» и «мама», а каждый кабель, предназначенный для определенной функции, соединялся бы с любым другим кабелем или разъемом в компьютере, что вполне осуществимо.
В разделе 7.3 рассматриваются вопросы этики. При создании интерфейсов разработчик находится в близком и продолжительном контакте с разумом и телом пользователя. Это влечет за собой определенную ответственность. В учебных программах и тренингах для специалистов в области разработки интерфейсов уже много было сказано о том, что должно быть предусмотрено для защиты интересов пользователей. Но мало кто говорит о том, какие охранные меры и какая социальная защита требуются для того, чтобы дать возможность компетентному разработчику делать свою работу хорошо.
Исследования в области когнетики для сред программирования нашли еще меньшее применение, чем для пользовательских интерфейсов. Нечего и говорить, что современные системы становятся все более сложными и что инструменты программирования должны соответствовать этой сложности. Простые вещи стали излишне сложными, и мы не смогли пока создать достаточно хорошие инструментальные программные средства для облегчения этих сложностей работы в современных компьютерных средах.
Я начну с простого примера. В давно исчезнувшем компьютере Apple II для того, чтобы написать программу сложения двух чисел, требуется включить компьютер (время загрузки не заметно!) и нажать <Control>+<b>, после чего вы переходите в BASIC. Если вы теперь наберете PRINT 3+4 и нажмете <Return>, то сразу же и без трудностей получите 7. С момента запуска BASIC до получения результата прошло 5 с. Как хорошо известно, в компьютерной промышленности простота использования достигается с помощью довольно больших ресурсов памяти и скорости. Поэтому мы понимаем, что компьютер Apple II способен выполнять вычисления с такой быстротой и простотой именно потому, что он обладает мощнейшими ресурсами: имея 2-мегагерцовый 8-битный процессор, 48 Кбайт памяти (и это все, что можно вместить!) и 400 килобайтовый диск, машина работает как зверь. В 1999 году на выполнение этой операции у компьютера с 400-мегагерцовым 32-битным процессором, 192 мегабайтовый RAM-памяти и несколькими гигабайтами памяти на жестком диске уходит более 3 минут. Судя по разрядности системной шины и тактовой частоте процессора, новая машина работает приблизительно в 1500 раз быстрее, чем старая. Если же оценивать по времени, которое требуется для написания программы, новая машина оказывается медленнее приблизительно в 36 раз.
Я попросил двух профессиональных программистов написать программу на Visual Basic (VB), которая бы выполняла сложение 3+4 и выдавала результат на экран. Первый программист начал жаловаться, что у машины всего только 8 Мбайт памяти и что у нее устаревший 75-мегагерцовый 32-битовый процессор. Не считая времени загрузки (2 мин.), среда программирования была открыта через 54 с. После этого требовалось открыть модуль вставки (Insert Module), потом открыть окно опций (Option Box) и установить соответствующие настройки, создать кнопку и рабочую форму, после чего программист должен был набрать среднюю строку из следующего текста:
Private sub Command1_Click ()
MsgBox 3 + 4
End Sub
Для того чтобы воспользоваться этой программой, ее нужно было сначала запустить, а потом нажать кнопку для ее включения. В течение этого процесса, который занял 3 мин. 40 с (опять же, не считая времени начальной загрузки), было сделано всего только две или три ошибки.
Другой программист, работавший на 64-битовом процессоре с тактовой частотой 75 Мгерц и 40 Мбайт памяти, запустил VB и выполнил ту же задачу за 28 с (что приблизительно в 5 раз медленнее, чем на компьютере Apple II). Программа, созданная несколько иным способом, была следующей:
Private sub Form-Load ()
MsgBox Str (3 + 4)
End Sub
Я спросил у этого программиста, почему он не написал вторую строку так же, как ее написал первый программист:
MsgBox 3 + 4
Он ответил, что не был уверен, что это будет работать. Другими словами, он не знал точно, как VB будет работать в этом случае. Здесь нет ничего странного: как и другие современные компьютерные языки, VB имеет довольно сложное и непоследовательное построение. Оправданием его громоздкости может быть то, что он позволяет сделать большие проекты проще, однако это не может быть оправданием для того, чтобы делать простые вещи сложными. Большие вещи состоят из множества малых, поэтому чем проще сделаны составные задачи, тем проще становится вся задача в целом. Именно плохая организация системы и языка является причиной того, почему один опытный программист допустил ошибки, а другой — не был уверен в правильности синтаксиса простой программы. Те же самые результаты я получил и с тремя другими программистами, работающими со Smalltalk; это показывает, что данные проблемы относятся не только к VB. Очевидно, что каждый из этих языков обладает множеством преимуществ, но если бы они и особенно их среды были хорошо разработаны с точки зрения человеческих факторов, эти преимущества достигались бы с меньшими неудобствами и меньшим числом ошибок со стороны человека.
Таким образом, было утрачено нечто удивительно непосредственное, в частности, немедленная обратная связь, в которой человек нуждается для того, чтобы иметь возможность быстро создавать эффективные программы. Я не настолько наивен, чтобы думать, что мы можем вернуться к прежней простоте и достичь того уровня сложности, который требуется от современных программ. Но я уверен, что мы можем сделать в этом много улучшений.
Во многих источниках сообщается, что для программистов важно подробно документировать машинный код, который они пишут. Для этого обычно приводятся две причины: во-первых, чтобы помочь понять программу при ее чтении (Knuth, 1992, с. 99), и, во-вторых, чтобы упростить адаптацию программы к новым условиям (Weinberg, 1971, с. 164). Обычно в программе рядом со строками кода можно встретить комментарии (чаще однострочные). Многие программы бывают почти полностью лишены комментариев.
Как отметил Кнут (Knuth), написание комментария до или во время создания кода может помочь процессу написания, улучшить структуру алгоритмов, снизить число ошибок и повторных написаний программы, необходимых для завершения проекта, а также дает другие преимущества, которые обычно упоминаются по поводу комментариев. По всей видимости, правильность выводов Кнута имеет основания с точки зрения когнетики.
Когда мы как опытные программисты разрабатываем алгоритмы и пишем код, этот процесс отчасти происходит на бессознательном уровне. Как уже было отмечено, эта ментальная область может быть подвержена противоречиям. Предполагаю, что причина некоторых программных ошибок заключается в том, что когнитивное бессознательное переживает противоречие между тем, что мы хотим сделать, и тем, что должен сделать компьютер в соответствии с нашим кодом.
Однако для того, чтобы ясно выразить свои намерения на естественном языке, нам следует сделать процесс мышления сознательным, и именно в когнитивном сознательном эти противоречия быстро становятся очевидными. Даже если эта гипотеза неправильна, написание комментариев вынуждает нас тщательнее обдумывать решаемую задачу для разных условий и с разных точек зрения.
К сожалению, среды программирования были разработаны таким образом, что вносить комментарии в создаваемые программы не просто. Например, комментарии во многих языках программирования ограничиваются одной строкой, а если многострочные комментарии допустимы, то в них часто не используется перенос текста или другие возможности, которые должны быть в простейших текстовых редакторах (исключения составляют UCSD Pascal и Oberon). Чтобы в языке Visual Basic, появившемся в 90-х годах, написать комментарий размером с абзац, вам приходится вручную делать перенос текста. По легендам, программисты не особенно грамотно умеют писать, поэтому проверка орфографии должна быть включена в каждую среду программирования, однако в программных средах эта служба почти никогда не встречается. В существующей версии Mathematica, которая является в общем превосходной программой для работы с математическими выражениями, комментарии были убраны из программ и помещены в специальное окно, что является совершенно неправильным шагом. Только некоторые системы (как, например, созданная Кнутом программа WEB (1992)) были разработаны таким образом, чтобы способствовать ведению документации. Другой, менее сложный, но достаточно эффективный метод, был использован автором этой книги (Lammers, 1986, с. 226).
Для сохранения работоспособности программы любым вносимым в нее изменениям должны предшествовать изменения в сопровождающих ее комментариях. Аналогично тому, как нет необходимости разделять разные формы использования компьютера в виде приложений, программирование не должно как-то особенно отличаться от других видов работы, которые пользователь выполняет с помощью компьютера. Опыт показывает, что большинство пользователей компьютеров с неохотой относятся даже к попыткам программирования. Наверное, некоторые преимущества программирования были бы более понятны, если бы процесс программирования был настолько интегрирован со средой, что отдельные программные структуры могли бы использоваться без необходимости учить весь язык или среду программирования. Было бы также полезно иметь возможность комбинировать функции из разных языков, однако это не должно быть смесью, подобной PL/I, но, скорее, должен использоваться метод слияния, предложенный в этой книге для приложений. Вероятно, весьма ценным был бы вариант, в котором комбинировались бы структуры LISP для обработки списков, структуры APL (или разновидности этого языка J) для обработки массивов, мощные методы обработки строк из языка SNOBOL, механизмы наследования и объекты из Smalltalk и т.д.
Разработчики языков программирования и эксперты по интерфейсам слишком редко работают вместе, и хотя когнетика позволяет усовершенствовать компьютерные интерфейсы, следует в максимальной степени использовать также сочетание современных методов разработки языков программирования с нашими знаниями о человеческих фактоpax. Этот вопрос, до сих пор сохраняющий свою актуальность, был рассмотрен в одной из самых ранних книг Вейнберга в области разработки интерфейсов человек-машина «Психология компьютерного программирования» (Weinberg, «Psychology of Computer Programming», опубликована в 1971 г.), которая намного опередила свое время и до сих пор остается для нас откровением.
Программное обеспечение работает на основе аппаратного обеспечения. Если вы не можете определить, как соединить между собой блоки аппаратного обеспечения, программное обеспечение превращается в бесполезные биты информации. Кабель — несколько проводов или волоконно-оптических линий, соединенных вместе и имеющих на каждом конце по разъему, — является одним из простейших элементов аппаратного обеспечения. Кабели должны присоединяться и отсоединяться от компьютера независимо от того, включен он или нет (кабели, которые нельзя заменять без выключения питания («not hot-swappable»), являются модальными!). У пользователя не должна возникать необходимость изменять конфигурацию устройств, как это требуется при использовании SCSI-соединений. В стандартах USB и FireWire эти проблемы учитываются. Однако есть другие проблемы интерфейсов, которые не учитываются даже в новых стандартах. Например, ситуация, когда кабель имеет неподходящий «пол» разъема, вызывает раздражение. Поскольку кабели могут иметь разные разъемы («папа» и «мама»), и так как некоторые части оборудования могут иметь соединители или для одного типа разъема («папа»), или для другого («мама»), это приводит к тому, что каждый тип кабеля может иметь огромное число модификаций. Многие владельцы компьютеров покупают адаптеры для инверсии «пола», поскольку они дешевле и меньше по размеру, чем кабели. Допустим, что у вас есть только кабель с двумя типами разъемов («папа-мама»), а вам требуется соединить два устройства, в которых есть разъемы только одного типа («мама»). В этом случае вы можете либо приобрести кабель с двумя разъемами соответствующего типа («папа-папа»), либо купить адаптер типа «папа-мама» и присоединить его к одному из концов («мама») кабеля, который у вас уже есть. В результате вы получите кабель («папа-папа»), который будет подходить для соединения двух устройств с симметричными разъемами («мама-мама»).
Эту проблему можно избежать, но методы, которые обычно предлагаются, не работают. Одно из решений, о котором я слышал, заключается в том, чтобы на оборудовании устанавливать разъемы одного типа (скажем, «мама»), а на кабелях все разъемы сделать другого типа (соответственно, «папа»). Но даже в этом случае будут нужны адаптеры типа «мама-мама» для соединения двух коротких кабелей в один длинный, или же производители должны будут подумать о выпуске кабельных шнуров типа «папа-мама», чтобы их можно было использовать для удлинения. Следуя этой логике, можно прийти к ситуации, в которой потребуется использовать все возможные комбинации между соединениями «папа» и «мама» на кабелях и адаптерах, даже если по стандарту все соединения на оборудовании будут иметь разъемы типа «мама».
Обычная соединительная пара состоит из штекерного разъема («папа») и гнездового разъема («мама»). В результате появляется набор из следующих восьми типов деталей, которые могут использоваться как соединители для оборудования и кабельных шнуров:
При использовании гермафродитных соединителей любые два кабеля можно соединить вместе и любой кабель может быть присоединен к любому разъему в оборудовании. Таким образом, весь набор типов соединителей сводится к следующим двум типам:
С точки зрения электротехники для каждого вида сигнала требуется использовать свой тип кабеля, но в каждом классе кабелей ни с точки зрения электротехники, ни с точки зрения производства ничто не мешает использовать гибридные (так называемые гермафродитные) соединители, не разделяющиеся на тип «папа» или «мама». Любые два соединителя-гермафродита данного класса могут быть соединены вместе. Более того, любой вид соединения для проведения электронного сигнала или питания может быть выполнен с помощью гермафродитных соединителей. Они могут использоваться в качестве многоштекерных соединителей, разъемов питания, а также для коаксиальных кабелей52.
Если имеются два гермафродитных соединителя данного класса, вы можете их использовать как два разных кабеля или соединить их в один длинный кабель. В некоторых случаях соединитель-гермафродит мог бы быть не сложнее и не дороже соединителя с определенным «полом». Однако это не всегда будет так. Во многих случаях гермафродитный соединитель будет несколько сложнее и дороже в производстве, но это будет оправдываться следующими факторами:
На рис. 7.1 показана схема четырехпроводного линейного гермафродитного соединителя. При линейном расположении n проводов требуется минимум 2n-1 контактов. По схеме проводов на рис. 7.2 можно понять, каким образом работают такие соединители. На рис. 7.3 показаны выходы из гермафродитного коаксиального соединителя. Эту идею можно использовать и для многожильных редакторакоаксиальных проводов. Для того чтобы получить более удобные интерфейсы человек-машина, мы готовы платить за более сложные компьютеры. Этот же принцип должен быть применен к сумасшедшему клубку проводов и кабелей, которым вечно опутан компьютер и пользователь. Может показаться, что нужна какая-то линейная схема с меньшим, чем 2n-1, числом контактов, но здесь следует учесть возможность использования кабелей для удлинения.
Разумный человек приспосабливает себя к миру. Неразумный человек стремится приспособить мир к себе. Следовательно, весь прогресс зависит от людей неразумных.
Бернард Шоу
Трудно создать хороший интерфейс, если руководство не понимает, что разработка интерфейса является достаточно важным этапом. В краткосрочной перспективе тщательный подход к разработке интерфейса может увеличить расходы и время на создание продукта. Мой опыт показывает, что краткосрочный подход является неверным даже в краткосрочном периоде, поскольку улучшение пользовательского интерфейса часто упрощает разработку. Тщательное проектирование и детальное определение технических и других требований не замедляют, а, наоборот, ускоряют процесс разработки. Создание качественного интерфейса полезно и с точки зрения долгосрочной перспективы, поскольку в результате приводит к
Разработчики интерфейсов редко когда имеют возможность контролировать, в какой момент в процессе разработки проекта начнется создание интерфейса и какое значение будет придаваться его проблемам. В тех случаях, когда созданию интерфейса отдается главенствующая роль, как это было в проекте Macintosh, это дает поразительные результаты.
Если не учитывать, что данная область является довольно новой, и поэтому мало кто из специалистов в этой области пока поднялся до управляющих должностей, другой проблемой является то, что разработчики интерфейсов имеют небольшое влияние. Однако идет некоторая работа по решению этой проблемы с помощью предложения образовательных стандартов и тестов. Тем не менее, обладание такого сертификата у специалиста еще не является гарантией его компетентности. Здесь речь идет о другой стороне этой проблемы. Даже если разработчик является достаточно компетентным, от него (или нее) часто требуют создавать плохие интерфейсы. В этом отношении можно только позавидовать врачам, потому что для них предусмотрены юридические защитные меры, которые позволяют им выполнять свою работу правильно. Например, врач может предъявить судебный иск за незаконное увольнение при отказе выполнять действия, угрожающие состоянию здоровья пациентов. Строительные инженеры могут обращаться в суд в случае увольнения за отказ нарушить каноны, принятые в их профессии.
Специалисты по разработке интерфейсов работают в области, в которой неправильные решения могут вызвать физические поражения и способствовать психологическим расстройствам. Например, если интерфейс создает необходимость слишком часто нажимать на клавиши или кнопку мыши, это может привести к возникновению или обострению хронического стрессового нарушения (repetitive stress injuries). Плохой интерфейс может вызывать психологические расстройства. Таким образом, требуется создание основы для установления юридических норм защиты добросовестных специалистов. Другой необходимостью является установление определенных профессиональных стандартов (речь идет не о стандартах разработки интерфейсов). Меры, упомянутые в этой книге, а также те, которые будут разработаны в будущем, могут помочь установить количественные, объективные нормы. Например, инженер-строитель должна показать, что она спроектировала мост, который отвечает установленным стандартам, в соответствии с которыми этот мост должен выдерживать нагрузку, скажем, в два раза превышающую минимально возможный уровень. Выбросы из автомобиля должны содержать не более 0,2% CO для того, чтобы этот автомобиль мог быть сертифицирован. Аналогичным образом, мы могли бы установить, что интерфейс текстового процессора не может быть принят, если, скажем, его общая информационно-теоретическая эффективность меньше 0,7 или если общая символьная производительность является меньше 0,8, а отдельные элементы имеют эффективность меньше 0,5.
Критерии могут быть также подобраны таким образом, что для некоторого числа наиболее часто используемых задач средневзвешенное время выполнения, а значит, и количество нажатий на клавиши, движений с помощью ГУВ и нажатий на его кнопку в новом текстовом процессоре не должно превышать значений, которые достигнуты в любом предыдущем или современном коммерческом продукте, предназначенном для аналогичной цели. Продукты, которые удовлетворяют данным критериям, могут получать какую-то форму сертификации. Эти критерии будут автоматически изменяться по мере развития интерфейсной технологии. В настоящее время новые продукты часто оказываются сложнее в использовании, чем старые, но это нельзя понять до тех пор, пока вы не попробуете это проверить на собственном опыте. Поскольку эти критерии касаются эффективности, т.е. в конечном счете определяют итоговый результат работы пользователя, то руководители проекта должны уделять им особое внимание. От публикации объективных нормативов качества интерфейсов выиграют не только разработчики и руководители проекта, но также и покупатели.
Стив Уайлдстром (Steve Wildstrom), который публикует свои статьи в еженедельнике Business Week, указывает, что «производители компьютеров и, в особенности, разработчики программного обеспечения, часто думают, что требования Единого коммерческого кодекса (Uniform Commercial Code) касаются не их, а кого-то другого» (частный разговор, октябрь 1998 г.). Многие современные лицензии на программное обеспечение, навязываемые покупателям, не гарантируют им даже того, что это программное обеспечение будет выполнять задачу, о которой сообщалось в рекламе. Во многих таких документах прямым образом отрицается понятие merchantability (годности для продажи), которое означает буквально следующее: продажа данного продукта автоматически предполагает, что этот продукт способен выполнять задачу, для которой он, по заявлению продавца, предназначен. В некоторых штатах США были приняты законы, запрещающие отказ от подтверждения «годности к продаже» для продуктов компьютерного производства. Все верховные власти должны поступить так же.
Система оценки качества интерфейсов, осуществляемая независимой организацией, может быть полезной для покупателей тех продуктов, в которых интерфейсный компонент выполняет значительную роль. Сама разработка пользовательского интерфейса не должна как-то регулироваться или ограничиваться. Следует избегать применения принципов, основанных на использовании конкретных интерфейсных механизмов, чтобы не подавлять стремление к нововведениям. Однако введение относительных количественных нормативов продуктивности для продуктов одного типа побудит разработчиков двигаться в правильном направлении.
Нужно найти тонкий баланс между созданием настолько нового продукта, что опытные пользователи, привыкшие к обычным интерфейсам, почувствуют неудобство в его использовании, и созданием продукта с интерфейсом, который настолько не отличается от стандартного графического пользовательского интерфейса, что его никак нельзя считать результатом нашего желания в максимальной степени помочь пользователю. С одной стороны, мы должны избежать новизны как таковой, хотя с другой стороны, мы не должны терять ценную возможность выиграть на рынке из-за того, что декалькируем аналогичные существующие продукты.
В бизнесе разработки интерфейсов давно существует миф о том, что «расширение функциональности и сохранение простоты использования не могут быть совмещены в одном интерфейсе» (Microsoft, 1995, с. 8). Действительно, добавление множества специальных, созданных именно для данного случая сервисов, уменьшает простоту использования. Но как раз это является плохой разработкой. Часто, но не всегда, возможно увеличить функциональность, не увеличивая степень сложности интерфейса. Добавление нового сервиса, как правило, может быть сделано таким образом, что это не прибавит сложности в интерфейсе (здесь следует отметить разницу между сложностью интерфейса и сложностью задачи). Если добавляемая функция позволяет объединить в единое целое разрозненные элементы интерфейса, то такой интерфейс может стать проще.
«Одним из способов сохранить простоту заключается в сокращении объема предъявляемой информации до того минимума, который необходим для адекватного взаимодействия» (Microsoft, 1995, с. 8). Это действительно так, за исключением того, что слово «адекватного» следует заменить словом «нормального». Однако в этой компании ошибаются, когда утверждают: «Например, не используйте словесных описаний командных имен или сообщений» (Microsoft, 1995, с. 8). Здесь возникает вопрос: что же можно считать минимумом для нормального взаимодействия? В большинстве современных интерфейсов акцент делается на краткость в ущерб ясности. Почему мы должны заниматься расшифровкой непонятного названия «Список» в выпадающем меню в текстовом процессоре, когда можно было бы использовать более понятное «Создать указатель или оглавление»? (Необходимо учесть, что выпадающее меню не занимает места в документе, поскольку оно исчезает сразу же, как только вы уводите от него курсор или выбираете какую-то из опций.) Не следует путать простой внешний вид экрана с простотой использования интерфейса.
Навигация против свободного пространства
Кажется, что мы просто боимся отображать информацию в наших интерфейсах. Известно, что чем меньше группа вещей, тем легче найти в ней нужный предмет. Однако из этого не следует, как это может некоторым показаться, что чем меньше элементов на экране, тем лучше. Если сотни элементов разбросаны в десятках экранов, то вы больше времени потеряете на перемещения между ними, чем на сам поиск конкретного элемента, даже если этот элемент находится среди моря других аналогичных. Поиск чего-то в длинных, однообразных списках не всегда может быть трудным.
Если бы люди не могли быстро находить короткие элементы в длинных списках, журнал «Уолл стрит джорнал» уже давно бы разорился. Предпочли бы вы, чтобы котировки акций печатались по 15 строк на странице, каждая их которых оформлена наподобие экрана из современного интерфейса, в придачу даже со схемой поиска нужной страницы вроде:
Ценные бумаги Страница AA-AD 1 AD-AS 2 AT-AZ 3 ВА-ВК 4 и так далее Такая схема показалась бы несерьезной, неэкономной и странной. Однако иногда мы используем больше экранных пикселов на то, чтобы сделать аккуратные рамки с тенями, чем на отображение полезной информации. Если человек имеет мотив (обусловленный личным интересом или зарплатой) для того, чтобы искать какие-то нудные данные, длинные списки не могут представлять для него никакой проблемы. Визуальный дизайнер Эдвард Тафт (Edward Tufte, 1983, с. 105) разработал принципы отображения информации, среди которых первыми тремя являются следующие:
- данные следует показывать прежде всего остального;
- следует максимально увеличивать долю чернил, используемых для отображения данных;
- следует максимально уменьшать долю чернил, которые не используются для отображения данных.
Для того чтобы приложить эти принципы к устройствам с дисплеями, требуется всего лишь заменить в них слово чернила на слово пикселы. Серьезный, профессиональный пользователь желает, чтобы экраны были до отказа заполнены полезным содержанием. Экраны должны быть хорошо обозначены, снабжены простыми механизмами для осуществления поиска и получения информации, отражающей суть данного экрана. (В конце концов, раз уж мы сели за компьютер, мы должны извлечь из этого максимальную пользу.)
Сегодня существует множество исследований о дизайне экранных изображений. Многие ранние, но до сих пор не утратившие свою ценность исследования, рассмотрены в обзоре Туллиса (Tullis, 1984). Некоторые из результатов до сих пор могут быть использованы (например, время поиска в списке элементов составляет приблизительно 30 мс на каждый элемент (с. 126)). Основные результаты, полученные Туллисом, относились к 24х80 алфавитно-цифровым дисплеям и позволяли дать количественные оценки53. Если эти результаты применить к современным растровым дисплеям и получить критерий оценки времени поиска целевого объекта, то это позволило бы не только оптимизировать отдельные, изолированные безоконные экранные изображения (в соответствии с ограничениями Туллиса), но также достичь более глобальной оптимизации, связанной с оценкой навигационной структуры. Как отмечает Туллис (с. 132), почти всегда необходимо искать компромисс между сложностью экрана и сложностью навигации. Этот компромисс зависит от скорости и простоты работы навигации и от структуры данных. Когда для выполнения внутриэкранного поиска вместо визуального сканирования используется поисковое устройство (как, например, функция LEAP), то для оценки эффективности должны быть разработаны другие виды критериев. Здесь имеется широкая область для дальнейших исследований.
В любом случае, если довести до логического конца популярную философию экранного дизайна, которая сводится к принципу, что «чем больше пустого пространства, тем легче читать», то мы увидим, что тогда на каждом экране должен помещаться только лишь один элемент данных. В этом случае пользователь уж точно сможет визуально распознать этот элемент с наименьшим возможным усилием.
Имея опыт улучшения множества продуктов с помощью сокращения количества экранов и увеличения доли информации на оставшихся экранах, — или, другими словами, с помощью улучшения логической структуры дизайна, приводящего к такому сокращению, — я пришел к выводу, что почти во всех коммерческих программах мы допускаем ту ошибку, что помещаем на экраны слишком мало информации.
Лучший способ заставить интерфейс вашего продукта отличаться — это сделать так, чтобы он работал. В книге Нормана «Невидимый компьютер» (Norman, «The Invisible Computer», 1998) можно найти хорошо написанное и убедительное обоснование важности вопросов разработки интерфейсов, которое в большой степени обращено к тем, кто осуществляет руководство проектами.
52 Некоторые кабели, используемые для соединения оборудования, расположенного на больших расстояниях друг от друга (например, фотографические стробоскопические источники света), снабжены соединителями-гермафродитами. Другой пример — это вышедшие из употребления коаксиальные радиочастотные соединители питания для регистра общего назначения.
53 Критерии, предложенные Туллисом, не учитывают качества содержания, но только его внешний вид. Можно построить такие образцы изображений, которые по этим критериям будут иметь высокие оценки, но будут сложны в использовании.
<= Previous | Index | Next => |