Книга: Джоэл и снова о программировании
Назад: Глава четырнадцатая. Выбор = проблема
Дальше: Глава шестнадцатая. Формирование сообществ с помощью программного обеспечения

Глава пятнадцатая. Не только юзабилити

6 сентября 2004 года, понедельник

В течение многих лет самозванные знатоки (вроде меня...) постоянно болтают о юзабилити и о том, что программы должны быть удобными для пользования. Якоб Нильсен знает математическую формулу, которую он раскроет вам за 122 доллара, — с ее помощью вы сможете рассчитать показатель юзабилити. (Надо полагать, если полученный показатель юзабилити больше 122 долларов, то вы в выигрыше.)
Я написал книгу, которая обойдется вам гораздо дешевле,— «Советы программистам по проектированию пользовательского интерфейса» («User Interface Design for Programmers», Apress, 2001),— в ней описаны некоторые принципы проектирования удобных программ, но формул там нет, и вы покупаете книгу себе в убыток.
На странице 46 этой книги я привел пример, взятый из популярнейшей на тот момент программы Napster. В главном окне Napster с помощью кнопок можно было переключаться между пятью экранами. Согласно принципу юзабилити для наглядности (affordance) здесь вместо кнопок следовало применить вкладки (tabs), что я и пытался объяснить.
Несмотря на это, Napster была самой популярной программой на свете.
В рукописи у меня было сказано: «Просто хотелось показать вам, что можно обойтись и без юзабилити», что было довольно странно для книги, посвященной юзабилити. И когда наборщику понадобилось сократить абзац, я с радостью вычеркнул это предложение.
Жуткий момент истины — по крайней мере, для профессиональных разработчиков интерфейсов пользователя —  здесь в том, что приложение,делающее что-то очень важное и нужное людям, будет популярным, даже если с ним крайне неудобно работать. А приложение с идеальным интерфейсом и никому не нужными фунциями обречено на провал. Консультанты по UI спасаются только тем, что разрабатывают все более невероятные формулы ROI для расчета прибыли их клиентов, вложивших 75 000 долларов в проект улучшения юзабилити, — именно потому, что юзабилити воспринимается как нечто «необязательное» (во многих случаях так оно и есть). Веб-сайту CNN консультант по юзабилити ничем не поможет. Смею предположить, что в Сети нет ни одного основанного на контенте сайта, которому улучшение его юзабилити поможет увеличить прибыль хотя бы на доллар, потому что сайты, основанные на контенте (я не о тех сайтах, что служат веб-приложениями), сами по себе чертовски практичны.
И все же.
Но сегодня я не собираюсь сетовать на ненужность юзабилити... она очень важна в исключительных случаях, и есть масса примеров, когда из-за плохой юзабилити гибли небольшие самолеты, наступал голод и мор и так далее.
Я хочу рассказать о следующем уровне задач проектирования программного обеспечения, когда с интерфейсом пользователя все решено: о проектировании социального интерфейса.
Видимо, надо пояснить, что я имею в виду.
В 1980-х, когда «изобрели» юзабилити, важной характеристикой программ было качество взаимодействия компьютера с человеком. Для многих программ это по-прежнему важно и сегодня. Но благодаря Интернету появились программы другого типа — те, что обеспечивают взаимодействие между людьми.
Форумы, социальные сети, предложение и поиск вакансий (чуть не забыл про электронную почту). Все соответствующие программное обеспечение служит для связи между людьми, а не между человеком и компьютером.
Разрабатывая программу для общения между людьми, после того как решите задачи интерфейса пользователя, вы должны решить задачи социального интерфейса. И социальный интерфейс гораздо важнее. Даже лучший на свете интерфейс пользователя не спасет программу с неудачным социальным интерфейсом.
Идею социального интерфейса лучше всего иллюстрируют несколько примеров успеха и неудачи.

Несколько примеров

