- Кому это нужно?
- Что такое open-source движение?
- Что делают участники движения?
- Зачем становиться участником open-source движения?
- Альтернатива есть?
- Можно ли делать open-source и получать за это деньги?
- Как бороться с выгоранием?
Документ составлен для тех, кто уже участвует в OSS-движении или только планирует первые шаги.
Цель — собрать рекомендации о том, зачем быть участником движения и как это делать в комфортных (для себя) условиях.
Грубое определение - это подход к созданию продуктов (в т.ч. ПО, но не только) при котором доступным для использования становится не только результат, но и процесс его создания. Для распределения прав и возможностей всех участников процесса используют 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 разработки — добровольность вложений труда. Как участник, ты в любой момент можешь отказаться продолжать работу.
Это также означает, что нет смысла вступать в ряды просто потому, что «модно» или «так делает твой друг». Если у тебя нет желания быть участником движения — не нужно. Возможно, твой интерес лежит в другой плоскости, это нормально.
Чтобы делиться опытом или иметь публично подтвержденные навыки ты можешь использовать и другие подходы: начни вести технический блог или устраивать сессии live-coding'а для решения технических задач, публикуй статьи на форумах/в соцсетях.
📖 Ссылки по теме:
- https://dev.to – площадка для обмена опытом и знаниями для разработчиков
- awesome-livecoding
- Lessons from my first year of live coding on Twitch
Некоторые компании предлагают создавать OSS в процессе работы над коммерческими проектами. В других подобной практики нет, однако, это не значит, что нельзя внедрить подход.
Организуй встречу с руководством и группой заинтересованных, и расскажи коллегам о преимуществах нововведения.
К ним относятся:
- Популяризация бренда. Бонус для маректинга
- Повышенный интерес со стороны опытных разработчиков, поддерживающих open-source движение. Плюшка для работы по найму
- Независимая оценка качества. Повышает доверие к компании со стороны заказчиков, т.к. open-source проекты показывают уровень инженеров в команде.
📖 Ссылки по теме:
Несколько известных open-source библиотек в итоге вышли на прибыль или самообеспечение.
Однако, по отношению к общему количеству проектов этот процент очень маленький (меньше процента). Так что не стоит рассматривать возможность заработать денег на open-source разработке в качестве основной мотивации.
Примеры:
- Sidekiq Pro
- GraphQL Pro* (читайте также статью Роберто Мосолго, в которой он объясняет причины появления Pro версии)
- React on Rails Pro
Обсуждения среди коллег по цеху показали, что самые популярные причина усталости и выгорания среди 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 :)
Создан и отредактирован: