Эффективные пользовательские интерфейсы - PullRequest
5 голосов
/ 03 января 2009

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

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

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

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

Ответы [ 8 ]

10 голосов
/ 03 января 2009

У нас есть продукт в нашей линейке, который получил множество наград, в значительной степени благодаря его способности обеспечить большую мощность с более простым интерфейсом, чем любой из наших конкурентов. Я разработал интерфейс через несколько лет после того, как занял должность в одной из исследовательских групп Bell Labs по человеческому интерфейсу, поэтому у меня было достаточно четкое представление о том, что представляет собой «успех», когда я подошел к нему. У меня есть четыре рекомендации по созданию простых, но мощных интерфейсов.

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

Во-вторых, предложите согласованную компоновку между отображением данных и задачами. В нашем интерфейсе каждая «страница» отображает набор кнопок действий в одной и той же позиции и, где это возможно, использует одни и те же фактические кнопки. Таким образом, как только одна страница изучена, пользователь начинает изучать остальные. Одна из этих кнопок, которая всегда находится в отличительном положении, - это кнопка «Справка», которая подводит меня к пункту № 3. Более общее правило таково: найдите способы использовать обучение в одной области, чтобы помочь в изучении других.

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

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

Удачи!

2 голосов
/ 05 января 2009

Rant (или, я думаю, вы должны иметь в виду вещи):

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

Там есть разные люди. Пробел в обучении - это результат интереса, мотивации, интеллектуальных способностей и т. Д. Существует класс людей, которые никогда не будут беспокоиться даже о том, какое меню обеспечивает нужное им действие, и они будут каждый раз чистить меню. Существует также (меньшинство) класс людей, которые думают, что vim (или emacs) - лучшая вещь после нарезанного хлеба. Большинство людей, вероятно, находятся где-то посередине между этими крайностями.

Мой ответ на актуальный вопрос:

Я думаю, вы спрашиваете, как стремиться к быстрому интерфейсу. Ваш вопрос не был особенно понятен (для меня).

  • Прежде всего, будьте последовательны. Это помогает как скорость, так и обучаемость. Самосогласованность является наиболее важной, но согласованность с вашей средой также может быть важна.

  • Для реальной скорости требуется как можно меньше внимания и движения. Сочетания клавиш бывают быстрыми, потому что опытные пользователи знают, где они (им не нужно смотреть), а их руки уже на клавиатуре. Особенно избегайте принуждения пользователя менять свое положение перед компьютером (например, перемещая одну руку между мышью и клавиатурой).

  • Клавиатура почти всегда быстрее мыши.

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

  • Позволяет обойтись без самых мощных функций. Все, что вам нужно знать, чтобы выжить в vim - это «i, ESC,: wq,: q!». При этом вы можете использовать vi примерно так же, как многие люди используют блокнот. но как только вы начнете изучать «h, j, k, l, w, b, e, d, c» (и т. д.), вы станете намного эффективнее. Так что есть крутая кривая обучения, но вы можете обойтись, пока не преодолеете ее.

  • Имейте в виду, что если вы сосредоточитесь на эффективности интерфейса, вы, вероятно, ограничите свою пользовательскую базу. Vim популярен среди программистов, но многие программисты используют другие инструменты, и он практически неизвестен среди непрограммистов. Большинство людей хотят легко, а не быстро. Некоторые хотят баланса. Очень немногие просто хотят быстро.

2 голосов
/ 03 января 2009

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

Вопрос не просто в том, что «просто», некоторые люди прыгают прямо в пользовательский интерфейс и начинают писать материал для поддержки интерфейса, а не писать ядро ​​запланированной программы и затем планируют интерфейс для ее использования. *

Это относится к веб-приложениям, настольным приложениям ... или даже программам командной строки. Хороший дизайн означает написание пользовательского интерфейса после (и только после), когда вы уверены, что « scope creep » больше не возможен.

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

2 голосов
/ 03 января 2009

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

1 голос
/ 03 января 2009

Видели ли вы Gimp ярлыки ? Используйте приятные визуальные элементы управления и покажите им сочетания клавиш при наведении курсора - это поможет освоить быстрый режим. Если ваше программное обеспечение копирует некоторые действия других программ - скопируйте сопоставления ярлыков из них (такие как Копировать / Вставить / Новая вкладка / Закрыть окно / и т. Д.), Но разрешите динамически переназначить их, как показано в Gimp. Для собранных операций вы можете реализовать Action recoder. Но это зависит от типа программного обеспечения.

1 голос
/ 03 января 2009

Я хотел бы указать вам на старый блог Кэти Сьерры за мысли о «простоте в освоении» и «быстром применении» - я не обязательно согласен, что между ними должен быть компромисс.

Три сообщения для начала:

  1. Какой контроль должны иметь пользователи? В этом посте рассматривается вопрос о том, является ли «быстрое применение» идеалом, к которому мы должны стремиться.
  2. Опыт пользователя высокого разрешения говорит о том, что вы говорите о «нормальных людях» против других. Это не так много, что есть разные люди, но есть разные уровни обучения / опыта / участия. Некоторые довольны меньшим, некоторым нужно больше. То, как вы получаете от меньшего к большему, возможно, в значительной степени одинаково для всех.
  3. Наконец, Featuritis против пика Happy User говорит о ползучести scope , на которую указывает @ tinkertim.
0 голосов
/ 31 января 2009

Пока я писал мой собственный пользовательский интерфейс Я сам кое-что понял.

Я подражал vim, но в то же время понял, почему его так быстро используют для редактирования текста. Это потому, что это признает одну вещь: люди предпочитают делать одну вещь за один раз (вставлять текст, перемещаться, выбирать текст), но они могут часто переключать задачу.

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

Vim практически заполнен командами, каждая буква на клавиатуре делает что-то в vim, в зависимости от режима. Тем не менее я помню большинство из них. И все из-за режимов.

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

0 голосов
/ 03 января 2009

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

Если у вас не было возможности посмотреть презентацию Марка Миллера «Наука об опыте большого пользователя», я бы порекомендовал вам посмотреть телевизионные эпизоды DNR Часть 1 и Часть 2 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...