Привет, Хабр! Я Максим Коробов, 12 лет работаю в Т-Банке и занимаюсь клиентскими интерфейсами для физических лиц. Все, что фронт, желтое приложение или интернет-банк, — в моей зоне ответственности.

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

Closed source, inner source

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

Типичная схема работы с кодом
Типичная схема работы с кодом

Рядом со мной может сидеть коллега, который работает на соседнем проекте. Он может рассказать о нем, показать на мониторе, но увидеть что-то в коде по умолчанию я не смогу.

По пути к опенсорсу в ИТ-культуре хочется упомянуть иннерсорс — состояние, в котором по умолчанию исходники доступны всем внутри одной компании.

Схема работы с кодом иннерсорс
Схема работы с кодом иннерсорс

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

Наша компания прошла через несколько итераций переговоров с информационной безопасностью и добилась того, что больше 90% исходников доступны всем айтишникам. Тот, кто занимается процессингом, может посмотреть код API физлиц или мобильного банка и задать вопросы.

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

Иннерсорс ведет к инженерной культуре открытости и взаимопомощи:

  • Ускоряются поставки и улучшается time-to-market для бизнеса.

  • ИТ становится как «Лего» — можно переиспользовать наработки соседних команд.

  • Дорабатывать проще, чем попросить. Удобнее и легче вносить вклад в соседний проект.

  • Растет инженерная культура: улучшается качество документации, автоматическое QA и CI/CD.

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

Пара примеров из жизни: UI KIT для ангуляра и VoIP SDK, который сделали для мобильного банка. Мы думали: «Зачем потратили силы, зачем выложили и оформили в виде библиотеки?» А через три года это понадобилось Инвестициям, Мобильному оператору, Бизнесу, и коллеги сказали: «Какие вы молодцы, что еще несколько лет назад подумали о том, что это может пригодиться!»

Пример в Т, с чего начиналось
Пример в Т, с чего начиналось

Теперь мы занимаемся иннерсорсом системно. У нас есть витрина, и там можно посмотреть все, что можно использовать: сервисы, библиотеки, платформы. В ней хранятся богатые коллекции кубиков «Лего», которые появились из-за того, что открылись исходники и выросло вовлечение.

Сотрудники могут:

  1. Быстро найти конкретное решение под свою текущую проблему.

  2. Собрать типовые прикладные сервисы из стандартных решений за часы, а не дни.

Пример карточки проекта — кубика «Лего»
Пример карточки проекта — кубика «Лего»

Монетизация проектов

Случается, что хорошие проекты становятся коммерческими. Успешная монетизация — доказательство востребованности продукта:

  • появляется внешнее финансирование развития продукта;

  • потребности выравниваются под нужды рынка, а не только для внутренних заказчиков.

К сожалению, большинство проектов, какими бы классными они ни были, будут не востребованы. Трудно ограниченными силами команды или компании сделать лучше что-то, что накоплено в мировом опыте и коммерциализируется.

Пример стартапа, который родился из ИТ-продукта, — наш Voice Kit. Мы автоматизировали работу колл-центра, чтобы обзвоны с напоминаниями о платежах проходили без участия человека. 

AI-модель для преобразования текста в аудио и в обратную сторону мы сделали давно — лет семь назад. Делали для себя, но потом оценили, что решение сравнимо с рыночными, и завернули в сервис. Не то чтобы случился большой успех, но мы проверили, что так делать можно. А еще это оказалось конкурентным решением — и часть компаний с подходящими задачами выбирали нас.

Особая гордость — история с Sage. Система мониторинга Splunk была индустриальным стандартом для управления логами, удобный язык, с которым можно было делать борды. В 2022 мы не смогли продлить лицензию и стали анализировать, что есть на рынке.

Альтернативы нас не удовлетворили. Создали свое решение — так родился продукт, который называется Sage. Поначалу он был создан для мониторинга и управления логами, но постепенно вырос в платформу наблюдаемости с метриками, трейсингом и так далее. 

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

Опенсорс

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

Схема работы с кодом с опенсорсом
Схема работы с кодом с опенсорсом

 Когда мы принимаем решение о публикации проекта, мы исходим:

  • из целесообразности, то есть того, в каком формате взаимодействия мы видим больше ценности — в опенсорсе или монетизации;

  • внутреннего желания — про отдавание в сообщество и подобное.

От опенсорса получается польза для всех сторон: сотрудников, бизнеса и мирового сообщества. Это в первую очередь: 

  • развитие профессиональных навыков сотрудников;

  • нетворкинг в компании;

  • свобода участия в любое время в любом проекте и в любом объеме;

  • формирование профессиональных связей: контактов и опыта работы с профессионалами по всему миру;

  • развитие личного бренда, репутации и портфолио;

  • возможность влиять на индустрию разработки ПО;

  • вклад в общее благо;

  • улучшение эффективности, инженерной культуры и надежности;

  • повышение привлекательности HR-бренда компании в ИТ-среде;

  • рост социального статуса и благотворительного имиджа; 

  • возможность переиспользования наработок внутри одной компании.

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

Например, есть у нас проект, выложенный на Гитхабе, — библиотека утилит utils.js для веба. Делали для себя, потом посмотрели, что у нас неплохие результаты, и выложили. Этой библиотекой пользуются, есть метрики по перфомансу.

Сравнение производительности библиотек
Сравнение производительности библиотек

