Один из докладов на прошедшей в Остине конференции OSCON (Open Source Convention) был посвящён весьма важному вопросу - началу работы в открытом проекте. Свои рекомендации новичкам дала программист Puppet Labs Люси Вайман.
Начала она с перечня возможных мотиваций потенциального участника. К сожалению, полной ясности в этом вопросе нет до сих пор - зачастую считается, что никакой практической пользы от такой работы нет, поэтому она может рассматриваться исключительно в качестве хобби. Вайман с этим не согласна.
Прежде всего, Open Source позволяет избежать изобретения колеса. Например, совершенно незачем создавать собственную ОС с нуля, если можно использовать ядро Linux в качестве основы.
Достоинств у подобного подхода много. Во-первых, использование готового кода позволяет существенно сократить как время разработки, так и необходимые для этого ресурсы. Во-вторых, этот метод повышает качество конечного продукта, поскольку открытое ПО довольно тщательно тестируется.
В качестве второй возможной причины Вайман упоминает поддержку необходимому пользователю решения. Почему бы не помочь проекту, результат работы которого применяется каждый день? Очевидно, что интерес в этом обоюдный.
Часто забывается, что свобода и ответственность - две стороны одной медали. Продукт не может быть бесплатным, но специфика Open Source заключается в том, что пользователю предлагается оплатить его добровольно и любым удобным для себя способом.
Участие в открытом проекте позволяет человеку существенно расширить круг профессионального общения и получать много полезной информации «из первых рук». Важность этого аспекта нельзя недооценивать, поскольку он может весьма благотворно отразиться на карьере специалиста.
Наконец, Open Source - прекрасный способ узнать что-то новое. Это особенно актуально для начинающих программистов, одна из главных задач которых - получать необходимые для успешной работы знания.
Но что делать человеку, который боится показаться некомпетентным или не чувствует в себе достаточно сил, чтобы вносить какой-либо заметный вклад в открытый проект? Вайман предлагает несколько способов, которые позволят поддержать Open Source даже человеку, не обладающими навыками программирования.
Во-первых, тестирование. Причём понимать это следует в расширенном смысле - тестеры не только помогают обнаружить ошибки в коде, но и выносят на обсуждения предложения по улучшению функциональности.
Зачастую даже у очень хороших разработчиков нет достаточного пользовательского опыта, чтобы адекватно оценивать собственное решение с точки зрения потребителя. Поэтому уместно рекомендовать им внести любые изменения, вплоть до неудобного или непривычного расположения элементов интерфейса.
Во-вторых, написание документации. Это слабое место значительной части открытых проектов, у которых даже коротенький README составлен явно наспех и без должного внимания.
Новый участник может выбрать для себя оригинальные способы - например, добавление в код программы комментариев, что сделает его более удобным для чтения. Хорошая и полная документация нужна не только пользователям - она позволяет расширить круг разработчиков, поэтому вклад технических писателей крайне важен для любого проекта.
В-третьих, техническая поддержка. Новый участник может помогать пользователям решать их проблемы, уделяя часть своего времени работе на соответствующем IRC-канале.
Поддержка сообщества традиционно является сильной стороной Open Source. Подобная работа очень нужна и всегда воспринимается с благодарностью всеми участниками проекта.
В-четвёртых, обучение. Проведение семинаров и конференций очень способствует продвижению как конкретного решения, так и всего Open Source.
Если новичок чувствует, что имеет талант лектора, то он не должен закапывать его в землю. Квалифицированных программистов немного, а хороших преподавателей ещё меньше - подобный вклад очень востребован и наверняка не останется незамеченным.
В-пятых, дизайн. В этом нуждается практически любой открытый проект.
Логотип, значки, другие элементы визуального оформления приложения - всё это делает проект действительно профессиональным.
Таким образом, Вайман уверена, что в мире Open Source найдётся место всем. Было бы желание, а возможность есть.
Свободное программное обеспечение - неотъемлемая часть бизнеса Google. В этой компании проекты буквально рождаются и умирают с open source. Без Linux и открытого ПО не существовало бы компании Google в том виде, в каком мы её знаем. Google не только использует СПО в повседневной деятельности, но и постоянно выкладывает в открытое достояние собственные наработки. Например, за три месяца текущего года Google открыла Chrome для iOS , Upspin (фреймворк для глобального единого пространства имён), E2EMail (экспериментальный почтовый сервис с оконечным шифрованием), перцептуальный JPEG-энкодер Guetzli . Это только самые крупные проекты, которыми Google поделилась с сообществом в 2017 году.
Всего за время своей работы Google опубликовала код уже более 2000 проектов. Только как их посмотреть? Теперь вдобавок к репозиториям на GitHub все open source проекты Google доступны по единому адресу . Это новый портал свободного программного обеспечения поисковой компании.
В Уилл Норрис (Will Norris), разработчик группы Google Open Source Programs Office, пишет: «Свободное и открытое программное обеспечение лежало в нашем техническом и организационном основании с самого начала существования Google. Начиная с серверов под Linux, и заканчивая внутренней корпоративной культурой Google, когда кто угодно из другой команды разработки может выпустить патч для вашего кода. Open source является частью всего, что мы делаем. В обмен, мы публикуем миллионы строк open source кода, поддерживаем программы вроде Google Summer of Code и Google Code-in , спонсируем проекты open source и сообщества через организации вроде Software Freedom Conservancy , Apache Software Foundation и ».
И вот сейчас, спустя 18 лет после своего основания, компания Google открыла портал , который объединяет все открытые проекты Google, с сопутствующей информацией об использовании, выпуске и поддержке свободного программного обеспечения.
Зачем Google делает это? Если верить сайту, компания уверена, что СПО является всеобщим благом . Когда софт открыт и доступен для всех, это поощряет сотрудничество и продвижение технологий и «решает реальные мировые проблемы».
Наверное, так оно и есть на самом деле.
Нужно заметить, что портал Google - это не репозиторий вроде GitHub, а скорее инфорационно-справочный портал, здесь стоят ссылки на соответствующие репозитории GitHub. Таким образом, вряд ли можно опасаться, что Google откажется от размещения кода на GitHub, самом удобном сайте для совместной работы, который уже стал стандартом де-факто в своей области.
Уилл Норрис пишет, что компания не знает, какие проекты станут популярными и получат всеобщее признание, поэтому они поощряют своих сотрудников публиковать весь код, какой только возможно . Соответственно, здесь можно найти разные проекты по масштабу и уровню поддержки. Есть и крупные известные проекты вроде , и , есть и маленькие «любительские» проекты, которые сотрудники, вероятно, создали в свободное от основных обязанностей время (20% времени рабочего программисты Google могут работать над проектами на своё усмотрение). Например, и . Некоторые из проектов полностью поддерживаются и развиваются сотрудниками Google и сообществом, другие являются экспериментальными, сделанными просто ради удовольствия.
Есть кое-что ещё. Новый портал Google - это не просто собрание открытых проектов, сделанных в компании. Здесь компания ещё и делится своим опытом и корпоративными практиками разработки открытого программного обеспечения. В опубликована копия всей внутренней документации Google по разработке open source (за исключением нескольких документов). Это именно то, что видят и читают сотрудники компании. Здесь несколько разделов. Один из них посвящён - в том числе создание патчей для больших проектов и написание собственных маленьких проектов в 20% свободного времени. Другой раздел объясняет практики OSS внутри компании. Там разъясняется, под какими лицензиями можно брать и использовать код. Например, код под лицензиями AGPL использовать . Здесь размещён тщательно отобранный каталог из тысяч пакетов, рекомендованных для использования. Наконец, третий раздел посвящён инициатив свободного ПО: различным студенческим программам, проводимым мероприятиям, выдаваемым грантам и т. д.
Очевидно, что Google видит свободное ПО как неотъемлемую часть своей деятельности - и стремится максимально поддерживать и использовать его.
Open source становится важной частью бизнеса не только Google, но и многих других компаний. Как и предсказывали отцы-основатели, свободный софт распространяется как вирус, заставляя создателей производных программ тоже выпускать их под свободными лицензиями. Как сказал исполнительный директор Linux Foundation Джим Землин (Jim Zemlin), свободное ПО станет новым . Он имеет в виду, что 80% ценности любых технологий - от смартфонов или других сфер ИТ - будет происходить от свободного софта, и только 20% - от проприетарного. Процесс постепенно идёт. Исследования показывают, что в 2015 году .
1 января 2018 в 01:14Полгода назад мне пришла идея создания своего open source проекта. Вместо тестовых задач на интервью мне было бы достаточно отправить ссылку на репозиторий, а перспектива помочь коллегам с решением их повседневных проблем еще больше зарядила меня энергией.
Мне всегда не нравились гемы для создания административных панелей, любое лишнее движение требует переопределения классов, для изменения полей нужно делать изменения в файлах. После размышлений и беседой с коллегами было принято решение создать новую библиотеку, которая была бы гибкой и не требовала бы дашбордов или файлов конфигурации.
Одним из ценных советов, который я получил на данном этапе, это обратить внимание в первую очередь на документацию проекта. У вас может быть очень хороший проект, но никто не будет читать исходники и пытаться понять как это работает.
Самый важный аспект, без которого дальнейшие этапы невозможны это мотивация. Идея проекта должна цеплять в первую очередь вас. Чаще всего люди привыкают к тем инструментам с которыми работают и попадают в зону комфорта.
Выбор определенного таск менеджера вопрос вкуса. Я использую pivotal tracker, основное преимущество является наличие бесплатной версии для open source проектов, присутствует сортировка задач по типу (feature, bug, chore, release), задачи можно группировать в релизы и определять дедлайн.
Еще одной приятной возможностью у pivotal tracker является интеграция с github. Если вы соблюдаете определенную конвенцию в именовании комитов, то внутри задачи будут автоматически отображены все связанные изменения с этой задачей.
Лицензия гарантирует, что другие могут использовать, копировать и модифицировать исходный код проекта. Вам необходимо добавлять этот файл в каждый репозиторий с вашим open source проектом. MIT, Apache 2.0 GPLv3 самые популярные лицензии для open source проектов, если не уверены какую выбрать можете воспользоваться удобным сервисом .
Файл CONTRIBUTING поможет другим разработчикам сделать вклад в проект. На первых шагах проекта не обязательно уделять этому файлу пристальное внимание, можно воспользоваться уже готовым шаблоном из другого проекта.
У меня было просто много желания и отсутствие четкого плана
Так же почитав историю других проектов, не только open source, я заметил, что на раннем этапе имеются слишком оптимистичные планы и переоценка своих сил и возможностей. Не так просто находить время каждый день на написание новой фичи в проект. Большую часть задач пришлось в итоге отсеять и оставить необходимый минимум для
Практика в open-source проектах поможет при составлении портфолио для трудоустройства. В статье приведены рекомендации по изучению этой тематики.
Если кто не знал, DuckDuckGo – поисковая система, не собирающая информацию о пользователях. Мгновенные ответы - фича, которая позволяет получать ответы без необходимости открывать сайт. Сотни людей успели принять участие в разработке этой фичи, много идей для разработки лежит на этой странице . Также DuckDuckGo предоставляет хорошую документацию и рекомендует новым пользователям создавать шпаргалки для сервиса. Чтобы посмотреть, как выглядят такие шпаргалки, достаточно вбить в поисковик фразу «wordpress cheat sheet» . Если у вас возникли трудности, есть канал в Slack и вики-страница в Github-репозитории .
Вне сомнений, Mozilla – одна из лидирующих организаций по количеству open-source проектов. Делать свой вклад в развитие проектов Mozilla может показаться не очень простым на первый взгляд, поскольку сложно найти задачи, помеченные как «для новичков», из-за того, что в целом задач много. К счастью, был создан отдельный сайт , где можно фильтровать задачи в зависимости от своих интересов. Новичку стоит обратить внимание на фильтр simple bugs внизу в секции фильтров!
Pinax – это открытая опенсорсная платформа, сделанная с использованием веб-фреймворка Django. Это экосистема для повторно используемых приложений на Django, тем, шаблонов для нового проекта. В их репозитории на Github в разделе Issues есть задачи для новичков, помеченные first-timers-only . Они аккуратно задокументированы, таким образом, чтобы вы знали, что вам следует делать.
В этой статье не будет психологических исследований на тему open-source и разработки.
Не будет анализа open-source проектов с помощью R или Python.
И не расскажу о том, как правильно контрибьютить.
Возможно я даже буду говорить какие-то банальные вещи.
Впервые я узнал про мир открытого ПО где-то в году 2009, когда начал серьёзно заниматься программированием и зарабатывать этим.
Но впервые отправил pull request в open-source проект году только в 2012. Это было попытка добавления Redis в качестве провайдера для кэша в Joomla Framework. Скажем так, попытка была не самая удачная, но попробовать очень хотелось.
Вернулся я к open-source позже - в 2015.
Я долгое время пытался придумать и реализовать с друзьями и коллегами разные идеи, «замутить стартап» и тд. Но всё почему-то захлёбывалось, лично мне не хватало мотивации.
Тогда я попытался взглянуть на эту ситуацию и понять почему это происходит.
Я понял, что всё дело в том, что меня интересовали не сами идеи, стартапы, бизнес, мне была интересна разработка и программирование.
И поняв это, я решил что если мне интересно программирование как таковое, то почему бы не направить это в полезное русло и не помочь улучшить инструменты, которыми я пользуюсь. Так я начал периодически отправлять pull request"ы в проекты, которые мне нравятся (Yii2 , Design Patterns , Django)
Кроме того, open-source разработка прививает хорошие навыки, такие как соблюдение стандартов кода, написание тестов и многое другое.
К тому же, здесь всегда есть возможность сделать code review чужого кода, если Вы устали от непосредственно написания кода. Это тоже бывает очень полезно и для кого-то это действительно новый опыт.
Этот список можно продолжать ещё.
Кроме того, я считаю, что в каждом человеке присутствует желание помогать другому человеку, и как раз-таки Open Source разработка даёт такую возможность.