GOMS-анализ юзабилити интерфейса

  • Tutorial
image

Данная статья практически полностью основана на цитатах из книги Джефа Раскина «Интерфейс — новые направления в проектировании компьютерных систем» с моими дополнениями и воссозданием приводимого в книге примера интерфейса.

Быстрый ответ на вопрос стоит ли использовать GOMS-анализ для проверки юзабилити: «Если вы проектируете интерфейс, при работе с которым от задержки в 0,3 сек. никто не умирает — не стоит.».

Итак, «The model of Goals, Objects, Methods, and Selection rules» (GOMS) — это метод исследования интерфейса, разработанный Кардом, Мораном и Ньюэллом в 80-х годах. GOMS позволяет предсказать, сколько времени потребуется опытному (именно опытному) пользователю на выполнение конкретной операции при использовании конкретного интерфейса.

Теперь, когда мы привыкли к этому странному для русского уха термину, можно описать его суть.

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

Жесты и время по модели GOMS


  1. H (перенос руки на мышь) = 0,4 сек
  2. К (нажатие клавиши клавиатуры или мыши) = 0,2 сек
  3. Р (перенос курсора к позиции на экране) = 1,1 сек
  4. М (обдумывание следующего шага) = 1,35 сек
  5. R (ожидание ответа системы) — время зависит от быстродействия конкретной системы и не участвует в расчётах.

В дальнейших расчётах Жесты будут заменяться буквенными обозначениями из списка выше и будут называться «Операторы».

Ниже пойдут довольно замысловатые правила работы с этими самыми жестами (операторами). Пока просто прочитайте их, а дальше я всё объясню на примере.

Правила расстановки операторов


  • Правило 0. Начальная расстановка операторов M
    Операторы M надо ставить перед всеми операторами K (нажатие клавиши), а также перед всеми операторами P (указание с помощью мыши), предназначенными для выбора команд (например, указание на выпадающий список); но перед операторами P, предназначенными для указания на аргументы этих команд (например, конкретный пункт в выпавшем списке), ставить оператор M не надо.
  • Правило 1. Удаление ожидаемых операторов M
    Если оператор, следующий за оператором M, является полностью ожидаемым с точки зрения оператора, предшествующего M, то этот оператор M может быть удален. Например, если вы перемещаете мышь чтобы нажать кнопку по достижении цели, то в соответствии с этим правилом следует удалить оператор M, устанавливаемый по правилу 0.
  • Правило 2. Удаление операторов M внутри когнитивных единиц
    Если строка вида M K M K M K… принадлежит когнитивной единице, то следует удалить все операторы M, кроме первого. Когнитивной единицей является непрерывная последовательность вводимых символов, например «4564.23» или «Константин Константинопольский».
  • Правило 3. Удаление операторов M перед последовательными разделителями
    Если оператор K означает разделитель, стоящий в конце когнитивной единицы (например, тире между двумя днями «понедельник — четверг»), то следует удалить оператор M, стоящий перед ним.
  • Правило 4. Удаление операторов M, которые являются прерывателями команд
    Если оператор K является разделителем, стоящим после постоянной строки (например, точка в конце предложения, которая каждый раз вводится в неизменном виде), то следует удалить оператор M, стоящий перед ним. Добавление разделителя станет привычным действием, и поэтому разделитель станет частью строки и не будет требовать специального оператора M. Но если оператор K является разделителем для строки аргументов или любой другой изменяемой строки, то оператор M следует сохранить перед ним.
  • Правило 5. Удаление перекрывающих операторов M
    Любую часть оператора M, которая перекрывает оператор R, означающий задержку, связанную с ожиданием ответа компьютера, учитывать не следует.

Применение метода


Дано:

Юзера просят перевести температуру из Фаренгейта в Цельсий или наоборот. Например, могут попросить: «Переведи, 3,5 градуса по Фаренгейту в градусы по Цельсию». Значение температуры юзер может ввести только с помощью клавиатуры или мыши.

