Участник:ArmorAdmin/Интерфейс пользователя
- Автор(ы): Чобиток Василий 15:42, 1 ноября 2006 (EET)
О проектировании пользовательского интерфейса
Практически вся моя профессиональная деятельность, начиная с подготовки и продолжая работой, была связана с различными интерфейсами пользователя. В начале это были интерфейсы взаимодействия человека с боевой машиной - различные органы управления и контроля что-то включающие и переключающие, передвигающиеся и поворачивающиеся, сигнализирущие и моргающие...
Затем - пользовательский интерфейс различных программ. И если в инженерном деле эргономика практически точная наука и система "человек-машина-среда" изучены достаточно глубоко и выработаны рекомендации по многим вопросам организации рабочего места оператора и, следуя им (рекомендациям), можно добиться хороших результатов (хотя, проблемы есть и никуда от них не деться, многие "инженеры" и сейчас плюют на эргономику), то в программной инженерии всё много сложнее. Вам понравилось моё сложноподчиненное с уточнениями предложение? Отож...
О проектировании интерфейса. Разберем простой, но показательный пример, как не надо делать.
На пре-предыдущей работе у меня был ноутбук "Версия", сейчас - "Toshiba". Все ноутбуки (может и не все, но те, что я видел - точно) могут быть подключены к внешнему монитору. Если включаешь ноутбук с подключенным внешним монитором, то работает он, включаешь без внешнего - встроенный LCD.
Пока все просто. Но бывают случаи, когда надо переключить с монитора на монитор в горячем режиме, не выключая компьютер. Это, как правило, осуществляется комбинацией специальных кнопок на клавиатуре (Fn + <пиктограммка монитора>), они переключают на другой монитор или на оба сразу.
С "Версией" все было просто, нажал комбинацию кнопок - переключился в следующий режим (всего режимов - три).
С "Тошибой" не все так просто. Не выключая ноутбук, отключил его от монитора, перешел в другой кабинет, открыл и нажал заветные кнопки... Ничего, экран черный. Опять нажал - ничего. Нажал Fn и, удерживая ее, пиктограммку монитора несколько раз. И при каждом нажатии просходило... ни-че-го. Я проверил индикаторы - ноутбук включен и работает, даже иногда сигналит винчестер.
Несколько попыток оживить монитор не удались и я, не долго думая, выключил ноутбук, благо запущена была только сама "Винда". Включил снова, монитор ожил.
Вернувшись на рабочее место, подключил ноутбук к внешнему монитору. Опять нажал кнопки - внешний монитор не работает. Но работает встроенный. Ввел пароль, вошел в Винду, опять нажал кнопки... Чудо! На экране появилась подсказка в виде картинок, что сейчас работает встроенный монитор. Отпустил кнопки, подсказка исчезла. Удерживая Fn, начал нажимать кнопку с пиктограммой - выделяются другие подсказывающие картинки, но больше ничего не происходит. Выделил картинку внешнего монитора и отпустил кнопки. Чудо-2!! Заработал внешний монитор и погас встроенный.
Грустная история... И складывается такое ощущение, что идиот здесь все же не я - не смог сразу разобраться в двух кнопках, а тот инженер, который придумал такой способ переключания, исходя из каких-то высоко-рациональных, но понятных только ему соображений.
Критерий простой - оператор (пользователь) на управляющее воздействие ожидает увидеть реакцию системы. А ее нет! Все же она (графическая подсказка), конечно, есть, но только на включенном мониторе и только в режиме работающей Винды после ввода пароля, а в режиме блокировки ее нет.
Это не та реакция! Это почти то же самое, что изменить пароль доступа пользователя к почтовому ящику и послать новый пароль... правильно, на этот же ящик.
Итак, в чем разница подходов двух производителей? В первом случае пользователь должен всего-лишь догадываться, что существуют такие кнопки, которые позволяют переключиться и все получится само собой, во втором - он должен знать не только о кнопках, но КАК ИМЕННО их нажимать (пиктограммку два или три раза, после чего Fn отпустить, а я, пробуя такой режим, нажал четыре раза и вернулся в исходный режим).
Что самое смешное, в ноутбуке Версии не было никаких подсказывающих пиктограмм, он просто аппаратно работал так, как нужно пользователю, а для тошибовского привлекали программистов, которые ваяли программу с никому, на сам деле, не нужными картинками-подсказками. Затратили больше денег и усилий, получили худший результат. А все почему? ДЕЛАЛИ НЕ ДЛЯ СЕБЯ.
Откидывая всю шелуху про юзабилити и прочее, рекомендую одно простое правило: программа должна быть написана для себя (или как для себя). Если ты пишешь её не для абстрактного юзера, говоря "они должны делать так-то и так-то" а юзером считаешь лично себя и операции того юзера, который тебе представляется, будешь потом делать сам и не один раз ("ведь это я буду так делать"), то, удобство интерфейса конечной программы много выше, чем обычно это у тебя получается...