Skip to content

Latest commit

 

History

History
179 lines (106 loc) · 13.8 KB

README.md

File metadata and controls

179 lines (106 loc) · 13.8 KB
Sponsored by Evil Martians

Краткий гид по open-source движению или «как вкусно готовить open-source»

Ruby Russia 2018

Оглавление

Кому это нужно?

Документ составлен для тех, кто уже участвует в OSS-движении или только планирует первые шаги.

Цель — собрать рекомендации о том, зачем быть участником движения и как это делать в комфортных (для себя) условиях.

Что такое open-source движение?

Грубое определение - это подход к созданию продуктов (в т.ч. ПО, но не только) при котором доступным для использования становится не только результат, но и процесс его создания. Для распределения прав и возможностей всех участников процесса используют open-source лицензии.

(Подробнее о лицензиях смотри чем отличается Free Software Movement от Open-Source Software Movement)

Что делают участники движения?

Open-source software — программы, исходниками которых решили свободно поделиться их создатели. Однако, «создатель» — далеко не единственная роль в OSS-комьюнити

В последнее время качество open-source продуктов настолько выросло, что разработка стала включать в себя несколько этапов работы над составными частями продукта (документация, тесты, инструменты для установки, контроль версий). Все они нуждаются во внимании разработчика.

Поэтому, современные open-source проекты редко ограничиваются одним контрибьютором. Помощь может потребоваться на любом из этапов и оформляется в виде задач (Issue) на GitHub / GitLab / BitBucket. Задачи содержат ошибки или пожелания к доработке любой части программы.

Участники проекта могут:

  • писать код программы
  • исправлять ошибки
  • добавлять/править тесты
  • упрощать установку ПО
  • уменьшать размер программы
  • писать новую документацию или исправлять текущую (вплоть до исправления опечаток)

Любой «уход» за проектом — это вклад в open-source движение.

Зачем становиться участником open-source движения?

Поиск оптимального решения

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

Профессиональный рост

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

Публичный подход к разработке стимулирует и «внутреннего перфекциониста» писать на максимально высоком уровне.

Отдельно отмечу ценность опыта создания open-source проекта на основе закрытых приложений. Это тренирует изобретательность и открывает новые направления для развития.

Публично подтвержденный, переносимый опыт

Когда переходишь между проектами есть риск потерять собственные наработки, нажитые годами.

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

Навыки общения

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

Возможно, на профессиональной почве, ты захочешь завести новых друзей и знакомых, не важно, где живут твои новые приятели — просто дерзай :) С ними ты всегда можешь проконсультироваться...

Энтузиазм

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

Рецепт от этого — выбор правильного темпа работы.

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

Добровольное участие

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

Это также означает, что нет смысла вступать в ряды просто потому, что «модно» или «так делает твой друг». Если у тебя нет желания быть участником движения — не нужно. Возможно, твой интерес лежит в другой плоскости, это нормально.

Альтернатива есть?

Чтобы делиться опытом или иметь публично подтвержденные навыки ты можешь использовать и другие подходы: начни вести технический блог или устраивать сессии live-coding'а для решения технических задач, публикуй статьи на форумах/в соцсетях.

📖 Ссылки по теме:

Можно ли делать open-source и получать за это деньги?

OSS в контексте коммерческой разработки

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

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

К ним относятся:

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

📖 Ссылки по теме:

Коммерческое обеспечение open-source библиотек

Несколько известных open-source библиотек в итоге вышли на прибыль или самообеспечение.

Однако, по отношению к общему количеству проектов этот процент очень маленький (меньше процента). Так что не стоит рассматривать возможность заработать денег на open-source разработке в качестве основной мотивации.

Примеры:

Если ты «уже в теме», но чувствуешь что выгораешь и теряешь интерес к open-source разработке

Обсуждения среди коллег по цеху показали, что самые популярные причина усталости и выгорания среди open-source разработчиков — нарушение режима труда/отдыха и отсутствие баланса между вложением сил и отдачей.

Когда не хватает эмоциональной поддержки — ищи контакт с пользователями проекта. Сделай опросник и собери отклик с его помощью или запроси donations на кофе или пиво.

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

Как вариант — попробуй расставить жизненные приоритеты. Сделай это таким образом, чтобы open-source отвечал потребностям. Это может быть:

  • Сохранение наработок на будущее (для собственного использования)
  • Создание proof-of-concept нового решения
  • Сборка «говорящего» портфолио

Когда определишь, чем open-source движение поможет тебе в жизни, распределить приоритеты (а значит и затраты ресурсов) будет гораздо легче.

А иногда нам всем просто нужен отпуск :)

Резюме

Документ составлен в процессе подготовки к конференции RubyRussia 2018 и сам является open-source проектом. Если тебе кажется, что какая-то важная тема об open-source разработке не раскрыта или раскрыта недостаточно — Welcome to Issues and Pull Requests section :)

Contributors

Создан и отредактирован: