Что значит определить InnerSource

Вопрос #

Люди часто спрашивают меня, что такое определение InnerSource. Итак, что такое InnerSource? Я хочу поделиться некоторыми мыслями об InnerSource и о том, что это значит для меня.

Позвольте мне сразу прояснить: это мои личные мнения, а не официальная позиция. Хотя я в настоящее время занимаю должность президента фонда InnerSource Commons Foundation, InnerSource был сформирован многими пионерами, которых я глубоко уважаю. Их вклад создал то, чем является InnerSource сегодня.

Основа InnerSource происходит из переплетения корпоративных практик, академических исследований и, конечно же, эволюции самого открытого исходного кода. Учитывая это богатое полотно, было бы самонадеянно с моей стороны претендовать на личное определение InnerSource. То, что я в настоящее время занимаю должность президента, не означает, что у меня есть полномочия или мудрость создать это определение в одиночку.

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


Два пути к InnerSource #

Мы находимся в интересной точке перегиба. Позвольте мне быть более конкретным в том, что я имею в виду. Существует по сути два типа людей, приходящих к InnerSource сегодня:

Первая группа состоит из тех, кто практиковал открытый исходный код, нашел его методы сотрудничества мощными и естественно применил эти принципы внутренне. Для них InnerSource был просто названием, данным тому, что они уже делали — привнесение превосходства сотрудничества с открытым исходным кодом в свои организации.

Вторая группа открыла InnerSource как именованную методологию. У них может не быть обширного опыта с открытым исходным кодом, но они признают, что InnerSource как организационная методология предлагает огромную ценность для трансформации. Они принимают InnerSource не потому, что были практиками открытого исходного кода, а потому, что сам InnerSource обещает организационные преимущества.

Эта двойственность создает захватывающие возможности в нашем сообществе. Первая группа интуитивно понимает, что значит внедрить InnerSource в организации, а также ценность и культуру InnerSource и открытого исходного кода. Поэтому они могут размышлять о том, как должен быть определен InnerSource, и думать об этом в рамках открытого исходного кода. С другой стороны, вторая группа не обязательно имеет вовлеченность в открытый исходный код, поэтому они склонны искать более четкие идеи о том, что это на самом деле такое.

90%


Учимся у DevOps: Сила именования #

Чтобы понять вызов определения InnerSource, давайте посмотрим на DevOps. Вот как я понимаю его эволюцию: практики в таких компаниях, как Flickr, делали что-то инновационное — разрушали барьеры между разработкой и операциями. Когда они поделились своим опытом и кто-то дал этому название — “DevOps” — произошло что-то волшебное. Внезапно компании повсюду поняли, что они делают похожие вещи, и все они начали делиться своими историями.

Ключевое понимание заключается в следующем: практика существовала до названия, но именование создало сообщество. С этим сообществом пришли инструменты, общие концепции, конференции и взрывной рост. DevOps не был изобретен; он был открыт и назван. Именование катализировало все остальное.

InnerSource следует удивительно похожей схеме. Тим О’Рейли упомянул его в блог-посте в 2000 году. В 2015 году Данезе Купер и коллеги, тогда в PayPal, формализовали InnerSource Commons, позже выделив его как фонд. Но они не изобрели практику — они назвали то, что люди уже делали.

Это именование было волшебным. Внезапно изолированные практики поняли, что они не одиноки. “О, то, что мы делаем с нашими внутренними библиотеками? Это InnerSource!” Сообщество взорвалось обменом паттернов, что привело к ресурсам, таким как InnerSource Patterns, которые фиксируют коллективную мудрость.

Что такое DevOps сегодня? Одна перспектива среди многих #

Люди определяют DevOps бесчисленными способами, и я не могу охватить их все. Вот один пример того, как это можно понимать:

  • Культура сотрудничества между традиционно отдельными командами
  • Набор практик и инструментов автоматизации
  • Философия, которая противостоит традиционной водопадной разработке
  • Коллекция методологий и фреймворков
  • Расширения в специализированные области: BizDevOps, DevSecOps и далее

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

90%


Множественные значения “внутреннего открытого исходного кода” #

Фраза “внутренний открытый исходный код” кажется парадоксальной, и этот парадокс раскрывает, почему InnerSource означает разные вещи для разных организаций. Позвольте мне поделиться некоторыми представительными примерами, которые возникли из наших обсуждений в сообществе:

InnerSource как путь к зрелости открытого исходного кода #

Для некоторых InnerSource открывает органичный путь к участию в открытом исходном коде и цифровой трансформации. Это не только подготовка к возможному вкладу в открытый исходный код — это создание среды, где организация может вырасти в настоящую софтверную компанию. Такие компании, как Microsoft и Google, являются примером этого путешествия, где внутренние практики естественно эволюционируют, чтобы отражать внешние, создавая бесшовное сотрудничество как внутри, так и вне компании.

Но что насчет производственных компаний, ритейлеров или финансовых учреждений? Хотя они могут использовать огромные количества открытого исходного кода, их путешествие отличается. Для них InnerSource может быть первым шагом в более длинной трансформации — построении софтверных возможностей, воспитании культуры инноваций и, возможно, в конечном итоге нахождении своего собственного уникального способа взаимодействия с открытым исходным кодом, который соответствует их бизнес-модели.

InnerSource как организационная прозрачность #

