Код
#Интервью

Андрей Ситник: «Open Source — это религия»

Какого космонавта нужно вспоминать, если нашёл ошибку в коде, что самое клёвое в «Злых марсианах» и почему нужно отказаться от авторского права.

Изображение: Colowgee для Skillbox Media

Андрей Ситник

об эксперте

Ведущий фронтенд-разработчик в Evil Martians. Занимается продуктовой разработкой для стартапов и крупных компаний. Руководит распределённой командой инженеров и open-source-лихачей. Разрабатывал российский Groupon, сайт «Брейнвошинга», atata.com и даже немного «Хабрахабр». Создал «Автопрефиксер», PostCSS, «Браузерслист», «Логакс» и Nano ID.


соцсети


проекты


Андрей Ситник рассказал о своей работе, проектах и вере в Open Source.

О работе в «Злых марсианах»

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

Большинство клиентов «Марсиан» — из США и Европы: международные стартапы на стадии инвестиций серии A и B, выпускники Y Combinator и крупные компании, которые запускают внутренние стартапы.

«Марсиане» выпустили несколько своих продуктов для eBay, помогли выкатить новые сервисы в Gett, запустили «Рокетбанк» и разрабатывали российский Groupon.

Я работаю тут больше 12 лет и люблю «Марсиан» за то, что здесь всегда в приоритете нормальное общение и люди, а не бюрократия. Мы в первую очередь сообщество, смысл существования которого — делать разные крутые штуки.

Основатель «Марсиан» Саша Тищенко считает, что есть два способа делать что-то хорошее: делать плохо плохим людям или делать хорошим людям хорошо. Мы стараемся делать хорошее.

Официально моя должность называется «принципал». В «Марсианах» у нас есть несколько проектов, в каждом обычно задействован один фронтендер, один бэкендер, один дизайнер и так далее. Но фронтендеры из разных проектов хотят общаться друг с другом, несмотря на то, что пересечений по работе у них очень мало.

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

Мой рабочий день проходит так: просыпаюсь, потом сразу идут созвоны, потому что у меня менеджерская работа. Плюс ко всему я ещё и тимлид. А значит, должен закрывать таски, связанные с кодом и Open Source, вокруг тех проектов, которые помогают «Марсианам».

Самое классное в моей работе — мне выделяют время на собственные безумные проекты и Open Source. Это большая свобода. Я могу заниматься своим open source, воплощать в жизнь собственные идеи.

Ещё мне важно, чтобы работа была удалённой. Это одна из причин, почему я не рассматривал практически никого, кроме «Марсиан», особенно до COVID-19. Да, я готов продать своё рабочее время компании, но не готов продать свою жизнь. Иметь возможность путешествовать для меня — это значит нормально жить.

«Марсиане» дают мне ощущение, что мы делаем мир лучше и создаём хорошие проекты, которые реально могут что-то изменить. Я верю: то, как мы делаем «Марсиан», подаёт пример другим компаниям — и именно благодаря этому российский наём чуть более адекватен, чем американский.

У «Злых марсиан» есть проект «Культ марсиан». Это сайт, где мы выкатываем разные задачки, которые у нас появляются и которые надо сделать, но до которых по каким-то причинам у нас самих не доходят руки. Всё это — Open Source: задачи по нашим проектам, по проектам, которыми мы пользуемся, и по проектам, в которых нас что-то бесит и мы это что-то хотим исправить.

Open Source — это идеология

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

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

Андрей Ситник — автор опенсорс-проектов PostCSS и «Автопрефиксер», счёт GitHub-звёзд которых идёт на десятки тысяч.

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

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

Отказ от ограничений, то есть отказ автора от своих прав, позволяет идеям лучше циркулировать. А деньги чаще всего к вам придут — так или иначе. Однако такой подход экстраполируется не на все задачи, поэтому я не готов каждому автору говорить: «Откажись от своих прав». Однако если речь идёт об инструментах разработки, то чаще их будет легче продавать через модель Open Source.

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

А смысл Open Source в другом: не в том, что пользователь плюёт на автора и пользуется его трудом как пожелает, а в том, что авторы сами отказываются от своего права.

Да, этот принцип подходит не для всех продуктов. Но Open Source легко использовать для статей и книг — например, есть целый набор критериев, согласно которым произведение можно переводить, не договариваясь с автором.

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

За последние двадцать лет Open Source одержал невероятное количество побед, и его преимущества очевидны. Хотя у нас есть ещё вызовы — например, постараться в будущем не допустить ситуаций, подобных той, которая произошла с проектом Elasticsearch: в какой-то момент Amazon просто выпустил свою версию системы для облачной платформы AWS.

