Разработка программ на базе открытого исходного кода (OSS) уже давно переросла любительский уровень, когда ею занимались либо энтузиасты, либо профессионалы, но в свободное от работы время. Сегодня мир Open Source наполняют проекты с поддержкой крупного бизнеса, более того, некоторые программисты ИТ-гигантов сами являются участниками открытых проектов. Старший директор по управлению продуктами GitHub Марио Родригес рассказывает на портале InformationWeek о том, как нужно взращивать культуру открытости разработки.
Коллективный труд — основной принцип разработки открытого кода. В его основе лежит предпосылка, что в работе по созданию и поддержке OSS участвуют все участники проекта. Однако это всего лишь предпосылка, которая не всегда воспринимается как руководство к действию. Несмотря на то, что сегодня выгоду от OSS в той или иной форме получают все, начиная с небольших стартапов и заканчивая крупными предприятиями, многие компании не знают, как им лучше всего оказать поддержку сообществу Open Source. Дело в том, что этому препятствуют такие проблемы, как безопасность и интеллектуальная собственность. Тем не менее, выход из ситуации есть.
Понимание роли Open Source
Зачем сообществу Open Source нужна поддержка? Прежде, чем ответить на этот вопрос, компаниям следует задуматься над тем, насколько они полагаются на OSS. Тракторы, рефрижераторы, банковские услуги — все это не может работать без ПО. Софт входит в цепочку поставок практически каждого продукта и услуги, с которыми мы работаем, и этот софт, как правило, работает на базе открытого кода. Взять хотя бы средства общения: Android, разработчиком которой является Google — самая популярная мобильная ОС, на которой работают 86% смартфонов в мире. Это операционная система Linux с открытым исходным кодом.
«Индустрия движется по направлению к Open Source и если мы не будем в этом участвовать, то останемся позади. Исходя из этого, мы не только хотим вернуть то, что потребляем, но и внести свой посильный вклад, чтобы помочь сообществу», — сказала руководитель программ Comcast в области Open Source Шилла Сэби. Множество компаний, которые занимаются созданием софта и применяют технологии таких проектов, как VSCode, Vue.js, Babel и Kubernetes, понимают, что OSS становится ядром разработки. Исследование Black Duck за 2017 г. показывает, что 96% проприетарных приложений содержат компоненты с открытым исходным кодом.
Но несмотря на то, что OSS является важной инфраструктурой для компаний во всем мире, оно все еще поддерживается и управляется людьми, которые часто работают бесплатно. Частично появление разрыва между потреблением OSS и его поддержкой связано с тем, что далеко не все желающие помочь вендоры знают, как это правильно сделать. Среди препятствий можно назвать технические проблемы с пополнением кодовой базы открытых проектов или внесением другого вклада, отсутствие надлежащей документации, а также проблемы, связанные с требованиями регуляторных органов и вопросами безопасности.
Содействие OSS и расстановка приоритетов
Очевидно, чтобы разрушить барьеры как с точки зрения потребления OSS, так и внесения вклада для его процветания, бизнесу и сообществу нужно сплотить усилия. Open Source — это сообщество. Устойчивость любого сообщества зависит от коллективных действий. Поддержка людей, которые занимаются развитием инфраструктуры Open Source, имеет важное значение для ее долгосрочной ценности и здоровья. Имеется множество способов, которыми предприятия могут помочь сообществу — будь то финансовые пожертвования мейнтейнерам, которые отвечают за работоспособность OSS, которое приносит выгоду самому предприятию, или непосредственное участие в проекте с выделением на это времени и ресурсов.
Оказывая поддержку OSS, предприятию нужно осознавать значение Open Source, направляющую роль сообщества, обладать четкой стратегией содействия и расстановки приоритетов. Вовлечение организации в Open Source должно выходить за рамки кода — это скорее культурный сдвиг, который нужно вдумчиво и тщательно спланировать. Ниже приводится несколько рекомендаций, которые помогут его осуществить.
1. Выберите конкретный проект для поддержки
Помните ли вы о проекте с открытым исходным кодом, который принес вам пользу? Если это так, отблагодарили ли вы за это его мейнтейнера или сам проект? Если вы являетесь обычным пользователем OSS, поразмышляйте над тем, стоит ли вам занять более активную позицию. Написав несколько строк кода, вы уже окажете поддержку проекту. Если вы хотите финансировать работу проекта, можно проверить, подключил ли мейнтейнер на GitHub соответствующую опцию.
2. Подумайте о целесообразности раскрытия кода инструмента, который вы создали для своей команды
Некоторые из крупных Open Source-проектов, разработанных большими компаниями, изначально создавались для решения внутренних задач. Именно для этих целей Facebook разработала проект React. Сейчас это один из самых популярных проектов на GitHub. Наверняка у вас имеется инструмент, который может принести пользу для более масштабных проектов, а также для сообщества Open Source.
3. Поощряйте взаимодействие с сообществом OSS
Некоторые организации рассматривают взаимодействие с сообществом OSS по остаточному принципу, то есть тогда, когда у их разработчиков имеется свободное время. Более того, распространено явление, когда командам при создании внутренних инструментов не рекомендуется иметь дело с OSS. Почему бы не попробовать изменить содержательность отношений с сообществом, расспросив своих разработчиков по поводу того, какие у них есть идеи, чтобы сделать это сотрудничество плодотворным.
4. Разрушайте барьеры, которые препятствуют инновациям
Типичный изолированный процесс разработки замедляет темпы внедрения инноваций. Некоторые из клиентов GitHub являются большими сторонниками «innersource» (Open Source для внутреннего потребления). Они прибегают к методологии Open Source внутри компании для создания более плодотворной и прозрачной инженерной культуры. Создание общедоступных проектов внутри вашей организации — это лишь один из примеров innersource. Команды должны иметь доступ к документации, участвовать в обсуждениях и понимать, как принимаются решения.
5. Стандартизация для повышения эффективности
Сотрудничество между членами команды заметно упростится, если они будут использовать те же инструменты и системы, что и сообщество OSS. Чтобы ускорить выпуск приложений и сократить дублирующие процедуры, можно упростить поиск, настройку и повторное применение существующих внутренних проектов и кода.
ПО не создается в одиночку. Сегодня Open Source и бизнес связаны тесными узами, они участвуют в крупных совместных проектах, делятся ресурсами, решают общие проблемы и т. д. Сообщество Open Source уже давно явило миру свою открытость и ждет ответного хода от всех предприятий, чтобы совместными усилиями развивать будущее ПО.