Книга: Психбольница в руках пациентов. Алан Купер об интерфейсах
Назад: 7. Ното logicus
Дальше: Программисты фокусируются на исключениях

Программисты поступаются простотой в угоду контролю

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

Контролировать людей является занятием менее привлекательным, на взгляд программиста. По Бронсон в своем романе The First $20 Million Is Always the Hardest («Первые двадцать миллионов долларов самые трудные») описывает, как побуждал программистов разыгрывать людей в целях показать им, что они могут контролировать их, но этот эксперимент показал, что программисты получают большее удовольствие, когда заставляют компьютеры подчиняться их власти.

Расплата за возможность все контролировать всегда приходит в виде дополнительных усилий и увеличивающейся сложности. Большинство людей готовы прилагать умеренные усилия для выполнения задач, но программистов в этом отношении отличает желание и способность мастерски овладевать системами с невероятной сложностью. Одно из самых приятных дел в работе программиста – управлять системами, состоящими из множества взаимодействующих компонентов. Пилотировать самолет – вот истинное призвание программиста. Приборная доска самолета пестрит множеством всяческих датчиков, рычагов и тумблеров, но программисты справляются с этими сложными элементами вполне успешно. Представители вида Хомо логикус считают такое занятие весьма забавным времяпровождением, несмотря на то (а точнее сказать – благодаря тому!), что скрупулезно осваивать управление приходится долгие месяцы. Человек вида Хомо сапиенс, напротив, выбирает полет в пассажирском салоне.

Для представителей Хомо логикус контроль является главной целью, а сопутствующая ему сложность – просто плата за достижение цели. Для обычных людей целью является простота, а платой за это, которую они готовы отдать, – отказ от возможности все контролировать. В программных продуктах возможность контроля выражается в различных функциях и опциях. Например, в операционной системе Windows 95 функция «Поиск файла» предоставляет мне возможность контролировать процесс. Я могу выбирать расположение на диске для осуществления поиска, указывать тип файлов, которые нужно найти, уточнять, нужно ли искать по именам файлов или по их содержимому, и другие параметры. Если смотреть на это взглядом разработчика, то это просто замечательно. Потратив чуть больше усилий и получив чуть более глубокое понимание сути вещей, он расширяет свои возможности и может выполнять поиск с большей скоростью и эффективностью. А вот со стороны пользователя все представляется не так радужно, ведь он вынужден указывать все нужные параметры, вроде места для поиска, типа файла и способа поиска по имени или по содержанию файла.





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

Программисты готовы променять успех на понимание

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

Один старинный анекдот про инженеров поможет чуть глубже разобраться с тем, что подразумевается под пониманием:

Встречаются как-то три приговоренных к казни человека: священник, адвокат и инженер. Первым на эшафот ведут священника. Палач тянет рычаг, отпускающий нож гильотины, но тот не опускается. Священник восклицает, что это божественное вмешательство, и требует освобождения, так что его выпускают на свободу. Следующим выходит адвокат. Палач снова тянет рычаг, и вновь ничего не происходит. Адвокат заявляет, что еще одна попытка будет считаться вторичным привлечением к ответственности за то же преступление, требует отпустить его и выходит на свободу. Наконец приходит черед инженера, он поднимается на эшафот и начинает тщательно изучать устройство гильотины. Палач тянет рычаг, и, прежде чем лезвие опускается на шею инженера, он успевает взглянуть вверх и воскликнуть: «А, так вот в чем была проблема!»

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

Когда я читаю лекции программистам, я всегда прошу поднять руки тех, кто в детстве разбирал часы, чтобы посмотреть, как они устроены. Обычно руки поднимают как минимум две трети присутствующих в аудитории. Следом я задаю такой вопрос: «А скольким из вас в итоге удалось собрать часы обратно?» – после этого опускается большая часть рук. Далее я спрашиваю, кто их них считает это неудачей? Почти все смеются, осознавая, что получают удовольствие, когда потрошат свои часы. Вид Хомо логикус стремится разобраться, как устроен часовой механизм, – это его конечная цель, и он легко готов пожертвовать работающими часами в обмен на понимание их сути. Его противоположность – Хомо сапиенс – любит, когда часы работают. Он стремится к тому, чтобы получить возможность знать, который час, и при этом он готов жертвовать знанием об их внутреннем устройстве.







Джонатан Корман, проектировщик взаимодействия, говорит так:

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

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

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

Назад: 7. Ното logicus
Дальше: Программисты фокусируются на исключениях