July 5, 2008

Четыре книги о usability

Все упоминаемые здесь книги были найдены по рекомендации сайта usethics.ru. Три из них ориентированы на программистов. Две стоит прочитать каждому, занимающемуся промышленным программированием. Одна обязательна к изучению для проектировщиков UI.

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

Книга Джефа Раскина в этом смысле исключение, единственное среди известных мне изданий на русском.

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

Первое, за что автору надо сказать большое спасибо, — он дает методику оценки качества интерфейса, результат которой выражен числом, принципы объективного сравнения эффективности взаимодействия человека с разными системами (глава 4, "Квантификация").

Но дальше — еще увлекательнее. Достаточно прочитать раздел, посвященный организации поиска, чтобы навсегда прекратить holy war Linux vs. Windows или OS X vs. Vista. Вывод получается неутешительный: большинство существующих пользовательских интерфейсов и концепций подвергают пользователя насилию, заставляя смиряться с ненужными и неудобными вещами. Одним из примеров таких артефактов служит иерархическая файловая система, метафора непонятно чего, путающая пользователя, комфортная лишь для программиста.

Эта книга — абсолютный must have для проектировщиков интерфейсов, почти учебник и почти справочник. Обязана быть на рабочем столе.

Работы Алана Купера и Дэвида Платта ("Психбольница в руках пациентов" и "Софт — отстой. И что с этим делать?") относятся как раз к нелюбимому мною типу американских изданий, где пара-тройка полезных идей и с полдюжины примеров (по большей части отрицательных, как не надо делать) размазаны на две с половиной сотни страниц.

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

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

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

«Психбольница» ориентирована на программистов. Здесь рассматриваются истоки проблем с неудачно спроектированными программными комплексами, неправильные предпосылки дизайна и организации процесса разработки. Отлично замечена тенденция превращения всей бытовой техники в компьютеры (будильник скрещенный с компьютером=компьютеру), из-за чего этой техникой становится невозможно пользоваться. Приводится несколько рекомендаций и даже разбирается подробно метод "проектирования для персонажа", позволяющий уйти от создания ненужных функций в продукте и сконцентрироваться на реально необходимых вещах.

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