У нас есть графики — срезы по годам, когда был выложен проект по разным признакам: языкам программирования, типам проекта. Цифры одни и те же, просто разные срезы. Важно отметить тренд: чем раньше начнешь вкладываться в open source, тем быстрее окажешься в периоде четырех последних столбиков.

Плюсов для бизнеса и ИТ в этой истории много. За три года, как мы начали заниматься системной работой, мы: 

  • собрали открытые проекты на любой вкус;

  • набрали очков популярности HR-бренда;

  • привлекли в проекты сторонних разработчиков.

Гибридные схемы

Между коммерцией и оперсорсом есть гибридные схемы. Немного про них расскажу. 

Схема работы гибридных вариантов
Схема работы гибридных вариантов

Open Core модель бизнеса, когда базовая часть у продукта открыта и можно пользоваться ею неограниченно, но есть расширенные платные функции или платная поддержка. Такой формат совмещает коммерцию и опенсорс.

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

Примеры Open Core, которыми я пользуюсь
Примеры Open Core, которыми я пользуюсь

Open Source SDK — вариант, при котором исходники открыты, но под капотом лежит платный сервис. Можно разобраться, как это работает, проще контактировать с авторами, потому что есть площадка.

SDK выступает формой доступа к API, и, благодаря тому что она опенсорсная, ее можно доработать или портировать. У нас был пример с SDK для эквайринга. В нем есть прием платежей за услуги, который был написан на родных инструментах: на Котлине и Свифте для iOS и Android.

Компания-подрядчик Mad Brains взяла наше опенсорсное SDK и портировала его на Flutter, так как необходимо было встроить в мобильное приложение на нем. Благодаря тому что ПО было открыто, в Mad Brains решили свою задачу. Заказчик получил приложение, а мы — поддержку продукта на Flutter.


Примеры опенсорса SDK
Примеры опенсорса SDK

Этапы развития проектов в Т

Я собрал этапы развития проектов в единую схему.

Продуктовая трансформация ИТ в Т-Команде началась в 2020 году. Мы стали слишком большими, чтобы единое ИТ в режиме сервиса удовлетворяло потребности бизнеса. Мы трансформировались в кросс-функциональные команды под управлением бизнес-линий, но стали терять в эффективности и горизонтальных связях.

Проблему решили двумя действиями: 

  • Создали Core Tech. Стали едиными базовые технологии, общие компоненты и общие инструменты. Все, что можно, стало общественным достоянием.

  • Создали Институт лидеров профессий. Ведущие представители разных бизнес-линий и команд хороводят сообщество и транслируют общую повестку. Они авторитетны и влияют на профессию внутри компании.

Лидер профессии — роль, а не должность. Был риск, что, если мы оставим все как есть, человек перестанет быть экспертом в своей профессии и уже не сможет быть ее лидером. 

Лидеров профессии выбирают по 4 критериям:

  • заряженные;

  • мощные;

  • авторитетные;

  • разнообразные.

В теме open source лидеры профессий решают, какие новые проекты достойны выкладки от имени компании. Мы дошли до той стадии, на которой иногда отказываем.

 

Место лидера профессии в open source
Место лидера профессии в open source

Важность открытой документации

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

У нас есть упрощенный список, о чем сказать, когда хочешь поделиться своими наработками. Еще есть чат в корпоративном мессенджере для общих новостей и объявлений.

Из чего складывается мнение о компании у внешней ЦА (на основе исследования Хабра по ИТ-работодателям в 2023 году)
Из чего складывается мнение о компании у внешней ЦА (на основе исследования Хабра по ИТ-работодателям в 2023 году)

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

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

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

  • убеждать руководство выделять рабочее время на опенсорс;

  • устраивать и поощрять участие в хакатонах и внешних мероприятиях;

  • применять опенсорс для образовательных программ, если они есть.

Да, это просто молоток, но он отлично забивает гвозди.

У меня есть смешной пример. Когда-то давно я столкнулся с багом в Википедии для iOS. При просмотре PDF там плохо работала прокрутка, я зарепортил 10 строчек и стал знаменитостью. 

Хочется, чтобы люди, когда сталкивались с проблемой, не замалчивали ее, а говорили об этом. Столкнулся с проблемой, починил и счастлив оттого, что код приняли. Такие примеры хочется популяризовать.

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

Выводы

Опенсорс — модель взаимодействия сотрудника, компании и внешнего мира, где все выигрывают. Такое сотрудничество — единственная стратегия, при которой все в плюсе. Моя цель — зарядить вас на это!

Я приводил примеры, где внутри компании образовалась выгода, когда через опенсорс и иннерсорс получилась огромная витрина сервисов, продуктов и библиотек. Да, не сразу, но со временем это принесло выгоду.

Мне кажется, классно, что можно прийти к коллеге и дополнить его работу, а не изобретать велосипеды.

С чего начать:

  • добиться открытия хранилищ кода сначала для инженеров компании;

  • найти заряженных людей и дать им полномочия;

  • пропагандировать культурные изменения на уровне компании.

Долгосрочные цели всегда будут проигрывать краткосрочным, и изменение культуры — это очень долгосрочное, что-то мета над нами. Нужно в какой-то момент остановиться и сказать: да, сейчас мы пожертвуем чем-то, чтобы через несколько лет у нас было все классно.

Не обязательно открывать все репозитории сразу, можно начать с малого. Например, с фронтов: там меньше всего секретов. Открыть один репозиторий, но рассказать о нем всем. Устроить хакатон и предложить всем, кто не в проекте, найти по 10 багов. Есть способы, чтобы маленькие шаги привели к большим сдвигам.