Заражая опенсорсом

от автора

Пятница, вечер. Одна из главных улиц Нижнего Новгорода, за поворотом — набережная, река, виды, вверху — кремль и потрясающая архитектура. Безветрие, +9. В старинном кирпичном здании прогуливаются более сотни человек едва ли старше 20-25 лет (не, ну некоторые постарше, конечно), вокруг синий свет, диджей играет симпатичный сет, привлекают строгие стильные фотозоны, игры… На двух главных экранах в глубине зала яркие буквы… Так начинался Open Source Day — 5 часов отборного экспертного опенсорса.

Мне часто приходится бывать на айтишных конференциях, митапах, хакатонах и т. д. Они стабильно собирают интерес и людей, в начале всё выглядит как праздник технологий, интеллекта и особого настроения, но к концу примерно в 7 мероприятиях из 10 остаётся небольшая группа энтузиастов, часть которых удерживается хитрым пенным ходом организаторов. Open Source Day — из тех мероприятий, когда из тесного зала первой части набился тесный зал второй части, а потом ещё почти всем хватило сил на афтепати — после моего ухода гардероб был почти полон. А это, повторюсь, пятница, вечер. Объяснение простое и прозрачное: было интересно. Я в IT 16 лет, за эти годы случалось всё: от кровавого энтерпрайза до самого что ни на есть чистого опенсорса и даже работы за идею. Но и мне было интересно — настолько, что пришлось сверить часы (да, механические, не всем там было 20-25) с показаниями мобильника — ну не могли так незаметно пролететь три часа до перерыва.

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

Часть первая: теория, история и много любви к open source

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

Сергей Тираспольский

директор по работе с партнерами ИТ-кампуса НЕЙМАРК

Сергей Тираспольский, директор по работе с партнерами ИТ-кампуса НЕЙМАРК, раскрыл слоган встречи: «Закладываем фундамент будущего вместе». Будучи опытным айтишником, он за 10 минут «включил» зал, помог понять суть мероприятия и рассказал о преимуществах участия в опенсорс проектах. В open source при должном усилии каждому возможно получить бесплатный доступ к технологиям (которые развивают тысячи опытных разработчиков, небольшие команды или увлечённые одиночки), есть шанс запустить проект, найти наставника, трудоустроиться. Важно, что сегодня в российском ИТ есть вызовы, связанные с переустройством open source, в которые уже погрузились и корпорации, и государство, и обычные разработчики. Но об этом — во второй части моего репортажа. Сейчас — основа.

Первым был Владимир Рубанов.

Владимир Рубанов

Член правления ИТ-Ассоциаций АПКИТ и РуссСофт

? «33 преимущества и 14 рисков открытости вашего исходного кода» 

«Нижний как технологический столп страны подтверждает свою репутацию»

В начале выступления Владимир коротко и доступно рассказал об Open Source Initiative, которая на сегодняшний день поддерживает 114 утвердённых лицензий. Коротко обрисовав 10 основных критериев open source проекта, он раскрыл смысл и особенности Permissive и Copyleft лицензий, разъяснил особенности коммерческого использования и раскрыл феномен «заражения» проектов опенсорсом при использовании «вирусных» сильных copyleft-лицензий. В зале стояла внимающая, комфортная тишина — подумалось, что сейчас тут нас всех заражают open source идеями и философией. 

«Профиль на GitHub или в другом репозитории — важная часть вашего резюме. Всегда обращаю на это внимание».

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

Open source — сложнейшая социальная, экономическая, практическая, научная и информационная экосистема со своими законами и принципами функционирования. Основные драйверы open source — международные корпорации, которые участвуют в развитии как денежными инвестициями, так и своими сотрудниками (во многих компаниях мирового уровня этим занимаются целые подразделения). Кроме них, в развитии open source участвуют огромные локальные компании (в это время по залу пролетело перешёптывание «Яндекс, Яндекс, а ещё ВК»), небольшие компании, международные ассоциации и консорциумы и конечно, индивидуальные разработчики — «та самая искра, из которой разгорелось пламя». 

