Чтение онлайн

на главную - закладки

Жанры

Интерфейс: новые направления в проектировании компьютерных систем
Шрифт:

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

1.1. Определение интерфейса

Позвоните по вышеуказанному номеру и испытайте невероятное разочарование от нашей системы голосовой почты.

Надпись под рекламным объявлением одной из марок обуви

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

из статей в журнале «Mobile Office» было сказано: «Уже недалеко то время, когда вам совсем не нужно будет задумываться об интерфейсе, вы будете просто разговаривать со своим компьютером». В ответ на это я мог бы заметить, что системы, управляемые голосом, действительно могут обходиться без окон, но телефонные автоответчики их также не имеют, и, тем не менее, их интерфейсы зачастую оказываются чрезвычайно плохими. Итак, способ, которым вы выполняете какую-либо задачу с помощью какого-либо продукта, а именно совершаемые вами действия и то, что вы получаете в ответ, и является интерфейсом. (См. также Raskin, 1993.)

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

Технология – странная вещь. Одной рукой она дает вам великие дары, а другой – наносит удар в спину.

С. П. Сноу (цитата из Jarman, 1992)

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

Из всех нелепостей, создаваемых абсурдными конструкциями интерфейсов, именно усложнение простого чаще всего оказывается поводом для высмеивания в комиксах или комедийных сценах. Например, в фильме «Городские жулики» (City Slickers) три товарища гонят стадо коров. Один из героев, его играет Билли Кристал (Billy Crystal), безуспешно пытается, видимо, уже не один час, объяснить друзьям, как с помощью видеомагнитофона записать какую-нибудь программу на одном канале во время просмотра другого. Когда, в конце концов, друзья выходят из себя от длинного и непонятного объяснения, персонаж Кристала с радостью соглашается сменить тему и предлагает вместо этого рассказать, как устанавливать время на часах в том же видеомагнитофоне. Это предложение приводит друзей в ярость, что вызывает смех у зрителя. Комический эффект порождается несоответствием между очевидной простотой задачи и сложностью интерфейса. Если бы лицевая панель видеомагнитофона была снабжена специальными кнопками, расположенными над и под цифрами часов, как это показано на рис. 1.1, тогда мало у кого возникали бы трудности при установке времени.

Рис. 1.1. Легко настраиваемые электронные часы для видеомагнитофона. Еще лучшим вариантом были бы часы, в которых время автоматически устанавливается по сигналам точного времени, передаваемым по радио

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

Мы слишком усложнили программное обеспечение и забыли главную цель.

Джим и Сандра Сандфорс

Не только разработчики интерфейсов, но и руководители предприятий электронной и компьютерной промышленности понимают необходимость ориентации разработок на нужды пользователей и покупателей. И первым шагом в этом направлении является стремление узнать своего пользователя, что на практике обычно означает обращение за помощью к специалистам в той или иной области. Специалисты действительно могут хорошо разбираться в особенностях и деталях решаемой проблемы, но их экспертные знания, как правило, не касаются вопросов человеческой психологии. Хотя у пользователей могут быть разные потребности в зависимости от конкретной задачи, тем не менее, в целом они проявляют много общих ментальных характеристик. Прежде чем приступать к разработке самой программы или пытаться учесть различия между отдельными пользователями, разработчики интерфейса могут облегчить свой труд, сосредоточив внимание на том, что является общим для всех людей с точки зрения требований к интерфейсу. По завершении этой стадии разработчики интерфейса уже могут приступить к согласованию различий между отдельными пользователями и группами пользователей и, в конечном итоге, к поиску оптимального варианта, удовлетворяющего широкому диапазону требований пользовательских задач. Однако этот первый важный шаг, во время которого проект интерфейса приводится в соответствие с общими законами психологии, в процессе разработки обычно пропускается. Разработчики интерфейсов предпочитают не задумываться об этом и больше полагаются на так называемые «промышленные стандарты». В результате все широко используемые сегодня модели интерфейсов построены без учета закономерностей мышления и поведения человека. Например, почти во всех компьютерных системах файлы должны иметь собственные имена. Между тем часто возникают ситуации, когда нам трудно вспомнить, под каким именем мы сохранили – файл полгода назад. (Одно из возможных решений этой проблемы обсуждается в разделе 5.3.) Таким образом, мы хотим, чтобы программное обеспечение было простым и понятным, своим безупречным поведением показывая нам, что его создатели больше работали над удобством использования, нежели над привлекательным внешним видом своего продукта.

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

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

и Visual C++, позволяют снизить стоимость разработки и ускорить ее внедрение. Несмотря на все свои полезные свойства, эти инструменты нечасто будут упоминаться в этой книге. Причина состоит в том, что они основаны на традиционных парадигмах и, следовательно, слишком ограничивают ваши возможности. Аналогичным образом принципы создания интерфейсов в таких системах, как Macintosh или Windows, а также часть подходов, предлагаемых в различных книжных изданиях, посвященных разработке интерфейсов, иногда оказываются явно ошибочными – зачастую из-за корпоративной необходимости поддерживать совместимость с ранними версиями интерфейса, а также из предубеждения, что пользователи непременно отнесутся с неодобрением к попыткам отойти от старых, привычных принципов построения интерфейсов. Действительное усовершенствование интерфейсов возможно, если подходы к их разработке будут серьезно пересмотрены. При этом разработчику необходимо найти компромисс между оправданным применением уже устоявшихся парадигм, которые облегчают изучение интерфейса пользователем, и новыми подходами, которые позволяют сделать интерфейс более удобным и практичным. Конечно, в ситуации, когда часто меняется состав группы разработчиков или круг потребителей продукта, стремление придерживаться известных подходов, возможно, было бы лучшим решением. Но в тех случаях, когда известно, что большая часть времени у пользователей будет уходить на рутинные, повторяющиеся операции, а обучение в то же время не потребует больших затрат, верным решением является разработка интерфейса с максимальной продуктивностью, даже если впоследствии от пользователя потребуются некоторые усилия по его изучению.

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