Начнем с примера неудачного социального интерфейса. Каждую неделю я получаю письма от неизвестных с предложением подключиться к их социальной сети. Обычно автор мне незнаком, что слегка раздражает, и я удаляю письмо. Мне объяснили, откуда берутся эти письма: у компа-ний-производителей программного обеспечения социальных сетей есть специальные инструменты, которые извлекают адреса из вашей адресной книги и отправляют по ним приглашение подключиться к сети. Некоторые почтовые программы сохраняют адреса отправителей всех полученных сообщений, а при подписке на почтовый список рассылки «Joel on Software» вы получаете письмо с просьбой подтвердить свое желание, -и вот уже незнакомцы всех видов запускают программы, которые автоматически просят подтвердить, что я их друг. Спасибо, что подписались на мой бюллетень, но нет, я не познакомлю вас с Биллом Гейтсом. Я твердо придерживаюсь правила не вступать ни в какие из этих социальных сетей, поскольку меня не устраивает их подход, противоречащий сути реальных сетей человеческого общения.
Теперь взглянем на успешный социальный интерфейс. Многим легче что-то написать, чем сказать в лицо. Подростки меньше смущаются. Им проще назначать свидание, отправив текстовое сообщение на сотовый телефон. Эти программы оказались настолько социально успешными, что сильно улучшили любовную жизнь миллионов (или, по крайней мере, расширили круг их общения). Несмотря на кошмарный интерфейс систем текстовых сообщений, они стали крайне популярны у молодежи. Ирония в том, что в каждом сотовом телефоне есть гораздо более удобный интерфейс пользователя для общения между людьми: эта умная вещь называется телефонным звонком. Набираете номер — и другой слышит все, что вы скажете, и наоборот. Так просто. Но в некоторых кругах популярнее неуклюжая система, в которой, ломая пальцы, набираешь длинную строку символов, только чтобы сказать «ты чертовски хороша», потому что эта длинная строка символов приведет к свиданию, а озвучить то же самое тебе никогда не хватит духу.
Другой успешный социальный программный продукт — eBay. Впервые услышав про eBay, я сказал: «Чушь! Из этого ничего не выйдет. Никто не отправит деньги случайному человеку из Интернета, уповая, что тот, по доброте своей душевной, действительно вышлет покупателю какой-то товар». И многие так считали. Мы были трижды неправы. eBay сделал крупную ставку на культурную антропологию человека и выиграл. Замечательно в eBay то, что он достиг большого успеха именно потому, что в свое время подобная идея казалась ужасной, и никто в нее не верил, а тем временем eBay использовал сетевой эффект и преимущество первопроходца.
Помимо абсолютного успеха или провала у социального программного обеспечения могут быть побочные эффекты. От способа функционирования такой программы в значительной мере зависит тип складывающегося вокруг нее сообщества. У клиентов Usenet есть команда «большое R», позволяющая ответить на сообщение с одновременной вставкой цитаты из исходного текста, элегантно помеченной слева знаками >. В старых клиентах телеконференций не было ветвления, поэтому, желая ответить на чье-то конкретное высказывание, вы вынуждены были цитировать его с помощью «большого R». Так сложился присущий Usenet стиль дискуссий с точным построчным цитированием, удобный для буквоедов, но мешающий чтению. (Кстати, блогеры-политики, будучи новичками в Интернете и полагая, что открыли нечто новое и интересное, используют ту же технику, но под новым названием «fisking», о происхождении которого я умолчу. Не бойтесь, все прилично.) Несмотря на то что люди веками вели споры, мелкая особенность программного продукта привела к появлению особого стиля дискуссии.
Небольшие изменения в программе могут существенно повлиять на ее успех или неудачу в достижении социальных целей. Дана Бойд (Danah Boyd) подвергла резкой критике социальные сети Интернета в статье «Autistic Social Software» (www.danah.org/papers/Supernova2004-html), обвинив последнее поколение соответствующего программного обеспечения в том, что оно развивает у пользователей склонность к аутизму:
Рассмотрим, к примеру, недавний всплеск интереса к социальным сетям, таким как Friendster, Tribe, LinkedIn, Orkut и прочим. Эти технологии пытаются формализировать способы создания и регулирования отношений между людьми. Они позволяют присваивать рейтинг своим друзьям. Иногда они регламентируют способ установления контакта с новыми людьми, предлагая для этого четкую обязательную процедуру.
У такого подхода есть свои преимущества — он хорош для программной реализации, но ужас в том, что некоторые принимают его за модель общественной жизни. Он настолько упрощен, что, следуя ему, люди вынуждены вести себя как аутисты, которым для общения необходима определенная процедура. Метод, безусловно, полезен тем, кому показана подобная систематизация, но он далеко не универсален. Что принесет нам технология, предписывающая механистическое установление контактов? Хотим ли мы жить в обществе, где поощряется аутистическое взаимодействие?
Программное обеспечение, социальный интерфейс которого не учитывает культурную антропологию, на самом деле нелепо, неприятно и не действенно.

Проектирование социального программного обеспечения

