Концепция InnerSource предполагает реализацию принципов Open Source в границах одной компании. Она оказалась весьма востребованной для многих предприятий, в том числе не имеющих отношения к ИТ, поскольку позволяет добиться определённых организационных преимуществ.
Основатель проекта Jono Bacon Consulting Джоно Бэкон часто выступает в роли консультанта, помогая различным организациям выстраивать внутренние и внешние сообщества. Опираясь на свой опыт он представил на сайте OpenSource.com модель, которая показывает, какие шаги необходимо сделать руководителю программы реализации концепции InnerSource в компании.
Подготовительный этап
Эксперт отдельно подчёркивает, что InnerSource — прежде всего изменение культуры компании, а не корректировка процесса разработки программного обеспечения. Это создание адекватной во всех отношениях среды для совместной деятельности. Разумеется, процесс включает и развитие разработки, но не ограничивается только им.
Главная же проблема изменений культурной среды определяется тем, что сама культура — аморфная категория, включающая в себя идеи, взгляды, привычки, страхи, мечты, ценности и многое другое. Из этого вытекает, что не понимающий существующую культуру человек не сможет её изменить.
Внедрение InnerSource должно начинаться с понимания существующей инфраструктуры и коммуникационных процессов. Они включают в себя хостинг кода, рецензирование, автоматическое тестирование, непрерывную интеграцию, создание документации, базы знаний, программы стимулирования и многое другое.
Руководитель программы должен понимать эту систему до мельчайших деталей. Бэкон рекомендует разбить организацию на команды и собрать по каждой из них следующую информацию:
· какие ресурсы потребляет команда;
· что производит команда;
· как работает команда;
· как команда взаимодействует с другими командами;
· достоинства и недостатки существующей системы.
Компания — это множество людей со своими целями, личными особенностями и точками зрения. Любые изменения культуры происходят в реальной среде, сформированной этими людьми. Невозможно реализовать InnerSource-программу через диктат — такой путь практически наверняка завершится неудачей.
Для лучшего понимания существующих в компании реалий эксперт предлагает использовать следующую схематизацию:
· основные заинтересованные стороны и лица, принимающие решения;
· рабочие команды и ключевые сотрудники;
· отдельные сотрудники, их внутренние и внешние мотивации.
Составление плана
После того, как у руководителя программы появилось ясное понимание текущей ситуации, можно приступать к составлению дорожной карты. Первый шаг — определение общей стратегии, что значительно сложнее, чем кажется на первый взгляд. Интеграция принципов Open Source включает в себя вмешательство в рабочие процессы, инфраструктуру, коммуникации, корпоративную политику (например, открытость и прозрачность), управление и многое другое.
Чтобы план получился реалистичным, следует иметь в виду, что приоритеты будут меняться, поскольку у компании наверняка есть другие проекты, причём более важные, чем реализация InnerSource. Также не нужно рассчитывать на большие ресурсы и единодушную поддержку со стороны руководителей и коллег — наверняка многим не понравятся грядущие перемены, поскольку перемены вообще мало кому нравятся.
Таким образом, задача сводится к выполнению следующего:
· построение стратегии;
· определение приоритетов;
· выделение ресурсов;
· реализация возможных особенностей каждой из этих частей.
Бэкон рекомендует сначала составить общий план на ближайшие один-два года, охватывающий основные направления деятельности. А потом разбить этот план на более короткие периоды с конкретными ключевыми целями и практическими показателями.
По сути, стратегия — это всего лишь карта, которая только указывает конечную цель. Для практического воплощения она должна быть преобразована в цепочку конкретных проектов, требующих определённых ресурсов. Причём каждая стратегическая цель порождает множество субпроектов, что усложняет привлечение ресурсов.
Лучшим способом решения возможной проблемы эксперт считает тотальное резервирование. Лучше выбиться из графика, чем начать реализацию необеспеченного ресурсами проекта.
Одна из серьёзных задач этапа планирования заключается в достижении понимания того, как выглядит успех от реализации InnerSource. Допустим, компания заинтересована в повышении эффективности работы программистов, но когда дело доходит до проверки кода, сразу становится непонятно, каким образом измерить эффект от инновации.
Если не будут выработаны единые критерии оценки, то проблема будет усугубляться различным отношением к ней со стороны рабочих групп, на которых реализация проекта оказывает влияние — у них могут быть разные представления об успехе. Руководство же, как правило, не имеет желания вникать в детали, предпочитая получать общую информацию о наиболее важных тенденциях.
Для упрощения решения проблемы Бэкон рекомендует использовать т. н. «модель зрелости», согласно которой каждому этапу соответствует определённый хронологический статус:
· решение неизвестно;
· решение изучается;
· решение внедряется;
· решение реализовано;
· решение оптимизируется и совершенствуется.
Соответственно, для каждого статуса определяется ожидаемый результат. Например, результатом статуса изучения могут быть осуществляемые некоторыми рабочими группами эксперименты с некритическими участками кода.
Реализация программы
Если ранее выполнялась хоть и важная, но «незаметная» работа, то от успеха начального этапа реализации зависит всё будущее проекта. Поэтому выбор его имеет важнейшее значение. Исходить следует, разумеется, из доступных ресурсов, иначе получится авантюра.
Актуальность этапа тоже важна, но в меньшей степени. Лучше успешно закончить не самый значимый субпроект, чем громко провалить приоритетный.
При реализации InnerSource-программы важно постоянно поддерживать связь с различными группами, что само по себе положительно влияет на её успех, поскольку именно коммуникации — одна из базовых составляющих концепции.
При этом руководитель программы должен постоянно отслеживать следующую информацию по всем заинтересованным сторонам:
· понимании стратегии;
· понимание плана работы;
· выполнение работы;
· результаты работы.
Только важно иметь в виду, что различные рабочие группы имеют различные коммуникационные потребности. Высшее руководство интересует только общие результаты, а лидеры групп требуют важных для них деталей.
Очевидно, что обеспечение всех заинтересованных сторон необходимой информацией лежит на руководителе программы. Причём крайне желательно постепенно переводить коммуникации из «ручного режима» в системный, когда обмен данными осуществляется без непосредственного участия какого-либо одного заинтересованного лица. Тем более, что это одна из составных частей концепции InnerSource.
Итоги и улучшения
Реализация InnerSource — процесс, который не имеет конца. Этим он чем-то похож на внедрение ПО, нуждающегося в постоянном сопровождении и поддержке. Да и сама компания — не застывшая система. Она постоянно меняется и используемый когда-то подход должен постоянно обновляться, для чего нужна действующая система мониторинга.
Бэкон предупреждает, что и в этом случае важную роль будут играть нетехнические аспекты. Все сотрудники предприятия прекрасно понимают, что под термином «мониторинг» подразумевается самый обычной контроль. А это всегда вызывает страх, причём сколько-нибудь формализованного способа борьбы с ним не существует.
Основа системы мониторинга — сбор количественных данных. Для каждого проекта определяется набор показателей, значение которых свидетельствуют об уровне благополучия. Эксперт подчёркивает важность этой задачи — если нет цифр, то нет и контроля.
Однако несмотря на безусловный приоритет измеряемых показателей нельзя пренебрегать и обычным человеческим фактором. Для его оценки следует регулярно проводить опросы сотрудников (желательно на анонимной основе), в которых они могут высказать своё мнение о уровне комфорта в работе.
Очевидно, если какие-либо показатели выходят за рамки допустимых, следует срочно вносить изменения в конкретную реализацию InnerSource. Причём по примерно такой же схеме, которая использовалась при внедрении концепции.