Применяемые сегодня методы разработки проектов зачастую не считаются с необходимостью разработки интерфейса. Это упущение может быть следствием того, что специалисты по разработке интерфейсов привлекаются к проекту слишком поздно, когда возможности улучшения качества взаимодействия между пользователем и продуктом большей частью уже потеряны. Интерфейсом удобнее всего заниматься именно на начальных стадиях разработки. И если специалисты по интерфейсам привлекаются уже после того, как программное обеспечение спроектировано и определены его инструменты или когда разработка программы уже почти завершена, то их рекомендации могут потребовать переделки всей выполненной работы, что, естественно, является неприемлемым. Когда бюджет проекта уже исчерпан и рабочий план почти завершен, перспектива отказа от большей части или даже всего дизайна и готового кода, конечно, не может вызвать энтузиазма у менеджеров проекта. Так что даже в такой современной книге по управлению проектами, как «UML Toolkit» (Eriksson and Magnus, 1998), не говорится о необходимости рассматривать интерфейс уже на стадии анализа требований к проекту, которую авторы обозначают как первую фазу его разработки. Однако в действительности разработка интерфейса не должна откладываться до стадии технической реализации, которая в плане Эриксона и Магнуса является третьей фазой. Определив задачу, для которой продукт предназначен, сначала спроектируйте интерфейс, после чего приступайте к его реализации. Это повторяющийся процесс. Определение задачи будет меняться во время разработки интерфейса. Поэтому весь процесс разработки продукта будет проходить в соответствии с изменениями в задаче продукта и его интерфейсе. Здесь необходимо стремиться к максимальной гибкости. На первом этапе разработки следует определить, что именно должен сделать пользователь для получения того или иного результата и как система должна отвечать на каждое его действие.

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

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

Я приучился часто сохранять проделанную работу, чтобы даже в случае системного сбоя не потерять большую часть своего труда. В конце каждого абзаца или даже после нескольких предложений я при помощи сочетания клавиш вызываю команду сохранения. Эта команда создает копию текста на диске, где он может оставаться относительно защищенным от потери в случае сбоя. Приблизительно каждый час я создаю резервную копию своей работы с помощью энергонезависимого запоминающего устройства, которое может быть физически извлечено из компьютера и таким образом защищено от любых неожиданностей в его работе. Кроме того, каждую неделю я сохраняю резервную копию всей системы на внешнем диске. Это не значит, что я параноик, – я всего лишь считаю, что такой подход практичен. Однако необходимости во всех этих сложных процедурах не должно возникать. Система должна рассматривать все данные, вводимые пользователем, как бесценные. И если перефразировать Первый закон робототехники Азимова: «Робот не может причинить вред человеку или своим бездействием допустить, чтобы человеку был причинен вред», то первый закон проектирования интерфейсов должен звучать примерно так: «Компьютер не может причинить вред данным пользователя или своим бездействием допустить, чтобы данным был причинен вред».

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

Поделиться:
Популярные книги

Аргумент барона Бронина 3

Ковальчук Олег Валентинович
3. Аргумент барона Бронина
Фантастика:
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Аргумент барона Бронина 3

Я знаю твою тайну

Ольховская Вероника
Любовные романы:
остросюжетные любовные романы
короткие любовные романы
5.00
рейтинг книги
Я знаю твою тайну

Барон нарушает правила

Ренгач Евгений
3. Закон сильного
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Барон нарушает правила

Курсант: Назад в СССР 11

Дамиров Рафаэль
11. Курсант
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Курсант: Назад в СССР 11

Последний из рода Демидовых

Ветров Борис
Фантастика:
детективная фантастика
попаданцы
аниме
5.00
рейтинг книги
Последний из рода Демидовых

Чапаев и пустота

Пелевин Виктор Олегович
Проза:
современная проза
8.39
рейтинг книги
Чапаев и пустота

Враг из прошлого тысячелетия

Еслер Андрей
4. Соприкосновение миров
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Враг из прошлого тысячелетия

Страж Кодекса. Книга II

Романов Илья Николаевич
2. КО: Страж Кодекса
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Страж Кодекса. Книга II

Три `Д` для миллиардера. Свадебный салон

Тоцка Тала
Любовные романы:
современные любовные романы
короткие любовные романы
7.14
рейтинг книги
Три `Д` для миллиардера. Свадебный салон

Отец моего жениха

Салах Алайна
Любовные романы:
современные любовные романы
7.79
рейтинг книги
Отец моего жениха

Черный Маг Императора 11

Герда Александр
11. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Черный Маг Императора 11

Кадры решают все

Злотников Роман Валерьевич
2. Элита элит
Фантастика:
боевая фантастика
попаданцы
альтернативная история
8.09
рейтинг книги
Кадры решают все

Неудержимый. Книга VIII

Боярский Андрей
8. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
6.00
рейтинг книги
Неудержимый. Книга VIII

Последняя Арена 6

Греков Сергей
6. Последняя Арена
Фантастика:
рпг
постапокалипсис
5.00
рейтинг книги
Последняя Арена 6