Современной разработки без Open Source не существует

Я тоже пишу open-source-проекты, и в основном меня знают по инструментам разработки для CSS: «Автопрефиксеру» и PostCSS.

PostCSS автоматизирует рутинные операции с CSS с помощью расширений. Сейчас его используют даже такие гиганты, как «Википедия», Facebook* и GitHub. Это очень гибкая платформа, которую каждый разработчик конфигурирует под себя. Однако по умолчанию, из коробки PostCSS ничего не делает — это просто фреймворк, в отличие от того же Sass.

«Автопрефиксер» — один из плагинов для PostCSS. Фактически он демонстрирует возможности PostCSS, например берёт и вставляет префикс «-webkit-» перед нужными свойствами. И подобных плагинов довольно много.

Ещё один интересный плагин для PostCSS — RTLCSS. Он помогает автоматически отзеркалить веб-страницу для языков, в которых текст читается справа налево (арабский или иврит). Суть в том, что такое направление письма влияет на восприятие пространства и даже на ощущение времени. Поэтому, когда вы переводите сайт на арабский, приходится отзеркаливать все его элементы: например, прогресс-бар должен двигаться в другую сторону. Делать всё это вручную — муторно и долго.

Вообще, как по мне, вся IT-индустрия существует благодаря набору концепций вокруг Open Source. Я люблю эту сферу в России за то, что в какой-то момент мы вынуждены были жить на осколках империи, в ситуации, когда система высшего образования и подготовки специалистов толком не работала. И мы полностью пересоздали сферу профподготовки, заменив нерабочую систему репутации, сертификатов, ГОСТов и так далее.

Мы создали действительно своё сообщество, которое очень эффективно готовит людей, обучает и в том числе создаёт свои инструменты. Создание инструментов разработки сейчас на 90% ведётся по модели Open Source. И получается, что современной разработки без Open Source не существует.

Вливаться в комьюнити через Open Source — отличная тактика

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

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

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

Это равнозначные виды деятельности: конечно, разработчик не обязан заниматься open-source-проектами. Нельзя говорить, что Open Source — единственный вариант. Но это один из способов влиться в сообщество по-настоящему, стать активным его членом. А стабильное участие в сообществе серьёзно прокачивает возможность трудоустройства и делает жизнь интереснее. Поэтому, если вам не подходят другие способы — выступления, участие в митапах и так далее, — вливайтесь в open-source-разработку.

Использовать open-source-проекты можно двумя способами. Первый — просто взять и почитать исходные коды. Я сам так делал — взял опенсорсный проект (Merb) и просто начал читать, пытаться разобраться в их коде. Это интересный способ, хотя его польза зависит от конкретного проекта. Например, часто у очень популярных и уважаемых open-source-проектов плохое качество кода.

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

Дело в том, что все сильные разработчики уже давно выучили какие-то основные сущности: они не могут посмотреть на документацию глазами новичка и увидеть её проблемы. А вы пока ничего не знаете, поэтому лучше пишете документацию и видите все слабые места: читаете, не понимаете и приходите исправлять. Это и есть лучший способ вкатиться в Open Source.

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

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

Всякий раз сталкиваясь с какой-то ошибкой, я думаю: «Может, забить? Может, промолчать? Может, это как-то само потом исправится?» — а потом вспоминаю этого космонавта и сообщаю об ошибке.

У нас популярна идея, что каждый должен быть опенсорсером: «часики тикают, а ты ещё не опенсорсер», «даст Бог Open Source — даст и популярность». Но это неправда. Я бы не рекомендовал начинать свои open-source-проекты без чёткого понимания, зачем вам это. Делайте их, только если понимаете, что вам нужно исправить в этом мире, или если у вас есть какие-то другие задачи. Но не идите в Open Source только потому, что кто-то вам навязывает такую модель. Это просто сделает вас более несчастным: ведь Open Source — это фултайм-работа, за которую никто не платит.

«Злые марсиане» приносят мне основную часть дохода. Также небольшие деньги приносит Open Source — но только потому, что мои проекты стали популярны. Однако это не те деньги, на которые можно прожить. Своим основным заработком я полностью доволен. И мне не нравится идея, что мы должны постоянно максимизировать свой доход — я бы, например, лучше обменял часть дохода на свободное время.

* Решением суда запрещена «деятельность компании Meta Platforms Inc. по реализации продуктов — социальных сетей Facebook* и Instagram* на территории Российской Федерации по основаниям осуществления экстремистской деятельности».

Изучайте IT на практике — бесплатно

Курсы за 2990 0 р.

Я не знаю, с чего начать
Научитесь: Профессия Python-разработчик Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована