Взаимодействие человека и компаРефераты >> Программирование и компьютеры >> Взаимодействие человека и компа
Программа с хорошей памятью дает пользователю немало преимуществ. Память уменьшает излишества. Излишество - это то, что я называю бесполезным усилием, которое направлено на управление инструментом, а не работой. Если поездка в заданное место - это нормальная работа, то нажатие на педаль газа в вашем автомобиле - это излишество. Если ввод чисел в электронную таблицу - нормальная работа, то упорядочивание окон - излишество. Если выбор имени файла - нормальная работа, то сохранение его на диск - излишество. Большинство излишеств может быть устранено с помощью простого запоминания того, что делал пользователь в последний раз. Это значительное достижение в проектировании пользовательских интерфейсов.
Большинство программ позволяют пользователю устанавливать значения по умолчанию, но это не дает для большинства пользователей такого же эффекта, как могла бы иметь память. Я использую Microsoft Word каждый день, поэтому он уже тщательно отрегулирован в соответствии с моими предпочтениями, но мой коллега использует Word от случая к случаю, и не намерен заниматься изучением его настроек. Каждый раз при запуске программы ему приходится вручную устанавливать нужный шрифт. Если бы только программа могла запомнить его предпочтения, необходимось в этом отпала бы.
Программа с лучшей памятью может уменьшить количество ошибок пользователя. Это происходит потому, что пользователю приходится вводить меньшее количество информации. Остальная ее часть будет введена автоматически из памяти программы.
Когда пользователю приходится сообщать программе излишние мелочи, либо объяснять ей то, что он уже объяснял неделю назад, это отвлекает его от настоящей цели работы, и заставляет его управлять программой. Это как если бы кто-то пропустил свою остановку в метро, будучи слишком занятым поиском поручня, чтобы держаться.
Связность задач может предсказать, что именно будет делать пользователь в будущем со значительной, но не абсолютной вероятностью. Если ваша программа основывается на этом принципе вы можете обнаружить, что думаете о неопределенности ваших предсказаний. Если я могу надежно предсказать действия пользователя в 80% случаев, это значит, что в 20% случаев я буду неправ, потому что в каждом конкретном случае я не знаю, в 20 я или в 80 процентах. Может показаться, что это как раз тот случай, когда нужно спросить пользователя, но это бы вернуло бы нас обратно в начало рассуждений. Вместо предоставления выбора, программа должна продолжать делать то, что она считает наиболее подходящим, вместе с тем давая пользователю возможность изменить или отменить это. Если возможность отмены достаточно легка и понятна, пользователь не будет беспокоится о ней. В крайнем случае, ему придется отменять решение программы только в 2-х случаях из 10, вместо того, чтобы иметь дело с излишним диалоговым окном 8 раз из 10.
Как только программист начинает понимать всю силу принципа связности задач, в процессе разработки программ происходят значительные изменения. Разработчики программ начинают думать в совершенно новом направлении. Бездумный процесс создания еще одного диалогового окна заменяется более продуманным и аккуратным, в котором разработчик начинает задавать себе вопросы типа: сколько чего должна помнить программа? что именно должно запоминаться? Должна ли программа запоминать больше, чем просто последний вариант настройки? Он начинает представлять себе такие ситуации: например, пользователь принял одинаковый формат даты в 50 ячейках, а затем вручную ввел дату в другом формате. Какой формат должна использовать программа в следующий раз, когда пользователь введет дату? Тот, который введен 50 раз, или же последний? Сколько раз должен быть задан новый формат, прежде чем он станет форматом по умолчанию? Хотя здесь есть неоднозначность, программа все равно не должна спрашивать пользователя. Она должна использовать свою инициативу, чтобы сделать подходящее решение. Пользователь может всегда изменить его, если оно не верно.
Вопросы такого типа вскоре порождают другие, например, как информировать пользователя о решении, которое приняла программа. Если программа сохраняет файл на диске без обсуждения этого с пользователем, как он может узнать об этом? Когда разработчики программ начинают задавать себе подобные вопросы, это значит, что они начинают создавать программы для пользователей, а не для программистов.
Одна из главных причин того, что программы так сложны в использовании, это то, что их разработчики приняли рациональные, логические решения, которые, к сожалению, оказались неверными. Они посчитали, что поведение пользователей случайно и непредсказуемо, поэтому программа должна постоянно прерывать их работу для выяснения правильного направления действий. Хотя поведение человека не так определенно, как у компьютера, оно редко бывает случайным. В следующий раз, когда вы обнаружите, что программа спрашивает вашего пользователя о чем-то, задайте этот вопрос ей самой.
Проверка на пользователях
Половина процесса разработки - это анализ и создание; вторая половина - получение обратной связи, и применение полученной информации.
Если вы хотите быть уверенным что ваша программа понравится пользователям, собирайте мнения потенциальных пользователей во время процесса разработки. Тестирование на пользователях даст вам наиболее верную информацию. Так же как и в визуальном дизайне существуют люди, чья профессиональная работа - проводить тестирование на пользователях. Если вы сможете привлечь специалиста по usability или human factors - это замечательно. Если нет, учитесь проводить тесты самостоятельно.
Тестирование на пользователях это не обсуждение дизайна с пользователями. В тестировании вы предлагаете пользователю выполнить определенное задание на некоторой версии вашей программы (рисунок одного окна, бумажный прототип, или рабочая система). Затем вы должны молча наблюдать за тем, что происходит. Вы можете даже снять весь процесс на видео или просто делать заметки.
Тестируя бумажные прототипы на нескольких разных пользователях, вы можете выявить множество серьезных usability-проблем еще до того, как приступите к кодированию. Тестируя готовую программу до ее официального выпуска вы можете найти и подчистить небольшие проблемы, которые могут стать причиной раздражения пользователя.
Запомните - все системы тестируются на пользователях. Вопрос только в том, хотите ли вы, чтобы это случилось когда вы еще можете исправить найденные проблемы. Думайте о тестировании как о способе получить новую информацию. Наблюдение пользователей в процессе тестирования вашей программы это самый лучший и самый дешевый способ образования.