Колонка автораСтатьиОбзоры программ и сайтовПримеры удачных решенийПримеры неудачных решенийЦентр Практичных Программ

Логическое обоснование необходимости применения 
специальных методов для разработки интерфейсов программ

Седельников Андрей

Чаще всего программы для компьютеров создаются не просто так, а с определенной целью. У команды разработчиков тоже есть некая цель, которую необходимо достичь – создать программу. Эта большая главная цель делится на маленькие подцели для каждого участника процесса. Например цели команды программистов могут быть такими:

  • Добиться чтобы программа обеспечивала необходимую функциональность
  • Обеспечить при этом приемлемые характеристики – скорость выполнения и ресурсоемкость

Ключевыми точками на пути к достижению любой цели являются моменты принятия решений. В основном это выбор оптимального варианта реализации из нескольких возможных. В свою очередь для принятия решения человеку необходимы определенные знания и навыки. Вернемся к программированию. Любую программу можно представить как некую сущность, которая взаимодействует с процессором и другими частями компьютера. Следовательно для принятия решений в процессе разработки программы программист должен:

  • Знать устройство процессора и всего компьютера
  • Знать языки программирования
  • Уметь применять структурный подход к данным предметной области
  • Знать различные алгоритмы

Все это касается внутренней реализации программы, но как только хоть какая-то часть программы становится видна на экране, сразу меняется объект взаимодействия: видимая часть программы взаимодействует уже с человеком (пользователем).

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

  • удобной в использовании
  • максимально соответствующей процессу работы человека
  • приятной для восприятия
  • легкой в обучении
  • от работы с которой у пользователя возникает ощущение удовлетворения

Для достижения этих целей тоже нужно принимать решения, поэтому специалист по пользовательскому интерфейсу должен обладать знаниями в следующих областях:

  • психология человека и его поведения
  • принципы восприятия человеком окружающего мира (цвета, геометрические формы, композиция и т.д.)
  • общие эргономические принципы (что для человека является удобным)
  • применение ориентированных-на-пользователя (user-centered design) методов разработки интерфейсов (contextual inquery, usability testing, heuristic evaluation и т.д.)

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

  • Здравым смыслом. В простых случаях это еще может сработать, например если в окне только одна кнопка, вряд ли кто-то поместит ее куда-нибудь вбок, да еще так, чтобы она выходила за край окна, то для реальных программ этого уже недостаточно
  • Примерами из других программ. В этом случае результат может получиться каким угодно, ведь программист опять же не может оценить, насколько применимо это решение в той программе, и насколько оно подойдет в эту
  • Личными пристрастиями
  • Наобум

Результаты таких решений можно наблюдать повсюду. Причем такое положение дел сложилось только в области производства программного обеспечения, в остальных областях все в порядке. Возьмем к примеру строительство: любое здание сначала проектирует архитектор, а потом его строят строители. Архитектор разрабатывает не только внешний вид здания, но его внутреннюю компоновку основываясь опять же на том, для чего будет использоваться это здание, какие люди будут там жить или работать. Любое здание, построенное только строителями наверняка развалилось бы.

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

Вернуться в Колонку Автора