Многих привлекает InnerSource для культурной трансформации. Это не только отправка пулл-реквестов — хотя это часть этого. Это создание органичной прозрачности, где вы можете:

  • Отправлять запросы функций другим командам
  • Видеть, что строят соседние команды
  • Понимать более широкий организационный технологический ландшафт
  • Разрушать барьеры, которые препятствуют сотрудничеству
  • Создавать более открытую, дышащую организационную культуру, где информация течет естественно

Эта прозрачность трансформирует организации из жестких иерархий в живые сети сотрудничества.

В конечном счете, это способствует счастью и благополучию инженеров, продуктовых команд и всех участников в организации. Чувство доверия в поддерживающей рабочей среде — чувство доверия по умолчанию — невероятно важно. Это связано с опытом разработчика и, следовательно, приводит к улучшенному удержанию талантов, а также дает положительные результаты для найма.

InnerSource как оптимизация ресурсов #

Традиционное иерархическое управление проектами добавляет маржу на каждом уровне. Требования текут вниз, каждый слой добавляет буферное время для неопределенности. К тому времени, когда работа достигает реализации, временные рамки раздуты, а инженеры сжаты.

InnerSource переворачивает это. Люди, ближайшие к проблемам, понимают их лучше всего. Они могут приоритизировать, обсуждать и решать проблемы без каскадных встреч и одобрений. Это не всегда правильно — полевые команды знают только свое поле — но когда сбалансировано со стратегическим надзором, это мощно.

Но оптимизация ресурсов выходит за рамки человеческих и командных ресурсов. Это также использование кодовых активов организации, интеллектуальной собственности и конкурентных преимуществ. Когда команды могут делиться и строить на основе инструментов, библиотек и знаний друг друга, они создают синергии, которые не существовали бы в изолированных структурах. Та внутренняя библиотека машинного обучения, которую построила ваша команда? Другая команда может расширить ее способами, которые вы никогда не представляли. Тестовый фреймворк, который дал вам конкурентное преимущество? Его внутреннее распространение умножает его ценность по всей организации. InnerSource помогает организациям понять, что их кодовые и знаниевые активы — это ресурсы, которые становятся более ценными при совместном использовании, а не накоплении.


Дилемма определения: контекст — это все #

Этот вызов множественных значений не уникален для InnerSource. Рассмотрите, как адвокаты Open Source Program Office (OSPO) продвигают открытый исходный код внутренне. Они абсолютно используют разные сообщения для разных аудиторий, потому что каждая деятельность нуждается в поддержке от разных заинтересованных сторон, и каждый уровень организации имеет разные интересы и заботы.

Для адвокации InnerSource сообщения могут выглядеть примерно так:

Для инженеров: “Сотрудничайте с блестящими коллегами, учитесь у лучшего кода, вносите вклад в захватывающие проекты за пределами вашей непосредственной команды”

Для среднего менеджмента: “Сокращайте дублирование, увеличивайте эффективность, ускоряйте доставку через повторное использование и сотрудничество”

Для руководителей: “Сокращайте расходы, увеличивайте скорость инноваций и удерживайте лучшие таланты”

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

Ваше определение InnerSource не только зависит от аудитории — оно зависит от фазы. И это совершенно нормально.


Ваше путешествие InnerSource: эволюционирующее определение #

Итак, что такое InnerSource? Это то, что вы определяете.

Возможно, в будущем фонд InnerSource Commons Foundation разработает более четкое, более коммуникабельное определение, которое сделает немедленно очевидным, что такое InnerSource. Лично я с нетерпением жду этого дня, хотя признаю, что создание такого определения среди такого разнообразия — невероятно сложная задача.

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

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

90%


Призыв к действию #

Вместо поиска идеального определения я призываю вас испытать InnerSource:

  • Отправьте issue, описывающий проблему, которую вы видите
  • Отправьте пулл-реквест, исправляющий документацию
  • Запросите функцию у другой команды
  • Поделитесь вашим кодом с коллегами
  • Исследуйте, что строят другие команды
  • Сотрудничайте через организационные границы

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

Присоединяйтесь к разговору #

В 2025 году, когда ИИ трансформирует то, как мы пишем и сотрудничаем над кодом, принципы InnerSource становятся еще более актуальными. Как мы поддерживаем качество, когда ИИ может генерировать тысячи строк мгновенно? Как мы сохраняем обмен знаниями, когда создание кода автоматизировано? Как мы обеспечиваем, чтобы человеческое суждение оставалось центральным в разработке программного обеспечения?

По этому вопросу, пожалуйста, обратитесь к статье, которая охватывает методологию сотрудничества в эпоху ИИ.

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

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

Фонд InnerSource Commons Foundation приветствует эти обсуждения. Члены нашего сообщества исследуют эти вопросы ежедневно, делятся опытом и строят будущее внутреннего сотрудничества.

Поэтому я спрашиваю вас: Что ваш InnerSource? Как вы определите его для вашей организации? Какие паттерны вы откроете и поделитесь?

Давайте исследовать эти вопросы вместе. Путешествие только начинается. Я с нетерпением жду возможности приветствовать вас в разговоре на innersourcecommons.org.

Yuki Hattori

Yuki Hattori

President of the InnerSource Commons Foundation
Sr. Architect at GitHub
Open Source Technical Advisor at IPA (Japanese government administration)
Author of two books on AI and GitHub
O’Reilly books translator for Prompt Enginnering for LLMs and two InnerSource books[1][2]
 
Opinions expressed here are my own and do not represent any organization I am affiliated with.