Руководство по UI дизайну для программистов

       

Не просто удобство использования


Joel on Software   Джоэл о программном обеспечении

 

Не просто удобство использования



Автор: Джоэл Сполски

Переводчик: Анар Мустафаев

06 сентября 2004

Годы и годы, самосформировавшиеся ученые мужи, такие, хех, как я, без конца болтают о практичности (usability) и о том, как важно сделать программное обеспечение удобным в использовании. Джакоб Ниелсен (Jakob Nielsen) приводит математическую формулу, которую он раскроет вам за $122, с помощью которой вы сможете подсчитать степень практичности. (Если ожидаемое значение больше $122, то, я думаю, вы получите прибыль).

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

В этой книге, на странице 31 я привожу пример, в то время, самой популярной программы на Земле – Napster. В главном окне этой программы для переключения между пятью экранами использовались кнопки. Согласно принцину доспупности (affordance) вместо кнопок в программе должны были быть вкладки (tabs), что я и объясняю.

И все же, Napster был самой популярной программой на Земле.

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

Но здесь есть пугающий элемент истины – пугающий, как минимум, для профессионалов пользовательского интерфейса: приложение, которое делает что-то действительно классное, которое люди действительно хотят, может быть душераздирающе неудобным в использовании, но оно все равно будет хитом. И наоборот, приложение может быть самым простым в использовании, но если оно не делает ничего, что было бы кому-то нужно, оно потерпит неудачу. Консультатнты по пользовательскому интерфейсу всегда защищены, разрабатывающие улучшаемые формулы возвращения инвестиций для своих клиентов, они всегда получат свои $75,000 за проект улучшения практичности, потому что практичность воспринимается как нечто “опциональное”, и страшная вещь состоит в том, что во многих случаях это так и есть. Во многих случаях. Сайт CNN ничего не выиграл бы от привлечения консультанта по пользовательскому интерфейсу. Я рискну предположить, что это не единственный контекстный веб-сайт, который не заработал бы и доллара от улучшения пользовательского интерфейса, потому что контекстные веб-сайты (я имею в виду, что они не являются приложениями) уже чертовски удобны в использовании.

И все же.

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

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

Я думаю, я должен это объяснить.

Все программное обеспечение в 80-х годах, когда практичность была “изобретена”, использовалось для взаимодействия между человеком и компьютером. Много программ и сейчас используюся таким же образом, но интернет принес нам новый тип программ: программ, которые предназначены для взаимодействия человек-человек.

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

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

Лучший способ проиллюстрировать социальные интерфейсы – это привести несколько примеров неудач и успехов.

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

Первый, неудачный пользовательский интерфейс. Каждый день я получаю электронной письмо от кого-то, о ком я никогда не слышал, призывающее меня стать членом его сетевого сообщества. Я чувствую себя несколько раздраженно, потому что, обычно, я не знаю этого человека и удаляю письмо. Кто-то сказал мне, почему это происходит: некоторые из компаний, содержащие эти сети, имеют инструмент, который пробегает по вашей адресной книге и посылает электронной письмо каждому из списка адресов призывая присоединиться к ним. Теперь добавьте сюда свойство некоторых программ для работы с электронной почтой коллекционировать адреса всех тех, кто писал вам и то, что вы получаете письмо-подтверждение, когда подписываетесь на бюллетень Joel on Software и вуаля: люди, которых я не знаю, запускают программы, которые непреднамеренно просят меня подтвердить что я их друг. Спасибо за то что подписались на мою рассылку, но нет, я не собираюсь представлять вас Биллу Гейтсу. Сейчас у меня есть правило не вступать ни в какие сетевые сообщества, потому что они бьют по самой сути работы сообществ сети.