Владимир много говорил о преимуществах (даром что их 33). Open source — это среда для развития талантов, в которой без вузовской скамьи и учебников начинающий разработчик получает огромное наставляющее коммьюнити, опыт отношений в рабочей среде и понимание принципов человеческой команды. Это особая форма взаимодействия, которую трудно разрушить и нельзя отнять: даже если по каким-то причинам исчезнет кооперация, останется код. Это та среда, внутри которой взаимовыгодно сотрудничают даже самые непримиримые конкуренты.

Преимущества open source

Основные преимущества можно выделить в пять групп.

Экономика

  • Экономия затрат

  • Экономия сил на разработке

  • Открытые части кода позволяют привлекать внешних программистов и тем самым нанимать меньше своих

Улучшенная репутация

  • Согласно исследованиям, в глазах клиентов (которые разбираются) компания, работающая с опенсорсом, вызывает больше доверия, а в условиях кризиса цифрового недоверия это ощутимая ценность.

  • Мотивация для инженеров и программистов.

Крутые инновации в компании

  • Open source — это всегда про шеринг знаний, обмен опытом.

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

Повышение блага человечества в целом

  • Минимизируется необходимость бесконечного написания велосипедов (всегда можно взять готовый 🙂 — авт.), а это сказывается на многих сферах, вплоть до углеродного следа.

  • Эффективность человечества (глобально и наднационально) растёт.

  • open source — инструмент повышения культуры и квалификации молодёжи.

Пятая группа преимуществ сложная и актуальна скорее для глобальных бизнес-экосистем — получение стратегического влияния за счёт открытия важного и нужного всем кода. Соответственно, открытие кода влечёт рост влияния, а вот уже за ним через другие многочисленные каналы приходит ощутимый профит (в разных его смыслах). Думаю, примеры приводить не надо — мы в этой реальности живём.

Риски open source

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

  1. under open sourcing — когда «зажали» часть кода или выпустили не в то время и проект оказался невостребованным или же выход повлёк недовольство пользователей; 

  2. over open sourcing — когда раскрыли раньше или слишком много;

  3. IPR Risk — раскрыли ключевой компонент разработки, который для компании был рыночным дифференциатором и вдруг им быть перестал.

Владимир задал тренд одному из активных обсуждений Open Source Day — обсуждению иностранного языка, который необходим современным российским разработчикам. Он справедливо подчеркнул, что английский язык — это тот навык, который необходим всем разработчикам, язык науки — и если остальные студенческие знания могут постепенно испариться и трансформироваться, то английский останется нужным и фундаментальным знанием, особенно важным для мира open source (не забываем о масштабах коммьюнити — авт.).

В блоке вопросов Владимира спросили, как быть с вероятностью ошибок и безопасностью в open source.

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

Олег Сиротюк

Лидер сообщества OpenScaler

? «Национальный Open Source: опыт Китая» 

Олег Сиротюк из OpenScaler начал с шутки про то, что можно поспорить, какой язык нужно изучать прямо сейчас. Во всяком случае, пару фраз по-китайски выучить точно стоит.

Олег перенёс зал в новые вселенные open source. Сейчас это китайская вселенная. Великая Китайская стена присутствует не только в физическом мире, но и в информационном, плюс на отношения с китайской разработческой реалией играет роль языковой барьер. Вишенка на этом торте — национальная особенность китайцев: они выполняют свою работу и не любят хвастаться и проводить впечатляющие презентации своей работы (как, например, это происходит на Западе).

Китайский open source — это значимый феномен. Нужно его знать, перенимать опыт построения национального open source. История у китайцев началась с отказа от IOE и SOA (попробуйте расшифровать, не заглядывая в боксы под словами). Нужно было искать и создавать что-то своё.

Затем появился Gitee — платформа хостинга open source-проектов. На сегодняшний день это крупнейшая платформа после GitHub: 10+ млн разработчиков, 2000+ университетов, 25+ млн репозиториев, 260 000 компаний Gitee Enterprise, 7+ млн активных пользователей, 20+ млн Git pulls, 500 трлн строк кода или 1000+ ТБ. Но это всего лишь инструмент.

В Китае в 2020 году появился OpenAtom — ключевая единица open source в Поднебесной. Сейчас он отвечает за национальную информационную безопасность, развитие open source-культуры и развитие национальной кодовой базы. Они поддерживают образовательную сферу и постоянно проводят конкурсы для обучающихся. Обычно в них делается акцент на поиск промышленных решений. Кстати, в этом году там можно поучаствовать при поддержке OpenScaler.

