Включите исполнение JavaScript в браузере, чтобы запустить приложение.

Как участвовать в open source проектах

15 сен 2024
Как участвовать в Open Source проектах, подготовка к участию, взаимодействие с сообществом, работа с документацией

Введение: почему стоит участвовать в open source 

Open source — инициативы с открытым доступом к исходному коду, которые в основном разрабатываются и поддерживаются ИT-сообществом. Это означает, что структура и методы работы таких разработок доступны для общего просмотра: любой желающий может принять участие в их разработке.

Эта работа — результат личной инициативы, которая не оплачивается. Исследователи подсчитали, что если бы ядро Linux разрабатывалось на коммерческой основе, его стоимость к 2010 году превысила миллиард долларов, причем большая часть этих средств ушла бы на оплату труда.

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

Расскажем, как поучаствовать в open source проекте.

Подготовка к участию в open source

Изучение необходимых навыков и инструментов

Основной площадкой для работы над проектами с открытым исходным кодом является GitHub. Здесь размещено более 100 миллионов репозиториев с кодом. Сейчас набирают популярность и альтернативные платформы, например, GitVerse. Такие платформы напоминают социальные сети, однако они предназначены не для общения, а для совместной работы и хостинга разработок. После регистрации пользователю доступен личный аккаунт со статистикой по его вкладам и достижениям. Здесь можно представить себя, отметить любимые репозитории. Работать на GitVerse удобно не выходя с сайта. В нем есть все нужные инструменты: 

  • файловый менеджер, 
  • встроенный редактор кода, 
  • система отслеживания изменений.

Участие в open source доступно не только профессиональным программистам. Владельцы таких разработок оценят любой вклад: от написания текстов до организации мероприятий.

Для старта в open source, как и в любом другом проекте, есть несколько условий. Требования к hard skills очевидны: необходимо уверенно владеть выбранным стеком технологий. Однако soft skills также играют важную роль, помогая лучше адаптироваться к новому проекту. На этом этапе главными личными качествами являются: 

  • дисциплина, 
  • умение общаться, 
  • готовность к совместной работе в команде, 
  • способность к обучению и самостоятельному изучению. 

Кроме того, разработчику следует внимательно оценивать порог входа, поскольку в open source могут встречаться задачи, с которыми даже программист уровня senior может разобраться не сразу.

Выбор подходящего проекта

Выбор первого open source проекта на GitHub может показаться непростой задачей. Вот несколько рекомендаций на начальном этапе.

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

2. У «живого» проекта есть два важных показателя:

  • число звездочек — аналог лайков;
  • дата последнего обновления. 

Менее 300–400 звездочек — признак того, что проект может быть еще неопытным или очень локальным, а возможно, даже заброшенным.

3. Если проект давно не обновлялся, то ваши предложения могут остаться незамеченными на некоторое время. 

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

Первые шаги в open source проекте

Разберем, чем можно заняться в рамках open source специалистам с разным опытом и навыками.

Способы внесения вклада:

  1. Организация семинаров, встреч и конференций между участниками, а также поиск идей для выступлений.
  2. Создание дизайна: от разработки макетов сайтов до создания иллюстраций для статей. Для работы с макетами можно создать тему на CMS WordPress. С иллюстрациями и другими изображениями желательно работать в специализированных контентных репозиториях.
  3. Написание или редактирование документации, наполнение учебных пособий по образовательным проектам, а также перевод текстов. Более четверти вкладов в open source приходится именно на эту категорию. К примеру, можно внести свой вклад в написание документации для веб-разработчиков на платформе doka.guide или помочь проекту freeCodeCamp с разработкой бесплатных курсов.
  4. Помощь в управлении. Вы можете искать варианты, как улучшить организацию взаимодействия в команде или проводить обсуждения более эффективно.
  5. Участие в качестве представителя проекта. Это включает в себя ответы на вопросы новых пользователей, модерацию дискуссий и других каналов коммуникации. Чаще всего это делается в дорожных картах на GitVerse и обсуждениях на Хабре, но сначала узнайте, не возражает ли против этого команда.
  6. Помощь в разработке кода, проверка чужих решений. При наличии опыта вы можете выступать в роли ментора, находить баги и предлагать идеи по улучшению проекта. Либо даже писать код самостоятельно, помогая реализовать на практике идеи всей команды.

Лучшие практики для участия в проектах

Взаимодействие с сообществом

Один из ключевых инструментов для участия в проектах с открытым исходным кодом — система контроля версий Git. Перед началом работы стоит познакомиться с ее основами. Кроме того, полезно ознакомиться с инструментом GitHub UnlimBot, который помогает разработчикам автоматизировать процесс написания кода.

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

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

При отправке запроса на внесение изменений в репозиторий (pull request) обязательно создайте свою ветку, в которой будете вносить изменения. Если вы работаете с основной веткой (master), убедитесь, что любые изменения согласованы с куратором перед их внесением.

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

Работа с кодом и документацией

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

Каждый проект имеет свои технические процессы. С ними важно ознакомиться перед тем, как предложить свои изменения. Например, в PostgreSQL все процессы жестко регламентированы: изменения в коде подаются в виде патчей через электронную рассылку основным разработчикам, контролирующим каждое изменение. С другой стороны, есть инициативы, такие как Parrot, где разработчики могут делать коммиты в основную ветку репозитория. Если проект использует GitVerse и аналогичные платформы по работе с кодом, процесс может осуществляться через pull request, то есть через запросы на включение внесенных изменений. Каждая разработка уникальна в своих процессах и подходах.

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

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

Например, если вы предпочитаете писать тексты и владеете иностранными языками, есть много способов применить свои навыки на практике:

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

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

Заключение: как ваш вклад способствует росту и развитию open source

Участие в проектах open source — это возможность для прокачки собственных навыков, будь то создание чего-то нового или улучшение уже существующего. Неважно, только ли вы начали изучать основы HTML или являетесь опытным разработчиком на PHP или C++, в мире открытых проектов достаточно возможностей для айтишников с разным уровнем навыков. 

Вот что получают программисты благодаря участию в open source:

  • возможность изучать чужие решения для применения их в рабочих задачах или для собственного обучения;
  • развитие профессиональных навыков и установление новых деловых контактов благодаря совместной работе с более опытными коллегами;
  • возможность публикации собственных решений для получения обратной связи и дальнейшего совершенствования или для расширения своего портфолио;
  • работодатели могут достаточно объективно оценить уровень квалификации кандидата по его участию в открытых инициативах;
  • возможность для опытных разработчиков заниматься творческими задачами и экспериментировать с новыми технологиями.

Для компаний также выгодно разрабатывать open source решения по следующим причинам:

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

Треть из первых 40 инженеров, нанятых компанией GitLab, ранее внесла свой вклад бесплатно. Это означает, что команда, ответственная за open source, хорошо знает своих контрибьюторов, а последние, в свою очередь, хорошо знакомы с продуктом, над которым они работали.

Google открыла более 2,5 тысяч репозиториев для совершенствования технологий и повышения своей репутации на рынке. Некоторые компании готовы платить за участие в открытых проектах для продвижения бренда работодателя. Гиганты российского ИT-рынка, такие как Яндекс, Авито, Сбербанк, также активно участвуют в open source.

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