Дизайн пользовательского интерфейса. Искусство мыть слона — страница 1 из 12

Влад В. ГоловачДизайн пользовательского интерфейсаИскусство мыть слона

Благодарности

Сердечно благодарю моих коллег, сотрудников Usethics, общение с которыми всегда служило мне неиссякаемым источником новой информации и вдохновения.

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

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

Предуведомление

Чтобы эта книга могла избежать более суровой критики, чем та, которую она, несомненно, заслуживает, необходимо сказать несколько слов в качестве извинения и объяснения.[1] Как извинение, так и объяснение нужны потому, что в этой книге вовсе нет того, что есть во множестве других книг по теме — а именно описания процесса разработки интерфейса и эвристик проектирования.[2]

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

♦ Другие книги исповедуют иной подход, а именно трактуют дизайн интерфейсов как следование набору правил-эвристик («терминальные кнопки должны быть размещены справа внизу или справа сверху» и т. п.).[3] Авторы этих книг допускают, что если мы сделаем интерфейс по этим правилам, интерфейс получится хорошим. Этот вариант тоже не кажется мне плодотворным. Он напоминает мне изучение иностранного языка по словарю и грамматическому справочнику. Конечно, это приемлемо, но истинного знания языка так получить невозможно. Например, фразы «Коля пошел в школу» и «В школу Коля пошел» являются правильными как грамматически, так и орфографически. Только вот смысл у них чуточку разный…

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

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

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

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

Не читайте эту книгу!

Неотъемлемое право любого автора — писать о том, что он считает важным, и делать это так, как он считает правильным. Обратной стороной этого права является то, что если довести его до максимума, получится текст, который будет неприятно читать другим.

Я это право до максимума довел.

Соответственно, прежде чем начать, я хочу предупредить о том, что ждет вас, тов. читатель, дальше:

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

♦ Существует довольно много людей, предпочитающих книги, в которых всё расписано до мелочей (желательно, чтобы последняя глава называлась «Полная Инструкция для Работы, в Которой Есть Всё и Которую Можно Прочесть и Дальше Совершенно Не Думать Головой»), Эта книга, мягко говоря, не такая.

♦ Я верю, что почти любой человек может спроектировать прекрасный интерфейс (всего-то нужно чуть-чуть развитого эстетического чувства, чуть-чуть эмпатии,[4] чуть-чуть интеллектуальной честности), — но только если дать такому человеку очень много времени. Задача сделать прекрасный интерфейс в сжатые сроки гораздо более сложна и как таковая доступна не всем. Соответственно, я старался писать не о том, как сделать хороший интерфейс, а о том, как сделать интерфейс быстро и с максимальным КПД. Это сильно ограничивает изложение — о работах с низким КПД я просто старался не писать.

♦ Несколько раз я употребил обсценную лексику. Если вас коробит от невинного слова «какашка», немедленно переставайте читать — дальше будет только хуже.

Теперь вы знаете достаточно, чтобы решить, читать или не читать дальше.

Введение:Искусство мыть слона

«Писать книгу — это как мыть слона: трудно решить, с чего начать, и трудно понять, где слон уже вымыт, а где ещё нет».

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

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

♦ Какую часть слона вы начнёте мыть первой?

♦ Когда сочтёте её чистой и перейдёте к следующей части?

♦ Как, собственно, убедить других, что слон уже вымыт (у них может быть и, по-видимому, действительно будет своё мнение по этому вопросу)?

Эти три вопроса порождают другие вопросы:

♦ Как определить чистоту слона?

♦ Какую степень чистоты можно считать достаточной?

♦ Каким КПД должна обладать ваша работа по мытью слона? И как этот КПД можно улучшить?

И ещё мириады других.

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

Хочу сразу отметить, что хотя слово «придется» выглядит угрожающе, ничего страшного в нем нет. В вопросах нет ничего исключительного. Если у вас есть понимание, что вы делаете и зачем, отвечать на них легко. А понимание, в свою очередь, получить несложно.

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

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

♦ работать производительно, не совершая глупых ошибок

♦ ставить перед собой адекватные цели.

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

В начале моей карьеры всё это случалось и со мной, что было вредно как для нервов, так и для кошелька. Вам повезло — вы сможете научиться на чужом опыте.

Часть 1Продуктивная работа

Сделать плохой дизайн можно не только плохим процессом или игнорированием (или неимением) знаний, но и неадекватной, а значит, непродуктивной деятельностью.

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

Улучшайте, а не делайте хорошо

Большая часть артефактов, с которыми мы сталкиваемся, уже готовы. Архитектор уже спроектировал здание, в котором вы сейчас находитесь. Монитор, с которого вы сейчас читаете, уже сделан, как и стол, за которым вы сидите на уже сделанном стуле. Глядя вокруг, трудно не увериться, что все творения человеческих рук рано или поздно становятся готовыми.

Всё это оптический обман. На самом деле почти ничего не готово, а то, что таки готово, готово не потому, что оно действительно готово, а потому, что так получилось.