Ещё одна ключевая сущность китайского open source — Open Euler. Это не только операционная система, но и огромное, колоссальное хранилище множества проектов: различные решения AI, cloud native, big data, CDN и проч.

Ну и пара проектов, о которых на Хабре наверняка и слышали, и говорили, но они знаковые для китайского open source:

  • Mindspore — китайская альтрнатива PyTorch/TensorFlow, единый фреймворк для AI + HPC

  • Modelers — китайская альтернатива HuggingFace

Кстати, угадайте, какая компания является почти в прямом смысле национальным достоянием Китая и участвует в развитии многих open source-проектов. Сто процентов угадали ?

Это было слишком просто

Александр Белоцерковский

СберТех

? «Как искусственный интеллект, Open Source и сообщества незаметно изменили опыт разработчика» 

Александр ненадолго вывел нас из завораживающего оцепенения и рассказал краткую, ясную историю развития искусственного интеллекта. И да, конференция по опенсорсу без ИИ была бы неполной, потому что и сам ИИ основан на многих open source решениях, и ИИ служит на благо развития открытого ПО. В частности, сегодня это многочисленные ассистенты, которые помогают не столько писать код, сколько разбираться в чужом. Александр наглядно показал разницу между студенческим предсказанием результата работы кода на бумажке (я его постарше — мы даже экзамен по С и С++ так сдавали!) и ответами ИИ-ассистента (и это впечатляет!).

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

У ИИ-ассистентов есть вполне чёткие цели:

  • увеличить эффективность

  • снизить барьер на изучение нового

  • сократить когнитивную нагрузку

  • увеличить время работы в «потоке»

  • увеличить скорость разработки

  • сократить TTM (time to market) продукта

Таким образом, ИИ меняет и процесс разработки, и сам продукт разработки.

Напоследок Александр рассказал, как заглянуть в будущее open source. Есть GitHub Next — в него попадают экспериментальные, перспективные и интересные проекты, о которых мир узнает гораздо позже. Если посмотреть, для будущего они весьма показательны. 

Егор Бугаенко

Директор лаборатории создания инструментов ПО, основатель Zerocrasy

? «Девять ступеней Open Source кунг-фу» 

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

Итак, 9 уровней.

Уровень 1. Профиль

Оформите свою страницу на GitHub, заполнив максимум возможных разделов. Добавьте реальную фотографию, расскажите о себе. 

Примеры (авт.):

Уровень 2. Merge 

Получите свой первый мердж на GitHub. Это не так просто: в ядре Linux, в который коммитят не случайные люди, а квалифицированные разработчики, мёрдж происходит только в ⅓ случаев. 

  • Будьте готовы к реджектам — это могут быть первые два или первые двадцать, но зато потом вы можете получить 10 мерджей подряд. Отказ ни о чём ещё не говорит и ниже вы это увидите.

  • Негативные комментарии к вашему коммиту только на 15% относятся непосредственно к коду. 85% — это претензии к тому, как код оформлен. Пишите красиво, понятно, изучите нормы и правила красоты кода.

  • Исследование Google показало, что pull request небольшого размера мёржатся гораздо интенсивнее: не присылайте много кода, так вы ускорите и упростите прохождение code review. 

  • Чем более позитивно и воодушевлённо вы общаетесь с ревьюверами, тем больше у вас шансов на успех.

  • Важно, кто прислал pr: кто, куда писал раньше, что с аватаром и страницей (уровень 1). Профайл и репутация open source девелопера крайне важны. Чем больше информации о вас доступно, тем выше вероятность, что вашему pr уделят много внимания.

Уровень 3. Релиз

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

  • Релиз для вас должен быть максимально простой процедурой, буквально рутинной: нужно упаковать всё что возможно в автоматические процедуры. 

  • Читайте книгу Jez Humble, David Farley «Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation». Строго обязательна к прочтению!

Если вы выстроили процессы идеально, при деплойменте вам останется совершить только две операции: придумать, какая версия следующая, и нажать кнопку.