Теперь давайте посмотрим на удачный социальный интерфейс. Много людей менее закомплексованны когда они стучат по клавишам, чем когда они говорят лицом к лицу. Тинейджеры менее стеснительны. С помощью текстовых сообщений они скорее пригласят кого-нибудь на свидание. Этот вид программ был настолько успешен социально, что он радикально улучшил любовную жизнь миллионов людей (или, как минимум, их светские календари). Даже несмотря на то, что обмен текстовыми сообщениями имеет ужасный пользовательский интерфейс, это стало чрезвычайно популярным у детей. Шутка состоит в том, что гораздо лучший пользовательский интерфейс встроен в каждый сотовый телефон для коммуникации между людьми: эта замечательная вещь называется “телефонные звонки”. После набора телефонного номера, все что вы скажите, услышит другой человек и наоборот. Это просто. Но это не так популярно в некоторых кругах, чем неуклюжая система, в которой вы ломаете большой палец набирая огромные строки номеров, чтобы сказать “черт ты горячая”, потому что строка цифр приведет вас на свидание, и у вас никогда не хватит кишки сказать “черт ты горячая” вашими голосовыми связками.

Другой пример успешного социального интерфейса это ebay. Когда я первый раз услышал о ebay, я сказал: “Ерунда! Это никогда не будет работать. Никто не будет посылать свои деньги какому-то человеку, случайно встреченному в интернете, который бы оказался настолько добр чтобы прислать какие-то товары.” Много людей думали также. Мы все были не правы. Не правы, не правы, не правы. Ebay сделал большую ставку на культурную антропологию человеческого бытия и выиграл. Великая вещь заключается именно в том, что это был большой успех именно потому, что, в то время, это было похоже на сумашедшею идею, поэтому никто ничего такого не пытался делать, пока ebay пользовался преймуществом первопроходца, застряв в эффектах сети.

В дополнение к абсолютным успехам и неудачам есть еще и побочные явления социального программного обеспечения. То как ведет себя социальное программное обеспечение, в большой мере, определяет как будет вести себя сообщество которое им пользуется. В клиентских программах USENET есть команда - большое-R, которая используется для ответа на сообщение цитируя первоначальное сообщение этими элегантными > (правая угловая скобка) в левой клонке. Раньше у читателей новостей не было отдельных потоков для тем, поэтому если вы хотели ответить на чье-то сообщение вразумительно, вы должны были пользоваться этой большой R. Это привело к особенному USENETовскому стилю ответа, построчному мелочному придирничеству (line-by-line nitpick). Это удобно для придиралы (nitpicker), но всегда неудобно для чтения. (Кстати политические блогеры, новички в интернете, заново изобрели эту технику, думая что они открыли что-то классное и новое, называют это фискинг (fisking), по причинам, в которые я не буду углубляться. Не волнуйтесь, они ни непристойны.) И хотя человечество ведет свои дискусии на протяжении столетий, маленькая особенность программного продукта породила абсолютно новый стиль дискуссии.

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

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

Хотя этот подход имеет свои достоинства, потому что это численно возможно, меня ужасает когда люди считают, что это моделирует социальную жизнь. Это так упрощенно, когда людей заставляют общаться процедурно, как будто бы у них аутизм. Этот подход определенно помогает тем людям кому нужна такая систематизация, но это не та универсальная модель, которая бы имела смысл. Кроме того, каковы последствия того, что данная технология  предлагает механистическое приглашение? Действительно ли мы хотим социальную жизнь, которая бы содействовала умственно неполноценному общению?

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

Создание социального интерфейса.

Позвольте мне привести пример создания социального интерфейса.

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

Хороший, практичный дизайн объясняет, что вы должны сказать им, что они делают не так и как это можно исправить. Консультанты по удобству использования предлагают это под маркой «Защищенный дизайн».

Когда вы работаете над социальным программным обеспечением, это слишком наивно.

Возможно вещь, которая была сделана неправильно, это опубликовать рекламу Viagra на форуме.

А теперь скажите им: “Извините, но Viagra запрещенная тема. Ваше сообщение удалено.”

Знаете, что они сделают?

Они разместят рекламу V1agra. (Либо это, либо начнут длинные скучные разглагольствования о цензуре и Первой Поправке.)

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

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

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

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

