Неудобство интерфейсов

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

Например, обновление интерфейса входа в систему непрерывной интеграции Jenkins привело к тому, что галочка «Запомнить меня», снятая по умолчанию, переместилась ниже кнопки «Войти». Несмотря на то, что новый интерфейс визуально более привлекателен, при использовании этой формы ввода имени пользователя, нажатия клавиши табуляции, ввода пароля и нажатия Enter недостаточно — теперь после ввода пароля следует либо нажать клавишу табуляции два раза, установить флажок клавишей пробела и лишь потом подтвердить ввод клавишей Enter, либо установить флажок мышью и нажать на кнопку «Войти». Обе операции выливаются в дополнительные затраты времени (связанные с нажатиями или с переносом руки с клавиатуры на мышь), которых можно было бы избежать: находись флажок выше или будь он установлен по умолчанию (среда CI — не тот продукт, которым часто пользуются с общественных компьютеров невнимательные, технически неграмотные люди), типовой вход с сохранением учётных данных выполнялся бы меньшим количеством нажатий.

Новый интерфейс Skype при запуске выводит окно приветствия с кнопкой «Войти или создать». Данный экран даже не предоставляет пользователю выбора (поскольку обе операции выполняются одной кнопкой, и ветвление происходит позже), однако требует от него в обязательном порядке щёлкнуть на кнопке, после чего приложение снова тратит заметное время на подгрузку следующего экрана. Удаление этой заставки не лишило бы пользователя каких-либо возможностей, однако избавило бы от необходимости выполнять рутинную операцию. Ещё один «грех» окна Skype — в том, что после входа оно всегда возникает в центре экрана в уменьшенном виде, даже если пользователь всегда разворачивает его на весь экран. Наконец, приложение не запоминает, на каком дисплее оно было запущено — при каждом запуске окно приходится перемещать вручную, если пользователь привык держать обмен сообщениями на дополнительном мониторе.

Интерфейс вики-системы xWiki спроектирован без учёта того, каким образом производится работа с ней. Каждое наведение курсора на поле редактирования основного текста страницы приводит к появлению бессмысленной экранной подсказки вида «Это — поле ввода», закрывающей часть текста. Окно вставки ссылки заставляет выполнять такую частую операцию, как выбор внешней ссылки вместо внутренней, в два лишних клика: первый щелчок разворачивает выпадающий список с типами ссылок, и лишь второй выбирает внешнюю ссылку, несмотря на то, что ввод URL вместо названия страницы уже указывает на использование внешней ссылки вместо внутренней. К тому же, после переключения режима поле ввода адреса оказывается заполнено мусором, который нужно удалить прежде, чем можно будет ввести требуемое значение.

Зачастую проблемы с использованием интерфейса возникают вследствие неумелых попыток повысить его удобство. Так, интерфейс сайта ФНС России при входе в личный кабинет запрашивает ИНН; чтобы помочь пользователю избежать ошибок при вводе, поле ввода игнорирует нажатия любых клавиш, кроме цифровых — включая комбинацию клавиш, используемую для вставки текста. Таким образом, ИНН приходится либо вставлять при помощи мыши через контекстное меню, либо вводить вручную. Поле ввода даты в интерфейсе ВТБ Бизнес-Онлайн также содержит защиту от ввода некорректных данных, которая, увы, срабатывает после нажатия каждой клавиши. Типовая операция — замена даты в копируемом документе — в итоге выглядит так: пользователь вводит две цифры числа, и курсор перемещается в первую из двух позиций в поле ввода месяца. Если требуется заменить девятый месяц на десятый, то после нажатия на клавишу с единицей система заменяет некорректное значение «19» на «1» и переводит курсор в первую позицию номера года; после этого пользователю приходится возвращаться на два шага назад, снова вводить единицу и лишь потом — ноль.

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

Разумеется, операционная система не может гарантировать удобства пользовательских интерфейсов всех выполняемых под ней программ. Тем не менее, она может предоставить пользователю выбор по части того, какими он хочет их видеть. «Сивелькирия» делает это несколькими способами.

Во-первых, возможность использования произвольного интерфейсного модуля с любой программой позволяет, к примеру, выбрать окно мессенджера по вкусу без необходимости менять платформу, на которой осуществляется общение: ситуация, когда можно сменить надоевший компьютер, но нельзя отказаться от раздражающего цвета окна приложения, попросту комична, учитывая несоразмерность усилий. Возможность выбора интерфейса запускает в действие обычные законы спроса и предложения: если решение (в данном случае — интерфейсное), предоставляемое «по умолчанию», оказывается неудобным для статистически значимой категории пользователей, то вскоре появляется альтернатива, направленная на удовлетворение их потребностей. В отличие от классических операционных систем, в данном случае речь не идёт о необходимости перестраивать весь рабочий поток из-за смены приложения: меняется лишь интерфейс, а суть выполняемых программой функций остаётся неизменной.

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

В-третьих, все существующие элементы управления и другие интерфейсные решения доступны в одном месте — в каталоге центрального репозитория. Разработчики новых программ могут выбирать готовые, многократно протестированные решения вместо того, чтобы набивать шишки самостоятельно.

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