Уровень 4: Вам прислали pull request

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

  • Важно, как оформлен репозиторий: стиль, документация. По этим признакам видно, что вам важно то, чем вы занимаетесь, что вы создавали. Фактически должно быть видно, что вы живёте своим проектом.

  • У 95% популярных проектов не пустые readme-файлы. Они демонстрируют важность проекта, ценность его для коммьюнити. Даже если вы выкладываете курсовую — добавляйте readme-файл.

  • Наличие нетривиальных бейджиков проекта — располагающие сигналы для доверия.

  • Важна частота апдейта readme-файлов, наличие ссылок. Добавляйте в readme всё важное, ценное — например, это могут быть бенчмарки.

«Будьте TensorFlow уже на первых шагах проекта».

5 уровень: захват

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

6 уровень: 100 багов

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

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

Как работать с багами, лучше узнать из книги J. Mayers и др. «The Art of Software Testing» (есть на русском языке).

Не бойтесь багов — это хороший знак для open source:

  • mozilla — 1.8 M+ bugs

  • gitlab-org/gitlab — 172 462 bugs

  • flutter/flutter — 79 368 bugs

  • kubenetes/kubernetes — 42 627 bugs

  • tensorflow/tensorflow — 36 776 bugs

  • moby/moby — 19 367 bugs

7 уровень: $$$

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

8 уровень: large runners

GitHub предложил вам бесплатные large runners — дополнительные мощности. Например, такое произошло с проектом vlang.io

9 уровень: вам платят

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

Вадим Писаревский

Архитектор библиотеки OpenCV

? «OpenCV» 

Завершал первую часть Вадим Писаревский, один из создателей знаменитой библиотеки алгоритмов компьютерного зрения OpenCV (к слову, проект и команда родом из Нижнего Новгорода). Библиотека разрабатывается с 1998 года, первый публичный релиз вышел в 2000. Сейчас это более 460М загрузок, 78К звёзд на GitHub, второй по популярности CV-проект, седьмой по популярности С++ проект.

OpenCV используется IT-гигантами, стартапами и университетами по всему миру. На данный момент Китай — самый активный потребитель продукта. OpenCV как open source-проект получает 3-5 патчей каждый день, 50% идёт от сообщества.

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

  • детектирования лиц

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

«Если вы сегодня решите начать заниматься компьютерным зрением, на вашу жизнь задач хватит».

Часть вторая. Форсайт-сессия

С таким форматом в этом масштабе мне работать не приходилось. За каждым круглым столом собралось 10 и более человек, которые должны были быстро разобрать и презентовать идеи по проблемам российского open source.

Перед форсайт-сессией ведущий всей встречи попросил ведущего форсайт-сессию Никиту Соболева @sobolevn быстро назвать три слова, которые точно выдают айтишника. Тут, в общем, не поспоришь:

  1. выгорание

  2. легаси 

  3. open source

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

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

  • Монетизация вклада в open source остаётся большой проблемой — как экономической, так и мотивационной. Так, разработчик, заработавший «спонсорские» 180$ на GitHub, входит в топ-1% «богатых» контрибьюторов.

  • Безопасность open source на любом национальном уровне и в критических инфраструктурах — большая проблема.

  • open source нужно серьёзно интегрировать в образование (со школы, с вуза), менять программы, создавать стипендии и работать на стыке интереса университета, государства и частного бизнеса. Дипломные работы будущих инженеров и программистов не должны быть формальностью.

  • Менторство, открытые встречи и митапы, передача опыта — то, чего очень не хватает молодому поколению.

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

  • Важно уметь говорить на одном языке, учитывая культуру (code of contact), создавая в том числе культуру общего языка (обсуждали китайский, английский и даже эсперанто — в зале был настоящий адепт и носитель языка, готовый доказать его состоятельность для целей создания нового ИТ-сообщества). 

  • Нельзя отказываться от участия в глобальных проектах.

Кажется, что можно добавить ещё много чего из того, что обсуждалось, озвучивалось, предлагалось, но репортаж и так получился огромным. Наверное, самое важное было то, что слушатели были активными — обсуждали шёпотом в зале, местами возмущались и спорили, рассказывая аргументы коллегам рядом, продолжали обсуждения в перерыве и были активны на форсайт-сессии. Эта включённость говорит о том, что у ИТ (глобального, российского, нижегородского) есть будущее — эти ребята, многие из которых, ещё учась в вузе, работают в крупных компаниях и знают, о чём они говорят. И эта уверенность так же заражала, как open source.


ссылка на оригинал статьи https://habr.com/ru/articles/851938/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *