Нужно ли дизайнеру уметь писать код?

Давняя дискуссия

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

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

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

Лично я нахожусь на том этапе карьеры, когда стремление совершенствовать навыки работы с кодом возникает скорее из любопытства, чем по необходимости. Я шесть лет проработал дизайнером, вообще не прибегая к программированию. Конечно, это не означает, что я не работаю с кодом. Я сравниваю это с овладением устным и письменным языками. Если вы переедете во Францию, то в конце концов выучите несколько фраз на французском языке. Это не значит, что вы сразу начнете грамотно писать и говорить по-французски или читать в подлиннике Бальзака. Но находясь довольно долго во франкоязычной среде, вы адаптируетесь настолько, что усвоите базовые понятия, необходимые для вашей деятельности.

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

Переход к этапу сборки

До недавнего времени мне было важно создавать идеальные до последнего пикселя макеты. И я нисколько не жалею об этом. Для меня было очень важно научиться создавать идеальные дизайн-файлы. Автоматизировать что-либо следует только после того, как научишься делать это вручную. Для меня, как новичка, необходимо было научиться создавать проекты промышленного качества с точностью до пикселя, чтобы называть себя “дизайнером” и выполнять соответствующие задачи. Пропустить этот карьерный шаг наверняка было бы ошибкой.

Однако в определенный момент отдача от такой работы снижается. Когда вы докажете себе, что способны создать идеальный дизайн, почувствуете, что вам этого недостаточно. Причина кроется в другом уроке: реализация  —  это совершенно иная территория, где обитают самые разнообразные “дикие звери”, с которыми не столкнешься в спокойной обстановке создания дизайн-файлов.

Командная работа превращает мечту в реальность

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

Парная работа, основанная на тайм-боксинге, позволяет внести в дизайн 10% изменений и сэкономить 50% времени.

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

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

ПО создается людьми

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

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

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

Читайте также:

Читайте нас в Telegram, VK и Дзен


Перевод статьи Skyler Schain: Getting to the build phase

Предыдущая статья10 ключевых концепций JavaScript
Следующая статья5 неочевидных истин науки о данных