Как создать программу с открытым исходным кодом
Здесь обсуждаются основные моменты, касающиеся создания программы с открытым исходным кодом.
Что означает "открытый исходный код?"
Программа с открытым исходным кодом является более общедоступным доступом к базе кода. Это открытие живого проекта к участию для любого желающего. При правильном выполнении для соответствующего проекта программа с открытым исходным кодом может помочь повысить качество продукта.
Одна из основных причин, почему компании создают проекты с открытым исходным кодом, — это их желание привлечь к разработке сообщество. Популярные проекты получают значительное участие сообщества, причем бесплатно.
Это не всегда альтруизм. Люди и организации вкладываются в проекты, так как они видят личное или деловое преимущество. Если проект не соответствует их потребностям или ожиданиям, они могут использовать возможность устранения ошибок или добавления функций. Вместо того, чтобы сохранить эти улучшения в закрытых вилках, они вынуждены внести эти изменения в исходный репозиторий, чтобы стать частью базового плана проекта. Этот эффективный цикл улучшения — причина того, почему многие компании создают программное обеспечение по модели с открытым кодом.
Цели проекта с открытым кодом
Итак, есть три уровня участия в программном обеспечении с открытым исходным кодом:
- Потребители, которые изучают или используют репозитории других.
- Участники, активно участвующие в улучшении репозиториев других.
- Производители, которые создают и обслуживают собственные репозитории, открытые для других пользователей.
По мере того как организации задумываются о том, что они хотят получить от каждого уровня, рекомендуется оценить их состояние. В каждом измерении есть пять уровней процессов.
- Нерегламентированные, не имеющие процесса. Успешное выполнение зависит от индивидуальных усилий.
- Управляемый, с частично документированным процессом. Успешное выполнение зависит от дисциплины.
- Определенный, содержащий документированный, стандартизированный и интегрированный процесс. Успешное выполнение зависит от автоматизации.
- Измеряемый с количественно управляемым процессом. Успешное выполнение зависит от измерения показателей относительно бизнес-целей.
- Оптимизирован, который имеет процесс, который постоянно и надежно улучшается с помощью добавочных и инновационных изменений. Успех зависит от снижения риска изменения.
Чтобы лучше оценить уровень вашей организации, ознакомьтесь с самооценками проектов с открытым кодом.
Что делать с открытым исходным кодом?
Многие проекты не предназначены для величия с открытым исходным кодом. Хотя ваши критерии могут отличаться в зависимости от целей вашей компании и уровня процессов, ниже приведены некоторые рекомендуемые критерии, которые следует учитывать перед открытием проекта:
Содержит ли ваш проект интеллектуальную собственность, которую вы хотите защитить? Если да, то открытие его кода раскроет ее ценность. Не открывайте исходный код для таких проектов, если вы не чувствуете, что преимущества перевешивают риски.
Находится ли проект в стабильном состоянии с хорошим качеством кода? Проект не должен быть идеальным, но потенциальные участники могут уйти, если проект находится в ужасной форме, чтобы начать с.
Является ли ваш проект полезным для пользователей за пределами вашей компании? Если нет, то вы, вероятно, не получаете никакого участия.
Могут ли люди за пределами вашей компании вносить свой вклад? Им нужен доступ ко всем зависимостям проекта, процессам сборки и любым другим потребностям для запуска проекта. Если они не могут его запустить, они не могут внести свой вклад.
Обладает ли ваша команда пропускной способностью для поддержки программы с открытым исходным кодом? Если нет, подождите, пока не сделаете. Если вы открываете проект с открытым исходным кодом и не поддерживаете его, вы можете потерять возможность создать доверенное сообщество.
Эти вопросы — только часть наиболее общих соображений. У вашей организации могут возникнуть другие проблемы с бизнесом или соответствием требованиям.
Разработка программы с открытым исходным кодом
Запуск программы с открытым исходным кодом аналогичен запуску программы InnerSource, но для общей аудитории. В результате есть несколько дополнительных соображений.
Задание ожиданий сообщества
Файлы, подобные README.md
и CONTRIBUTING.md
еще более важные, так как они предоставляются пользователям, у которых нет контекста организации. Они должны оцениваться с точки зрения кого-то за пределами компании, чтобы обеспечить ясность.
Кроме того, важно задать кодекс поведения. Стандарт — добавить файл в корневой CODE_OF_CONDUCT.md
каталог репозитория и использовать его для объяснения поведения, ожидаемого от участников сообщества. Несколько групп в организации должны просматривать этот документ, включая юридическую группу. К счастью, существует множество стандартных правил поведения, с которых можно начать. Многие проекты используют эти кодексы без изменений. Узнайте больше в статье Инструкции по кодексу разработки ПО с открытым исходным кодом.
Подготовка сотрудников для обслуживания репозитория
Сотрудники могут не работать с сообществом с открытым кодом. Они могут подготовиться, предоставив своим сотрудникам набор руководств по основным процессам перед началом работы. Эти руководства должны быть размещены во внутреннем репозитории или портале, который регулярно поддерживается и доступен только сотрудникам компании. Ниже приведены некоторые из наиболее важных руководств.
Руководство "Следует ли открыть исходный код этого проекта?", которое предоставляет инфраструктуру для принятия решения о том, должен ли исходный код проекта-кандидата быть открыт. Это руководство можно структурировать как блок-схему, набор вопросов или список рекомендаций.
Контрольный список установки, включающий все рабочие элементы, которые команда должна завершить до и после запуска проекта с открытым исходным кодом. Этот список должен включать получение одобрения на открытие исходного кода проекта, проверки кода, которые обеспечивают удаление конфиденциальных данных перед публикацией проекта, товарный знак или поиск по проектам с открытым исходным кодом, чтобы убедиться в отсутствии конфликта имен и т. д.
Список контактов для ключевых людей в вашей организации, к которым может потребоваться обратиться в случае, если требуется прямая поддержка от обслуживающих лиц. Этот список должен включать сотрудников из отдела безопасности программного обеспечения, безопасности сайта, юридического отдела и отдела по связям с общественностью и т. д.
Ссылка на начальный репозиторий , который можно клонировать как отправную точку. Он должен содержать образец файла README, лицензию, кодекс поведения, руководство по участию, а также любые другие вспомогательные файлы, необходимые для каждого проекта с открытым исходным кодом вашей компании. Он не должен содержать ничего, что вы не хотели бы случайно отправить в публичный доступ.
Руководство по поддержке, в котором объясняются обязанности по обеспечению работоспособности репозитория. Эти обязанности включают поддержание актуальной документации репозитория, обеспечение актуальности проблем и запросов на вытягивание своевременного получения внимания правильных людей и т. д.
Руководство по обмену данными, которое предлагает рекомендации по ответственный за репозиторий для некоторых разделов, которые вы предпочитаете не включать в общедоступные файлы, например
README.md
,CONTRIBUTING.md
илиCODE_OF_CONDUCT.md
. Эти темы могут быть чувствительными к бизнес-темам, таким как отсутствие обсуждения конкурентов; или более общие темы поведения, например, как соответствующим образом распознать ведущих участников.Внутренние часто задаваемые вопросы с утвержденными ответами на распространенные вопросы. Этот список особенно полезен, если существуют юридические тонкости тем, которые ваша компания может обсудить в ходе поддержания программы с открытым исходным кодом.
Политика лицензирования, в которой указывается, какие лицензии были утверждены или отклонены юридическим отделом для использования или разработки программы с исходным кодом.