четверг, 18 августа 2011 г.

Зачем программисту учить юзабилити?


Я уже и не вспомню, как так получилось, что работая программистом, я стал читать книжки именно по юзабилити. Кажется, первая из них (Интерфейс-1 Головача) нашла невероятно бурный отклик в моей душе и поразила количеством лежащего на поверхности, столь важного, но почти никому неизвестного смысла. Оглядываясь назад, я хочу поделиться теми преимуществами, которые мне дала моя вторая область интересов (все-таки больше, чем хобби) для моей работы программистом. Мне неизвестно, насколько такая комбинация навыков уникальна, но то, что связка программирование-юзабилити совершенно убойная — я вам гарантирую. Итак, зачем программисту учить юзабилити?


Чтобы писать удобный код. Принципы восприятия и удобства использования обусловлены строением человека разумного, поэтому универсальны для компьютерных интерфейсов, дверных ручек, электроплит, кода. Зная юзабилити, начинаешь видеть вокруг каждого метода, каждой строчки не только какую-то сиюминутную или «главную» идею, но и миллиард других особенностей. Да, некоторые правила уже сформулированы эмпирически в программистской культуре — приоритет читаемости кода, оценки размера структурных единиц и т.п. Юзабилити дает систематический базис для всего этого — что более важно и насколько, например.Чтобы писать коллего-ориентированный код. Один из основных приемов проектирования интерфейсов — эмпатия, способность поставить себя на место другого человека. Не многие от рождения понимают, что другие люди совсем не такие, их проблемы, способы мышления, критерии — все устроено иначе. Так вот, чтобы писать код, который будет полезен кому-то еще кроме его автора, надо уметь забывать о себе и ставить себя на место другого человека.Чтобы научиться слушать и понимать других. Проектировщики интерфейсов хорошо знают, что то, что говорят люди, и то, чего они на самом деле хотят — две большие разницы. Навык делать то, что нужно, а не то, что попросили, можно в себе развить, но здесь, пожалуй, больше нужна практика.Чтобы отличать важное от неважного. У программистов свой, эгоцентрический взгляд на разработку продуктов, который, к сожалению, часто мешает увидеть свет хорошим и правильным вещам. Знание юзабилити в том числе позволяет прояснить некоторые связанные с этим «вопросы»: кто важнее, программист или пользователь (пользователь); кто виноват в том, что пользователь не может воспользоваться функцией продукта (разработчик); что важнее, хороший код или полезная функция (функция); волнует ли кого-то, как все это работает (нет, вообще нет, пока работает); интересно ли пользователям разбираться с вашей программой (нет), дурак ли пользователь (нет).Как следствие предыдущего пункта: чтобы видеть место кода в общей схеме, видеть картинку целиком и цель за облаками. Для эффективной работы это умение важнее любых технических навыков. (Я, к сожалению, видел, что может натворить неплохой технический специалист, полностью погруженный в себя).Чтобы делать интерфейсы самому. Не везде пока есть выделенный проектировщик, графдизайнеры на эту роль подходят плохо, и в общем на фоне тотального воинствующего невежества знание юзабилити можно сделать конкурентным навыком или хотя бы убрать очевидные ляпы и добиться того, чтобы ваш дорогой продукт не спустили в унитаз сразу же после выпуска.Чтобы общаться с дизайнером и проектировщиком на одном языке. Если фортуна благоприятна к вам и интерфейс делает профессионал, то знание юзабилити со стороны разработчика поможет снять значительную напряженность в общении (как известно, проектировщики и программисты тянут воз в кардинально разные стороны), ускорит это самое общение за счет общего словаря и отсутствия споров о давно проверенных вещах.Чтобы делать офигенные вещи. Обычно для создания полезной программы необходимы проектировщик (мозг) и программист (руки) (еще желательно, чтобы один из них обладал вкусом, но это за рамками статьи). Двум хорошим людям встретиться и работать гораздо труднее, чем одному, способному на обе роли. Правда, в силу кардинально различного мышления возникает риск шизофрении, но это невысокая цена за создание чего-то нового.Есть ли минусы? Вас начнут ужасно разочаровывать те интерфейсы и вещи, которые вы видите вокруг. Это обязательная составляющая прогресса, но мало ли, может, кому-то комфортно и не хочется никуда двигаться. В этом случае с изучением юзабилити стоит повременить.С чего начинать, я перечислял в конце своей предыдущей статьи Семь смертных грехов программных систем, которых в 2011-м году стыдно не замечать. Читайте, развивайтесь, меняйте мир!

Источник: HabraHabr

Комментариев нет:

Отправить комментарий