Документация к интерфейсу

4 апреля 2015

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

Почему так происходит? Проблема совмещения кроется в различных формах. Интерфейс — это информация «как есть», он описывает, что может система. (Хорошая) документация отталкивается от задач пользователя, описывает, что надо делать, чтобы получить результат. Поэтому интерфейс и документация могут не отображаться друг на друга один к одному. Например, стандартный список объектов с формой редактирования (интерфейс) может решать много задач (документируемых историй), таких, как создание, групповые операции и прочее.

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

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

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

Третья проблема в асинхронности. Например, если инструкция предусматривает настройку в интерфейсе и изменения где-то вне его, настройку других систем. В этом случае пользователю будет сложно сделать только одну настройку, а потом другую.

Второй вариант — адаптивный интерфейс с документацией (подразумевается адаптивность к опыту пользователя). Скажем, зашёл он в интерфейс первый раз, видит описание, куда он попал, для чего это нужно, что можно сделать. При повторных попаданиях в это состояние справка уменьшена, но есть возможность посмотреть полный вариант. При этом важно, чтобы элементы присутствовали в обоих вариантах на своих местах. Этого можно добиться, сохранив внешний вид для узнаваемости, но уменьшая размеры. Например, справка может «уехать» в сторону от интерфейса. Не стоит скрывать её за кнопкой / иконкой, если она изначально не была за ней (в развёрнутом состоянии), это сделает её неузнаваемой.

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