Рассмотрим пример проектирования социального интерфейса.
Предположим, ваш пользователь сделал то, чего он делать не должен. Согласно правилам проектирования юзабилити вы должны сообщить пользователю, в чем его ошибка и как ее исправить. Консультанты по юзабилити преподносят такой стиль под фирменным названием «защитное проектирование» (Defensive Design).
Это слишком наивный подход для социального программного обеспечения.
Ошибка пользователя может заключаться в том, что он поместил рекламу виагры в каком-нибудь форуме.
Стало быть, вы сообщаете ему «Извините, тема виагры неприемлема. Ваше сообщение не принято».
Что будет дальше? Он все равно опубликует рекламу виагры (или будет долго зудеть по поводу цензуры и Первой поправки).
Проектируя социальный интерфейс, вы должны учитывать социологию и антропологию. В жизни встречаются халявщики, обманщики и прочие негодяи. И среди пользователей социального программного обеспечения найдутся те, кто приспособит его для собственного обогащения за чужой счет. Если не принять мер к явлению, которое экономисты называют трагедией общин.
Цель интерфейса пользователя — облегчить жизнь этому самому пользователю, а социальный интерфейс должен облегчить жизнь общества, даже если в результате отдельный пользователь что-то теряет.
Поэтому разработчик хорошего социального интерфейса может решить так: «Не будем показывать никакого сообщения об ошибке. Сделаем вид, что сообщение о виагре принято. Покажем его отправителю, и пусть он, довольный, идет в следующий форум. Но никому другому это сообщение мы показывать не будем».
Действительно, один из лучших способов уйти от атаки — сделать вид, что она успешна. Прикинуться мертвым, в программном смысле.
Нет, это срабатывает не в 100% случаев. Это срабатывает в 95% случаев, сокращая ваши проблемы в 20 раз. Это неопределенная эвристика, как и все прочее в социологии. Но она срабатывает часто, поэтому применять ее стоит, даже если она не абсолютно надежна. Русская мафия поднатужится и придумает схему фишинга, чтобы ее обойти. Простаки с трейлерных стоянок во Флориде в надежде быстро разбогатеть будут действовать по старинке. Авторы 90% спама, который я сегодня получаю, понятия не имеют о фильтрах, так что его не пропустил бы даже жалкий встроенный фильтр Microsoft Outlook, и надо быть полным ламером, чтобы слать спам, который перехватывается хилым поверхностным методом поиска элементарных кодовых фраз.

Маркетинг социальных интерфейсов

Несколько месяцев назад я понял, что создаваемые нами в Fog Creek программы схожи почти навязчивым вниманием к хорошей организации социального интерфейса. Например, в FogBugz есть масса функций (и еще больше не функций), цель которых— поощрить реальный учет ошибок. Время от времени покупатели сообщают мне, что их прежняя система контроля ошибок простаивала, не соответствуя представлениям людей о совместной работе, но когда появилась FogBugz, люди действительно стали работать с ней, привыкли к ней, и она изменила характер их совместной работы. Сделать вывод о том, что FogBugz действительно используется, можно на основании очень высокого коэффициента обновлений при выходе новой версии, и это значит, что FogBugz не просто пылится на полках, кроме того, даже клиенты, купившие много лицензий, обращаются к нам за новыми, поскольку продукт все шире распространяется в их организации и реально задействован. Я очень горжусь этим. Программы, рассчитанные на коллективное использование, часто не приживаются, так как требуют, чтобы все члены команды одновременно изменили стиль своей работы, что, как вам сообщат антропологи, весьма маловероятно. Учитывая это, в FogBugz внесено много проектных решений, благодаря которым программа оказывается полезной, даже если с ней работает единственный участник команды, а также много решений, содействующих постепенному распространению программы среди других участников, пока не будут охвачены все.
Программное обеспечение форума на моем сайте, которое вскоре начнет продаваться как одна из функций FogBugz, создано с еще большей заботой о хорошей поддержке социального интерфейса. В нем есть десятки функций, особенностей и проектных решений, в совокупности обеспечивающих очень высокий уровень интересных дискуссий и лучшее соотношение сигнал/шум среди всех дискуссионных форумов, в которых я когда-либо участвовал. Подробнее я расскажу об этом в следующей главе.
С тех пор я еще больше проникся идеей правильного проектирования социального интерфейса: мы привлекаем таких экспертов, как Клэй Шир-ки (Clay Shirky), пионер в этой области, вовсю экспериментируем на бедных участниках форума «Joel on Software» (иногда так тонко, что это практически незаметно, например, не показываем сообщение, на которое вы отвечаете, чтобы сократить цитирование и облегчить чтение ветви) и усиленно ищем новые алгоритмы очистки форума от спама.

Новая область

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

 

Назад: Глава четырнадцатая. Выбор = проблема
Дальше: Глава шестнадцатая. Формирование сообществ с помощью программного обеспечения