[Из песочницы] Контроль над ситуацией делает тебя счастливым

Привет, Хабр! Представляю вашему вниманию перевод статьи «Controlling Your Environment Makes You Happy» автора Джоэля Спольски.

Об авторе: Джоэль Спольски, совладелец Trello, Fog Creek Software и глава Stack Overflow

image


Большинство разработчиков С++ терпеть не могут программирование пользовательского интерфейса. Это удивительно, так как я считаю UI-программирование до смешного простым, понятным и увлекательным.

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

Думаю, разработчики боятся UI-программирования из-за страха перед UI-дизайном. В их понимании UI-дизайн похож на графический дизайн — загадочный процесс, подвластный только творческим «total-black-look» личностям со странным пирсингом, которые поглощают латте и создают приятные глазу штуки. Программисты же видят себя логиками-аналитиками: хороши в аргументации, в творчестве — нули. Посему уверены, что дизайн интерфейсов не для них.

Я же нахожу UI-дизайн структурированным и несложным. Чтобы овладеть им, необязательно получать диплом художественного колледжа и красить волосы в кислотно-розовый. Есть менее тернистый путь: применяй пару простых правил и улучшай интерфейс программы, над которой работаешь.

Я не буду издавать руководство «Дзен и искусство UI-дизайна». Это не связано с искусством или Буддизмом, это набор обоснованных правил для программистов. Полагаю, тебе не нужны инструкции по созданию строки меню: скорее, ты задумываешься, что в неё поместить, и нужно ли. Поэтому я научу тебя простому для понимания, но важному принципу хорошего пользова-тельского интерфейса.

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

image

Так было задумано. На самом деле кое-чего не хватало и расположение выглядело так:

image

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

Этим я занимался каждые десять минут с десяти вечера и до четырёх утра. Но были и другие сложности. Шестой конвейер не справлялся с весом в 180 кг, и мне приходилось делить тесто на десять частей гигантским ножом. Не хочу вдаваться в подробности, насколько это было тупо.

Сначала я паршиво справлялся. Эта работа казалась просто невыполнимой. Каждая кость моего тела ныла от боли, волдырь сидел на волдыре. Болели места, о существовании которых я не подозревал. Первое время я не успевал снабжать тестом конвейер. Пробелы на линии прово-цировали постоянные перебои: тесто с зазорами попадало в печь, и хлеб сгорал из-за меньшего объёма на постоянное количество энергии.

Иногда конвейер засорялся и останавливался, но миксер продолжал исправно работать. Проб-лема в том, что в тележке могло закончится место. Когда это случалось, я был вынужден мыть пол, смазывать его маслом, вываливать тесто, чтобы позже собрать. Это не лучший выход из ситуации, так как через 30 минут тесто начинало бродить, и хороший хлеб уже не получался. Тогда приходилось рубить его на куски по 5 кг и добавлять по одной части в каждый новый замес.

Но через неделю у меня стало неплохо получаться: 2 минуты отдыха на каждые 10 минут «тестового цикла». Я составил точное расписание и узнал, как приостановить миксер, когда происходил сбой в конвейере. Тогда я задумался, почему, как говорится в рекламе пива, некоторые дни лучше других.

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

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

Так проходили мои дни. Пучок небольших поражений плюс пучок маленьких побед. Что я получал в сумме? Даже небольшое расстройство влияет на настроение. Качество куда важнее масшта-бов, если речь идёт об эмоциях. Я заметил, что самые счастливые дни сопровождались множест-вом небольших побед и несколькими мини-неудачами.

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

Окей, давай всё-таки вернёмся к компьютерам. Предлагаю создать типичного пользователя Windows с именем Пит. Это помогает держать в голове образ при создании интерфейса. Чем реалистичнее воображаемый пользователь, тем проще представить, как он будет использовать продукт. Пит работает бухгалтером в техническом издательстве и в течение шести лет использует Windows на работе и дома. Он компетентен и подкован в техническом плане. Пит устанавливает собственный софт: читает компьютерные журналы и даже программирует простые макросы Word, чтобы облегчить секретарям процесс отправки счётов-фактур. У него дома стоит кабель-ный модем. Пит ни разу не использовал Macintosh: для него это дорого. «За ПК с 700 Мгц и 128 мб ОЗУ — слишком дох…», — окей, Пит, мы тебя поняли.