Задача:
Спроектировать интерфейс, где время на перевод значений температуры минимально.

Условия
Для простоты, будем считать, что юзер вводит значения максимум из двух символов и юзер не совершает ошибок.

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

Решение. Вариант 1


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



Расчёт


Н (руку на мышь) + М (думаем) + Р (ведём курсор к радио-группе) + К (клик) + М (думаем) + Р (курсор к полю) + К (клик) + Н (перенос руки с мыши на клаву) + М (думаем) + К (ввод первой цифры) + М (думаем) + К (ввод второй цифры).

По правилу 2, удаляем лишние М и получаем:
Н + М + Р + К + М + Р + К + Н + М + К + К

Если выбрано НЕ подходящее направление конвертации температур, то получаем:
0,4 + 1,35 + 1,1 + 0,2 + 1,35 + 1,1 + 0,2 + 0,4 + 1,35 + 0,2 + 0,2 = 7,85 сек

Если выбрано подходящее направление конвертации температур, то получаем:
0,4 + 1,35 + 1,1 + 0,2 + 1,35 + 0,2 + 0,2 = 4,8 сек

Решение. Вариант 2


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



Расчёт


Н (0,4) + М (1,35) + Р (1,1) + К (0,2) + Р (1,1) = 4,15 сек

Этот вариант реализации «юзабельней» первого на 0,65 сек.

Погрешность метода


Раскин пишет, что с помощью этого метода можно предсказать, сколько времени понадобится пользователю на его задачи с абсолютной погрешностью менее 5%.

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

Моё мнение о GOMS анализе


Когда я только узнал о нём мне захотелось немедленно начать его использовать во всех своих проектах. Мне казалось, что вот оно — избавление от извечных мук выбора «как правильней». Без субъективщины и трендов. Реальная «тупая» математика. Но на деле, чтобы описать даже самый примитивный интерфейс, надо потратить раза в два больше времени чем на его проектирование. А потом всё равно придётся спроектировать альтернативный вариант чтобы посчитать и его. И даже если в итоге я узнаю какой вариант лучше, окажется, что он лучше на 0,65 сек. Потратить 3—4 часа чтобы выиграть 0,65 сек — это мощно.
Тем не менее я, считаю, что метод всё равно классный и его стоит использовать, но в каких-то супер важных интерфейсах в которых даже 0,65 сек имеют значение. В большинстве же проектов логичней положиться на свой опыт и постфактум просто спросить юзеров, как им удобнее.

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


P. S.


Существуют и модификации GOMS анализа. Например, «Сritical-path method GOMS» (CPM-GOMS) и версия, называемая естественным языком GOMS (natural GOMS language, NGOMSL) в которой учитывается поведение неопытного пользователя, например время, необходимое ему для обучения. Об этих версиях вы можете прочитать самостоятельно.

Similar posts

AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 4

    +1

    В 2003 году я с коллегой использовал GOMS для проекта Росгосстрах, чтобы прикинуть, сколько нужно было нанимать операторов, которые вводили данные по страховке ОСАГО (накануне внедрения в России). Методика позволила оценить какое минимальное количество операторов необходимо для ввода данных по всем автомобилистам страны.


    Не знаю, как бы мы сделали эту задачу без GOMS'а. В итоге, оценка оказалась близка к реальной — наняли порядка 15 тысяч операторов.

      0
      М, интересный кейс. Не рассматривал GOMS для подобных целей.
      0
      Немножко грустно видеть статью про GOMS в 2020. Прошло 20 лет с момента выпуска книги. Взять любой современный интерфейс — какую-нибудь мощную форму. Придется садить коллектив на обсчет GOMS. Неужели не было других тем для проработки, Женя?)
        0
        Да чёт не придумал другой темы. Ну и хотелось хоть раз максимально задротскую (для меня) статью написать с расчётами и прочим. Но, статья не зашла, кстати. В след-й раз будет что-то более простое )

      Only users with full accounts can post comments. Log in, please.