Я не буду этого делать
Откажись от плохих идей
Недавно я размышлял: чем начинающий разработчик отличается от сеньора? Оказывается, дело не в глубоком знании определенных технологий или инструментов, не в умении писать красивый и безупречный код.
Главное и важное отличие программистов различной квалификации - в способности отказываться от плохих идей или предложений.
Так, в этом году я узнал, что если вовремя не сказать “нет” представителям отдела маркетинга, в один прекрасный день на сайте окажутся несколько десятков “жизненно необходимых” сценариев аналитики, и о достаточной производительности веб-ресурса останется только мечтать.
Если на определенном этапе не остановить программистов, половину приложения будет составлять React, четверть Vue и оставшуюся четверть - код, происхождение которого знает только его создатель, и то, скорее догадывается, чем знает.
Если не останавливать дизайнеров, Вашему вниманию будут представлены тысячи похожих компонентов, вгоняющих в ступор всю команду, работающую над проектом.
И, наконец, если не говорить “нет” проектным менеджерам и руководителям проектов, в собраниях и построениях схем оптимального взаимодействия будет потеряно время, необходимое для создания действительно эффективного адаптивного производительного веб-ресурса с дружелюбным интерфейсом.
Разработка сайтов хороша тем, что Вы можете самостоятельно реализовать большинство своих идей, изучив за пару недель основы HTML, CSS и JavaScript.
Я пришел к выводу, что для создания действительно качественного и запоминающегося сайта не нужны особые навыки или годы оттачивания мастерства, превращающие Вас в настоящего волшебника в глазах окружающих.
Все что Вам нужно - это сдержанность.
Но! Проблема работы в крупномасштабных проектах, вовлекающих сотни специалистов, заключается в том, что Ваше “нет” обычно равняется творческому и профессиональному самоубийству. Поэтому Вам приходится учиться отвергать идеи так, чтобы Ваше “нет” не звучало, как глупая шутка. Для этого Вы изучаете максимум информации о производительности, доступности и адаптивности веб-ресурсов. Ведь Вам придется объяснять, что такое frontend на совершенно различных уровнях.
Вот почему самая сложная часть Вашего “нет” - поиск оправдания, объяснение причин, по которым предложенная идея является действительно плохой для создаваемого веб-сайта.
Еще более сложной частью Вашего “нет” является понимание того, что сама разработка сайтов и frontend неинтересны никому, кроме нас. Никто не думает и не беспокоится о странных языках и конструкциях, которые мы используем. И, конечно же, никто не думает о производительности и доступности, до тех пор, пока эти непонятные слова не превратятся в реальные проблемы.
Все вышесказанное напомнило мне отрывок из статьи Робинсона Мейера (Robinson Meyer) для “The Atlantic” об угрозах, которые несет изменение климата, и о том, что решение таких проблем является “скучным как грязь” (boring as dirt) или, сокращенно, BAD:
Проблема BAD указывает на то, что изменения климата интересны практически всем, потом что они носят массовый, пугающий и апокалиптический характер. А бедствия, сопровождающие эти изменения, особенно ураганы, лесные пожары и наводнения, весьма популярны в средствах массовой информации. В то же время, мероприятия направленные на управление климатом не пользуются такой же популярностью. Обычно, эти технические и технократические процессы просто скучны. Они никогда не будут такими же монументальными и неотвратимыми, как изменения климата. Наводнения полны сил, а управление стоком ливневых вод - загадочный и непонятный процесс. Лесные пожары пожирают все на своем пути, а модернизация линий электропередач утомительна.
Изменения климата - наглядны и пугающи, решения этих проблем - скучны и неинтересны. Вот так выглядит проблема BAD.
Проблема BAD есть и в веб-разработке. Например, изменения производительности сайта приводят к ужасающим проблемам, в том случае когда ресурс не может быть загружен или блокируется только потому, что свою работу постоянно выполняют несколько десятков скриптов третьих производителей.
Что можно сказать о решении такой проблемы?
Необходимо определить блокирующие скрипты. Найти их обладателей в организации (например, маркетолога). Выяснить цели использования такого кода и его реальную пользу. Наконец, нужно удалить неэффективные скрипты. Такое решение является проблемой BAD: Вам необходимо объяснять важность такого решения, и, даже, если оно будет жизненно необходимым, во многих организациях Вас вряд ли будут слушать.
Как же избежать безразличия к решениям проблем веб-разработки.
Необходимо определить соответствие создаваемого ресурса целям бизнеса организации. Нужно доносить до заказчиков необходимость внедрения определенных техник. Например, объясняйте для чего нужен адаптивный интерфейс, когда говорите про CSS. И каждый раз доносите до всех вовлеченных лиц, результаты работы, которая зачастую использует много ресурсов, но не привлекает внимание заказчиков.
А что же делать, когда поступит очередная плохая идея или инициатива?
Максимально аккуратно и вежливо скажите “НЕТ”
Спасибо за внимание.
Перевод статьи Robin Rendle “No, Absolutely Not”