Нет, это не работает в 100% случаев. Это работает в 95% случаев, и это уменьшает ваши проблемы раз в двадцать. Подобно всему остальному в антропологии, это нечеткая эвристика. Это работает в большинстве случаев, поэтому это стоит сделать, даже если нет гарантии полной защиты. Русская мафия со своими хитроумными схемами, в конечном счете, разберется с этим. А какой нибудь идиот из Флориды, сидящий в трайлерном парке и пытающийся разбогатеть, попадется. 90% спама, который я получаю сегодня настолько безнадежно наивен, что может быть отсеян даже умилительным фильтром встроенном в Microsoft Outlook. У вас там попадется самый дурацкий спам, который может быть пойман этим поверхностным знанием поисковых фраз.

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

Несколько месяцев назад я обнаружил, что общая тема, которая используется в программах построенных в Fog Creek, почти всегда захватывает внимание настолько, что вызывает желание пользоваться правильными социальными интерфейсами. Например, в FogBugz (features), и еще больше не-особенностей (non-features), сделаных для того чтобы программой действительно пользовались для отслеживания ошибок. Снова и снова клиенты говорят мне, что их старое программное обеспечение для отслеживания ошибок не использовалось, потому что оно никак не стыковалось с тем как люди хотят работать вместе, но когда они развернули FogBugz, люди стали использовать ее, и привыкли к ней, и это изменило то как они работают вместе. Я знаю, что FogBugz работает, потому что у нас очень большая степень обновления, когда выходит новая версия, что говорит мне, что FogBugz - это программа не для книжной полки (shelfware), и еще потому что даже те клиенты, которые покупают много лицензий, снова возвращаются за новыми пользовательскими лицензиями, ведь продукт распространяется внутри организации и реально используется. Это именно то, чем я горжусь. Программы для совместного использования в команде обычно терпят неудачу, потому что требуют от каждого члена команды изменить способы совместной работы, а это как раз то, что антропологи считают наименее возможным. По этой причине в FogBugz масса дизайнерских решений призванных сделать удобным использование даже для одного члена команды, и множество особенностей дизайна, которые понемногу поощряют других членов к использованию этой программой до тех пор пока все не будут пользоваться ею.

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

С тех пор я еще более предан идее хорошего проектирования социального интерфейса: мы привлекаем экспертов, таких как Клэй Ширки (Clay Shirky) (пионер в этой области), мы проводим смелые эксперименты над гражданами форума Joel on Software (многие из которых незаметны для того чтобы быть виртуально недоступными, например, мы не показываем ваше сообщение до тех пор пока вы не уберете все цитаты для лучшего восприятия), мы много вкладываем в передовые алгоритмы призванные уменьшить спам на форуме.

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

Разработка социального интерфейса пока все еще находится в периоде становления. Я не знаю никаких книг на эту тему; только несколько людей работают над исследованиями в этой области, и пока еще не сформирована наука проектирования социального интерфейса. В ранние дни проектирования удобства использования программ, софтверные компании нанимали экспертов по эргономике и человеческому фактору, чтобы они помогли спроектировать удобные продукты. Эксперты по эргономике много чего знают о правильной высоте стола, но они не знают как разрабатывать графические пользовательские интерфейсы для файловых систем, потому то и возникла новая область. Со временем новая дисциплина вступила в свои права и провозгласила такие концепции как: логичность, доступность, обратная связь и другие, которые стали краеугольным камнем в науке проектирования пользовательского интерфейса.

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

Обсудите эту тему на Joel on Software .



В английском оригинале статья называется

 

Джоель Спольски - основатель , небольшой компании по
разработке программного обеспечения, расположенной в Нью-Йорке.
Окончил Йельский Университет, работал программистом и управляющим в
Microsoft, Viacom и Juno.

Содержимое этих страниц представляет собой мнение одного человека.
Всё содержимое Copyright ©1999-2005  by Joel Spolsky. All Rights Reserved.

| | |



Содержание раздела