Дизайнер, архитектор и разработчик

За последние шесть лет я добился успеха с тремя моими компаниями («Cube6 Media», «Gravatar» и «GitHub»), и потерпел неудачу с парой других проектов. Я много думал над тем, как все получилось, и определил 3 основных роли, которые необходимы для создания успешных веб-приложений: дизайнер, архитектор и разработчик.

В колледже я провел много времени в комнате с тусклым красным светом, погружая фотопленку и листы бумаги в реактивы. Я вставлял негативы в проектор, и печатал изображения на фотобумаге. Это меня впечатляло. каждый раз, когда я включал яркий свет проектора, я вспоминал поговорку: «Фоторгафия — не более чем рисование светом». На секунду задумайтесь об этом. Когда мы смотрим на фотографию — мы видим только свет, который попал в кадр. Никакие вспышки, софт-боксы, отражатели и задники не помогут вам сделать хорошую фотографию, если свет, который они создают или отражают, направлен неверно. Плохой свет — плохая фотография.


Я думаю, что эта метафора хорошо подходит для веб-разработки. Адаптируя сказанное к нашей ситуации, я бы выразился так: «Веб-приложение — не более чем UX, созданный дизайнером». Пользователь не видит, технологии, которые вы используете в проекте, и не видит, используете ли вы гибкие методологии. Все, что получает пользователь — это интерфейс на экране. Очень важно, чтобы этот интерфейс не сбивал с толку, хорошо выглядел, и не имел проблем с орфографией. Плохой User Experience — плохое приложение. Все просто.

Хороший дизайн создают хорошие дизайнеры. Кто-то в вашей команде должен не только уметь создавать красивые интерфейсы, а еще и делать их удобными для пользователей. Я не могу подобрать слова, поясняющие на сколько важен хороший интерфейс.

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

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

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

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

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

Автор: asheee

Источник

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