
- •Эргономика
- •1. Производительность пользователя
- •1.2. Длительность интеллектуальной работы
- •1.2.1. Непосредственное манипулирование
- •1.2.2. Потеря фокуса внимания (прерывание)
- •1.2.3. Ограничение принятия решений
- •1.2.4. Закон Хика
- •1.3. Длительность физических действий пользователя
- •1.3.1. Закон Фитса
- •1.3.2. Методы повышения доступности кнопки
- •1.3.3. Уменьшение числа манипуляций
- •1.3.4. Уменьшение необходимости ввода данных
- •1.3.5. Память программы
- •1.4. Длительность реакции системы
- •1.4.1. Фоновый режим выполнения задач
- •Типы человеческих ошибок
- •3.1. Ошибки, вызванные недостаточным знанием предметной области.
- •3.2. Опечатки.
- •3.3. Не считывание показаний системы.
- •3.4. Моторные ошибки.
- •Методы предотвращения ошибок
- •4.3.Повышение разборчивости и заметности индикаторов
- •4.3.1. Качество/скорость восприятия элемента
- •Ошибочно выбранный визуальный сюжет элемента.
- •4.3.1.2. Нестандартно выбранный сюжет элемента или реализация сюжета.
- •4.3.1.3. Избыточная детализация сюжета.
- •4.3.2.Физическая реализация элемента
- •4.4. Блокировка потенциально опасных действий до получения подтверждения
- •4.4.1. Блокируйте системные файлы.
- •4.4.2. Не делайте опасные для пользователя кнопки кнопками по умолчанию.
- •4.5. Проверка действий пользователя перед их принятием
- •4.6. Самостоятельный выбор параметров
- •Обучение работе с системой
- •5.1. Почему пользователи учатся
- •5.2. Средства обучения
- •5.2.1. Понятность системы
- •5.2.1.1. Ментальная модель
- •5.2.1.2. Метафора
- •5.2.1.3. Идеома
- •5.2.1.4. Аффорданс
- •5.2.1.5. Стандарт
- •5.2.2. Обучающие материалы
- •5.2.2.1.Типы обучающих материалов
- •5.2.2.2. Среды передачи обучающих материалов
- •5.2.2.3. Спиральность
- •Субъективная удовлетворенность
- •5.1. Эстетика
- •5.2. Субъективное восприятие скорости работы
- •5.3. Приемы для уменьшения субъективного восприятия
- •5.4. Уменьшение вероятности стрессовых ситуаций
- •5.5. Пароли
- •5.6. Сообщение об ошибках
- •5.7. Как избежать сообщений об ошибках
- •5.7.2. Каким должно быть сообщение об ошибке
- •5.7.3. Пузырь как альтернатива сообщениям об ошибке
- •5.7.4. Сообщения о завершении операции
- •5.7.4.1. Необходимо предлагать пользователю обратную связь, не прерывая его.
- •5.7.4.2. Используйте само-срабатывающие диалоги.
- •6.1. Программа перегружена элементами управления
- •6.2. Терминология не адекватна знаниям пользователя о системе
- •6.3. От пользователя постоянно требуется дополнительная информация
- •6.4. Программа не готова к немедленной работе и требуют настройки
- •6.5. Программа имеет многодокументный интерфейс
- •6.6. Отсутствует единый стиль
- •6.7. Программа перегружена окнами сообщений
- •6.8. Интерфейс отражает внутреннюю структуру реализации и мышление программистов
- •6.9. Взаимное размещение объектов на экране не совпадает с их логической связью и/или с их важностью
- •6.10. Пиктограммы используются некорректно
- •Заголовки
- •Дизайн окна
- •Командные кнопки
- •Порядок табуляции фокуса ввода
- •Пиктограммы
- •Взаимодействие с пользователем
1.3.3. Уменьшение числа манипуляций
Программы часто демонстрируют такую же механическую сложность, как и реальные механизмы, требуя, чтобы пользователь служил им, а не наоборот. Любой, кто хотя бы раз обновлял системное программное обеспечение, знает, насколько сложной может быть эта задача, хотя для этого пользователю не нужно принимать практически никаких решений. Разделяйте все операции на “манипуляции с механизмом”, и более абстрактные, сообщающие машине то, чего она знать не может. После этого:
Уменьшайте число манипуляций, насколько это возможно. Действительно ли необходимо второе окно, или же задание можно выполнить с помощью одного? Действительно ли здесь требуется нажатие на клавишу? Можно ли выполнить это задание за один шаг, а не за два?
Сделайте оставшиеся манипуляции подходящими к пользовательской модели задачи. Избегайте требования от пользователя мысленного преобразования задачи в форму, приемлемую для машины. Вместо этого предложите наиболее естественный способ управления.
1.3.4. Уменьшение необходимости ввода данных
Следующие методы могут увеличить производительность ввода данных, уменьшая количество необходимой для ввода информации:
Автоматически заполняйте поля новой записи значениями предыдущей.
Минимизируйте, либо полностью устраните необходимость ввода информации. Можно ли получить информацию на основе логического вывода? Действительно ли данная информация необходима для выполнения этой задачи?
Исследуйте другие способы получения информации.
1.3.5. Память программы
Разрабатывая программу необходимо задумываться о том, как сделать так чтобы программа задавала как можно меньше вопросов и как можно больше принимала решения самостоятельно. Все что нужно сделать для этого - это дать программе память подобно человеческой. Проще говоря, если программа помнит последнее решение пользователя, следующее решение она может сделать сама. Этот простой принцип является одним из самых эффективных инструментов разработчика программ, но в то же время одним из самых малоизвестных. Большинство программистов считает, что быстрее создать новое окно диалога, которое спросит у пользователя некую информацию, которая не лежит на поверхности. Программисты не видят в этом ничего плохого, потому что они не знают, что пользователям не нравится, когда программа задает вопросы. Программа, которая задает меньшее количество вопросов, кажется пользователям умнее. Вот схема диалога программы и пользователя которая сейчас повсеместно распространена: Вы хотите сохранить этот файл? Вы хотите сохранить этот файл сейчас? Вы действительно хотите сохранить этот файл? Вы уверены, что хотите напечатать это? Вы уверены, что хотите печатать на этом принтере? Вы абсолютно уверены, что хотите печатать? А если пользователь не знает ответа на заданный ему вопрос, вдобавок к раздражению он еще и чувствует себя глупым. Возьмем например такой обычный вопрос: Вы хотите профессиональную установку или установку для новичков? Другими словами, вы хотите то, чего не сможете понять или вам будет не нужно, или же вы просто лопух? Вопросы доставляют пользователю беспокойство. Варианты выбора хороши, но существует большая разница между свободой выбора и предложением альтернатив программой. Вместо того, чтобы быть опрашиваемыми программой пользователи должны направлять программы сами, как они направляют автомобиль в нужную им сторону. Автомобиль предлагает пользователю бесконечное число вариантов выбора и не выдает ни одного диалогового окна. Никто не любит, чтобы его допрашивали, как подозреваемого, но точно так поступают многие программы. У Алана Купера [6] идея того, что программа может предсказать действия пользователя, обозначается термином "связность задач" (task coherence). Когда человек работает с программой, существует 80-процентная вероятность, что в следующий раз он сделает то же самое, что и в предыдущий. Таким образом, можно со значительной долей уверенности предсказать поведение пользователя, просто запомнив его последнее действие. Это позволит значительно уменьшить число вопросов, которые программа задает пользователю. Программа, эффективно использующая свою память, помнит все настройки пользователя от одного запуска до другого. Например, она может запоминать положение окон на экране, так что если пользователь открыл документ на весь экран, при следующем запуске программы он будет открыт точно также. Если пользователь упорядочил окна по вертикали, они могут быть упорядочены в следующий раз без его вмешательства. Какие бы изменения в настройках программы пользователь не сделал, они должны оставаться в силе до тех пор, пока он не изменит их сам. Программа не должна сбрасывать их при каждом запуске. Если пользователь игнорирует или отключает какие-либо возможности программы, она не должны предлагать их снова. Пользователь сам найдет их, когда они ему понадобятся. Программа с хорошей памятью дает пользователю немало преимуществ. Память уменьшает бесполезные усилия, которые направлены на управление инструментом, а не работой. Если ввод чисел в электронную таблицу - нормальная работа, то упорядочивание окон - излишество. Если выбор имени файла - нормальная работа, то сохранение его на диск - излишество. Большинство излишеств может быть устранено с помощью простого запоминания того, что делал пользователь в последний раз. Это значительное достижение в проектировании пользовательских интерфейсов. Большинство программ позволяют пользователю устанавливать значения по умолчанию, но это не дает для большинства пользователей такого же эффекта, как могла бы иметь память. К примеру один пользователь использует Microsoft Word каждый день, поэтому он уже тщательно отрегулирован в соответствии с его предпочтениями, но его коллега использует Word от случая к случаю, и не намерен заниматься изучением его настроек. Каждый раз при запуске программы ему приходится вручную устанавливать нужный шрифт. Если бы только программа могла запомнить его предпочтения, необходимость в этом отпала бы. Программа с лучшей памятью может уменьшить количество ошибок пользователя. Это происходит потому, что пользователю приходится вводить меньшее количество информации. Остальная ее часть будет введена автоматически из памяти программы. Связность задач может предсказать, что именно будет делать пользователь в будущем со значительной, но не абсолютной вероятностью. Если программа может надежно предсказать действия пользователя в 80% случаев, это значит, что в 20% случаев она будет неправа, потому что в каждом конкретном случае она не знает, в 20 она или в 80 процентах. Может показаться, что это как раз тот случай, когда нужно спросить пользователя, но это не так. Вместо предоставления выбора, программа должна продолжать делать то, что она считает наиболее подходящим, вместе с тем давая пользователю возможность изменить или отменить это. Если возможность отмены достаточно легка и понятна, пользователь не будет беспокоится о ней. В крайнем случае, ему придется отменять решение программы только в 2-х случаях из 10, вместо того, чтобы иметь дело с излишним диалоговым окном 8 раз из 10. Как только программист начинает понимать всю силу принципа связности задач, в процессе разработки программ происходят значительные изменения. Разработчики программ начинают думать в совершенно новом направлении. Бездумный процесс создания еще одного диалогового окна заменяется более продуманным и аккуратным, в котором разработчик начинает задавать себе вопросы типа: сколько чего должна помнить программа? что именно должно запоминаться? Должна ли программа запоминать больше, чем просто последний вариант настройки? Вопросы такого типа вскоре порождают другие, например, как информировать пользователя о решении, которое приняла программа. Если программа сохраняет файл на диске без обсуждения этого с пользователем, как он может узнать об этом? Когда разработчики программ начинают задавать себе подобные вопросы, это значит, что они начинают создавать программы для пользователей, а не для программистов.