Как-то раз подруга Пита, Джина, попросила помочь ей с компьютером. У Джины Macintosh iBook, и она просто обожает полупрозрачные «коробки». Пит ненавидит эти штуки, поэтому взбесился, как только присел за компьютер. В итоге он помог подруге, но остался крайне недовольным: «У Macintosh нелепый пользовательский интерфейс». Нелепый? О чём это он? Все же знают, что у Макинтош изящный интерфейс, и вся фишка в простоте использования.

Вот мой анализ этой загадки. Хочешь перетащить окно на Макинтош — просто потяни за любой край. На Windows для перемещения используется панель заголовка, а если потянуть за угол, окно поменяет форму. Применяя этот принцип, Пит пытался расширить окно на Маке Джины, но оно предательски перемещалось. Когда на Windows всплывает окно сообщения, вы нажимаете Enter или пробел, и оно закрывается. На Mac OS пробел не сработает, придётся кликнуть мышью. Получив уведомление, Пит по привычке нажал на пробел, что убрать его. Это срабатывало последние шесть лет, но не в этот раз. Сам того не понимая, Пит начал долбить по клавише. Он был уверен, что Мак просто не зарегистрировал нажатие. В конце концов он воспользовался мышью, но успел понервничать.

Пит привык закрывать окно винды сочетанием клавиш Alt+F4. На Маке с их помощью меняется громкость. В какой-то момент Пит захотел щелкнуть на иконку Internet Explorer, прикрытую другим окном. Он зажал Alt+F4 для закрытия окна и тут же дважды кликнул по нужной иконке. Что ж, после этого ему предстояло закрыть два окна: операции сработали иначе.

Казалось бы, пустяки, но им удалось испортить Питу вечер. Парень пытался держать всё под контролем, однако ничего не вышло. Пробел и Alt+F4 «не работали», но в нашем восприятии это больше похоже на поломку. Непослушное окно будто подшучивало над Питом и перемещалось, вместо того, чтобы расширяться. Плохое окно. Даже это подсознательное, тонкое чувство неконтролируемости переходит в беспомощность, которая переходит в несчастье. «Я люблю свой компьютер», — рассказывает Пит. — Винда работает так, как мне нравится. На этих маках так сложно и неудобно. Одни расстройства. Если бы в Apple все эти годы работали над операционной системой, а не возились с Ньютонами, не было бы такой путаницы».

Мы прекрасно понимаем тебя, Пит. Но, несмотря на твои чувства, Macintosh очень удобен в использовании. Например, для пользователей Mac. Программисты Microsoft, которые, пред-положительно, копировали интерфейс Mac, думали, что добавляют новую классную функцию, позволяя изменять размер окон, протягивая любой край. Программисты Mac OS 8.0, вероятно, посчитали, что будет удобно перемещать окна с помощью краёв. Большинство войн, разжигаемых из-за пользовательских интерфейсов, сфокусированы на неправильных вещах. Windows лучше, потому что удобно изменять размер окна? Это не имеет значения. Фишка в том, что интерфейс должен соответствовать ожиданиям пользователя. Если это не так, пользователь будет чувствовать себя беспомощным. Как я, когда колеса тележки повернулись не в ту сторону, и я врезался в стену. Ты-дыщ!

Пользовательский интерфейс важен, так как он влияет на чувства, эмоции и настроение ваших пользователей. Если UI плох, то люди не смогут контролировать совершаемые операции, будут расстраиваться, а виноват в этом разработчик. Если интерфейс работает, как надо, то пользователи будут счастливы, потому что достигнут своих небольших целей. Ура! Сработало! Отличное программное обеспечение! Woohoo!

Осчастливить людей — значит дать им контроль над ситуацией. Для этого нужно правильно интерпретировать их действия. Итак, главное правило UI-дизайна гласит:

«Хороший пользовательский интерфейс ведет себя именно так, как от него ожидают»


Как говорил Гиггель: «Всё остальное — лишь комментарии». Остальные правила UI-дизайна — просто следствия.

Источник: Controlling Your Environment Makes You Happy
Перевод: cinnamongirl

© Habrahabr.ru