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

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

    Чтобы писать удобный код. Принципы восприятия и удобства использования обусловлены строением человека разумного, поэтому универсальны для компьютерных интерфейсов, дверных ручек, электроплит, кода. Зная юзабилити, начинаешь видеть вокруг каждого метода, каждой строчки не только какую-то сиюминутную или «главную» идею, но и миллиард других особенностей. Да, некоторые правила уже сформулированы эмпирически в программистской культуре — приоритет читаемости кода, оценки размера структурных единиц и т.п. Юзабилити дает систематический базис для всего этого — что более важно и насколько, например.

    Чтобы писать коллего-ориентированный код. Один из основных приемов проектирования интерфейсов — эмпатия, способность поставить себя на место другого человека. Не многие от рождения понимают, что другие люди совсем не такие, их проблемы, способы мышления, критерии — все устроено иначе. Так вот, чтобы писать код, который будет полезен кому-то еще кроме его автора, надо уметь забывать о себе и ставить себя на место другого человека.

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

    Чтобы отличать важное от неважного. У программистов свой, эгоцентрический взгляд на разработку продуктов, который, к сожалению, часто мешает увидеть свет хорошим и правильным вещам. Знание юзабилити в том числе позволяет прояснить некоторые связанные с этим «вопросы»: кто важнее, программист или пользователь (пользователь); кто виноват в том, что пользователь не может воспользоваться функцией продукта (разработчик); что важнее, хороший код или полезная функция (функция); волнует ли кого-то, как все это работает (нет, вообще нет, пока работает); интересно ли пользователям разбираться с вашей программой (нет), дурак ли пользователь (нет).

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

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

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

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

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

    С чего начинать, я перечислял в конце своей предыдущей статьи Семь смертных грехов программных систем, которых в 2011-м году стыдно не замечать. Читайте, развивайтесь, меняйте мир!
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 31

    • НЛО прилетело и опубликовало эту надпись здесь
        +6
        Да, это один из самых очевидных плюсов — делать работу проектировщика.

        Зачем серверному программисту знать юзабилити? Чтобы потом бэкэнд сшился с фронтэндом без проблем. Бэкэнд определяет достаточно много потребительских качеств (скорость реакции системы, устройство бизнес-процессов, надежность), поэтому даже серверсайд программисту неплохо бы представлять, как то, что он делает, повлияет на использование системы конечными пользователями. Если он не знает точно, что и зачем он делает, успех продукта — только вопрос случая.
        • НЛО прилетело и опубликовало эту надпись здесь
            –3
            Сразу на ум приходит отрывок из Конан Дойла, отрывок из Этюда в багровых тонах о чердачке, который мы используем.
              0
              Мой пока не заполнен, и я бы не назвал описанные знания бесполезными. То есть, если бы Ватсон рассказал Холмсу, как именно он может использовать эти знания в своей работе (о чем моя статья), так просто откреститься от них не получилось бы.
                +3
                Не бывает бесполезных знаний. А мозги — они резиновые, туда всё влазит, чтобы там не думал по этому поводу Холмс.
              +1
              … «может и не так много как дизайнеры»…

              Не смешите людей. Дизайнер в большинстве свое умеет только рисовать «глянец». Обычно проектировщик пользовательского интерфейса и дизайнер разные направления в офисной жизни. Без специальных навыков и опыта, дизайнер не построит вам потрясающий в использовании UI, но без всяких сомнений этот UI будет божественным по красоте.
                +2
                Нет, у него все правильно написано — дизайнер о юзабилити должен знать куда больше, чем программист. В реальности, как вы и говорите, это к сожалению не так.
                  +1
                  Я считаю, что если команда нацелена на успех, если каждый хочет увидеть тот продукт, над которым он и его коллеги работают, то все специалисты такой команды должны быть развиты разносторонне. Конечно возникнет много вопросов, ответ на которые будут «Не лезь не в свое дело», НО! Если ты разработчик, то ты не только должен писать код под дудку начальника, говорящего тебе, что завтра он хочет видеть кнопку работоспособной, но и понимать, как эту кнопку будет нажимать пользователь и что он будет от нее ожидать. Каждый должен видеть не только свою область задач, но и помогать в остальных. «Одна голова хорошо, а две лучше» (С)
                  0
                  Дизайнеры — это как раз те кто обладает этими специальными навыками и опытом. А тех кто вместо работающего интерфейса рисует бестолковый глянец, я дизайнерами не считаю. Это скорее художники. Хотя у них на свой счет другое (как правило завышенное) мнение.
                  +1
                  Для того, кто делает серверную часть, пользователем является тот, кто делает клиентскую. Соответственно, у серверной части тоже есть свой интерфейс и своё юзабилити, определяемое простотой и удобством использования. Разумеется, к окошкам и цветомузыке это отношения не имеет. Но ставить себя на место пользователя своей системы всё равно нужно.
                • НЛО прилетело и опубликовало эту надпись здесь
                  • НЛО прилетело и опубликовало эту надпись здесь
                      +2
                      Лучше так: uibook2.usethics.ru/
                        0
                        Почитайте Раскина, Нормана, Купера. Это всё-таки столпы, основа. Потом уже можно читать более прикладные вещи.
                        0
                        Отличная статья. Я полностью согласен.
                        Конечно, сферическая команда в вакууме содержит в себе проектировщиков, дизайнеров, юзабилистов. Но на практике всё не так. Мы работаем на крупного заказчика, тем не менее, никого из перечисленных специалистов в штате нет. Многие члены команды так или иначе сталкиваются с UI. И не все даже способны кнопки ровно выставить на форме. Человек просто не видит, где и что нужно выровнять. Нету чувства прекрасного, или что ещё. Я уж не говорю таких вещах, как та, что нажатие на лейбл чекбокса должно его переключать. Так что я пользуюсь авторитетом человека, который может привести UI в порядок. И стараюсь в себе эти навыки развивать. Они действительно ценятся.

                        Хуже всего, когда люди открещиваются от необходимости знаний, как это делает юзер Zamorozka выше по тексту. Хороший разработчик должен понимать работу системы от начала и до конца. От градиента на кнопочке до машинных команд.
                          +2
                          Статья замечательна, о некоторых вещах задумался, и возможно зайду дальше. Как жаль, что часто руководство недооценивает важность юзабилити в целом.
                            –1
                            www.ozon.ru/context/detail/id/5508646/ все что Вы описали есть здесь
                              0
                              Это те самые эмпирические знания, накопленные программистской культурой, да. Но не все, необходимые для хорошего кода, и под ними нет системы, нельзя проследить, почему это работает, а это нет, можно только запомнить.
                              0
                              >Обычно для создания полезной программы необходимы проектировщик (мозг) и программист (руки)

                              Предположу, что имелся ввиду кодер?
                                0
                                Скорее кодер+тестер+сисадмин, то, что в веб-студиях называется «технолог».
                                +2
                                Круто! Хорошие мысли. А то иногда у людей проскакивает странное
                                  +1
                                  Друзья, не путайте юзабилити и пользовательское проектирование.

                                  А вообще, программистам достаточно знать всего одну вещь из мира проектирования — НИКОГДА не делайте диалоговые окна с подтверждением действий или с якобы полезной информацией. НИКОГДА.

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

                                  Если я жму на кнопку СОХРАНИТЬ — просто сделайте ее после сохранения неактивной. Не надо никаких радостных окон с сообщением об успешном сохранении — я это и так понял, не дурак.

                                  Если я открываю программу — я хочу начать с ней работать. Мне абсолютно все равно — вышло ли там новое обновление, хотите ли вы сделать программу лучше вместе со мной или же у вас есть миллион подсказок и советов. Мне это НЕ НУЖНО. Я хочу просто начать работать с программой.

                                  Ну и так далее :) В общем, самое главное — не бесить пользователя своей «заботой» о нем. И все будет классно!
                                    0
                                    Хорошая статья.
                                    Я как бывший программист и нынешний юзабилист-аналитик-тимлид-ПМ согласна по всем пунктам.
                                      0
                                      пост как-то не очень, а вот ссылка на ЖЖ понравилась
                                        0
                                        С паршивой овцы хоть шерсти клок :)
                                        +2
                                        «У программистов свой, эгоцентрический взгляд на разработку продуктов, который, к сожалению, часто мешает увидеть свет хорошим и правильным вещам.» — и не только у программистов, инженера точно такие же, никто не хочет признавать, что его творение не самое лучшее и оптимальное.

                                        А, вообще, я бы включал юзабилити в стандартный курс подготовки всех программистов и инженеров, ибо это довольно часто важнее всего остального.
                                          0
                                          А, вообще, я бы включал юзабилити в стандартный курс подготовки всех программистов и инженеров, ибо это довольно часто важнее всего остального.
                                          Как преподаватель технического университета скажу вам, что целиком курс юзабилити внести в программу в настоящее время очень тяжело из-за достаточно жестких стандартов, однако, я 1-2 лекции в семестр все равно уделяю этому вопросу, пусть и в ущерб некоторым другим «фундаметальным» вещам.
                                            0
                                            «Фундаментальность» в науке часто идет в разрез с требованиями современного производства.
                                            Очень хороший взгляд на эту проблему изложен в этой книге.
                                          +1
                                          Кстати, одна интересная штука про юзабилити софта, лично я хотел, чтобы все было как (должно быть) в iOS, т.е. закрыл прогу/прога покрашилась/выключил компьютер/кончилось электричество, открыл снова и ты на том же месте с теми же данными, ничего не изменилось, просто продолжаешь делать то, что делал прошлый раз. Тоже самое с настройками. Мы к этому идем конечно, но только как-то очень медленно и в обход:(
                                            0
                                            Есть ли минусы? Вас начнут ужасно разочаровывать те интерфейсы и вещи, которые вы видите вокруг.


                                            Si, amigo!

                                            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                            Самое читаемое