Мир всем!
Привет. Так получилось, что на своей работе я начал сталкиваться с проектированием пользовательских интерфейсов. Несколько человек, на протяжении нескольких лет, говорили мне, что мои интерфейсы очень хреновые и плевали в экран монитора, когда видели их. Невозможно измерить количество слюны, которое было потрачено пользователями при работе с моими системами. Поэтому, я призадумался над этим. Не, вообще, мне мои интерфейсы нравятся, но я подумал, что не могут же все так ошибаться. Поднял свои старые системы, которые ещё писал в универе, посмотрел, они были правы. Отсюда был сделан, вывод нужно подтянуть навыки дизайнера и юзабилити. И в качестве, учителя, я выбрал классику - "Психбольница в руках пациентов" Алана Купера. Написана она была в далеком 2005 году, уже тогда достаточно остро встала проблема юзабилити.
Вообще, слово usability образовано от слова usable - удобный, таким образом usability - дисциплина, главная цель, которой - увеличить удобство использования какого-либо инструмента для пользователя.
Автор этой книги, сам бывший программист, который столкнулся с проблемой потери производительности целых компаний из-за неудобства пользовательского интерфейса. Дух его книги доказательный, он все силы бросает на то, чтобы доказать, что такая проблема есть, пытается углубиться в её суть, детали. Он приводит много фактов, чтобы мы поверили в неё. Часто он углубляется настолько глубоко, что доходит до философских рассуждений.
В начале, он описывает много разных случаев, когда встречался с трудностями при работе с компьютерами. Потом пытается найти виноватых в этой трудности, но не может.
Например, он описывает одну историю: "В декабре 1995 года рейс 965 компании American Airlines вылетел по регулярному маршруту из Майами в Кали, Колумбия. На подлете к посадочной полосе пилоту Боинга-757 потребовалось выбрать следующий радиомаяк по имени "ROZO". Он набрал букву "R" в своем навигационном компьютере. Компьютер отобразил перечень ближайших радиомаяков с именами на "R", а пилот выбрал первую позицию в списке, потому что широта и долгота показались ему верными. К несчастью, вместо "ROZO" пилот выбрал маяк "ROMEO", расположенный в 210 километрах к северо-востоку. Самолет направлялся на юг и находился в тот момент в долине, пролегающей с юга на север, так что любое отклонение от курса было опасно. Следуя показаниям полетного компьютера, пилоты начали корректировать курс к востоку, и самолет врезался в гранитный пик на высоте трех километров. Сто пятьдесят два пассажира и восемь членов экипажа погибли. Четыре пассажира выжили, получив серьезные травмы." Затем, он начинает размышлять Кто же виноват в этом? Всё это переходит в достаточно философские рассуждения о информации и веке информации, в целом. "Полученная информация может быть точной и полной, но при этом трагически некорректной. Это происходит слишком уж часто, когда мы общаемся с компьютерами, а компьютеры проникли во все аспекты современной жизни." После такого заявления, автор пытается привести другие примеры из разных сфер деятельности человечества. Поэтому, следующие его главы носят такие названия: "Что получиться если скрестить комп с фотокамерой?", "Что получиться если скрестить комп с будильником?", "Что получиться если скрестить комп с автомобилем?", "Что получиться если скрестить комп с банком?", "Коммерческое программное обеспечение тоже страдает", "Что получиться если скрестить комп с военным кораблем?". После каждой главы, автор в чем-нибудь обвиняет компьютер, он бросается такими фразами: "Программное обеспечение полетных развлекательных систем работало с безупречной точностью, но не умело взаимодействовать с людьми, и поэтому его внедрение закончилось полным провалом", "Возмутительное поведение и невразумительность взаимодействий, присущие продуктам, основанным на программном обеспечении, наделяют законным статусом режим, который я называю «апартеидом программного обеспечения»", "По сути дела, от природы компьютерам ничего не присуще: они просто действуют, повинуясь программе. А программы пластичны так же, как человеческая речь. Человек может говорить грубо или вежливо, угрюмо или любезно. Так же легко, как человек способен вежливо говорить, компьютер может уважительно и с почтением себя вести. Требуется лишь, чтобы кто-нибудь объяснил, каким образом. К сожалению, программисты не слишком успешно учат компьютеры подобным вещам. " после всего этого он как-то подводит итог - "Компьютер позволяет легко попасть в беду". Самое главное, что проблема очень глубока, с одной стороны она корнями уходит в область владельцев бизнеса, которые вкладывают деньги в продукты, с другой в область программистов, которые сами по себе отличаются от других людей.
Когда я читал эту книгу и слышал такие обвинения, я задавался вопросом "Почему тогда люди вообще пользуются такими программами, если они плохие?", на что позже был дан ответ - мы пользуемся ими, потому что других нет. Мы научили компьютер работать как-то и это уже нам кажется достижением. "Танцующий медведь", так обзывает автор, наши программы - пофигу, что это медведи, но ведь они танцуют.
Поэтому люди пользуются ими.
Автор делит всех людей на два типа: апологеты и уцелевшие.
Апологеты - это люди, которые любят компьютерную сложность. Им нравятся разбираться в огромном наборе функций продукта. Им нравиться ковыряться в продукте, познавать его, им нравятся чувствовать превосходство над другими людьми. Когда они всё же изучат продукт, говорят: "это же легко, достаточно запомнить, что нужно нажать три раза туда и пять раз сюда и всё будет работать как нужно".
Уцелевшие - это люди, которые не любят компьютерную сложность, они не хотят сильно париться и поэтому говорят, что компьютер - это слишком сложно для них, и вообще перестают им пользоваться.
Программисты, которые делают все эти программы, как раз относятся к апологетам. Они защищают компьютер и не считают, что их программы сложные. Они просто не видят этого. Они проектируют пользовательский интерфейс для апологетов и думают, что это будет удобно всем.
На самом деле причин усложнения интерфейса и появления неудобных программ очень много и в книге они достаточно тщательно описываются, тут приведу лишь список:
- Люди, управляющие созданием продуктов, основанных на программном обеспечении, либо являются заложниками программистов, будучи недостаточно подкованными технически, либо слишком сочувствуют программистам, потому что сами таковыми являются.
- Проектирование взаимодействия и проектирование интерфейса разные вещи.
- Реализация в продукте некоторых "дополнительных возможностей" (которые в итоге никому не нужны, но добавили сложность в интерфейс, и не только).
- Система проектируется для "универсального" пользователя, она не разделяет профессионалов и дилетантов.
- Вечная борьба программистов, проектировщиков и дизайнеров.
- "Сначала напишем код, а потом спроектируем взаимодействие".
- Программисты полностью рулят ситуацией. Именно они определяют, сколько времени займет реализация каждой возможности, и поэтому могут перемещать требования в конец списка, просто посчитав их трудоемкими.
- Руководители отказываются тратить деньги на специалистов проектирования взаимодействия.
- Прототипирование плавно переходящее в рабочий проект.
- Программу нужно устанавливать. Почему её нельзя сразу запустить?
- Программа постоянно забывает пользователя. Новый запуск программы - новый пользователь.
- Программы ленивы. Они не дают пользователю, что ему конкретно нужно, а если и дают, то пользователь сам должен проделать кучу работы.
- Программы скупы на информацию. Они либо скрывают нужную информацию для пользователя, либо показывают не нужную.
- Программы не гибкие, они не знают о стрессовых ситуациях, они не могут подстраиваться под условия.
- Программы возлагают вину на пользователей. Если программа сталкивается с проблемой, она неизменно возлагает проблему на пользователя, да ко всему еще и обвиняет его в возникновении проблемы.
- Программы не несут ответственности. Скажешь ей "erase all" и она просто это сделает.
Далее, Алан Купер, описывает психологию разработчиков, взаимодействие разработчиков и владельцев корпораций, в которых они работают в рамках развития продукта, крупнейшие провалы и победы программ с точки зрения взаимодействия.
Так проходит половина книги. В следующей половине, автор делится своим собственным опытом проектирования программного продукта для самолета, описывает различные методики, которые применяла его команда для этого. Например такие:
- Выделение конкретных персонажей, проектирование для конкретного персонажа, и конструирование продукта на основе предпочтений этих персонажей.
- Проектирование ориентированное на результат. Разделение целей пользователя.
- Пользовательские сценарии.
Комментарии
Отправить комментарий