О том, как open source-сообществу Node.js удалось преодолеть упадок и заново отстроить эффективную среду совместной разработки популярной программной платформы, пишет издание Readwrite.
Читать далее
При создании языков программирования и платформ редко удаётся избежать трудностей. Наглядным примером тому служит опыт Node.js-сообщетва. Node.js представляет возможность JavaScript взаимодействовать с устройствами ввода-вывода через свой API, подключать другие внешние библиотеки, написанные на разных языках, обеспечивая вызовы к ним из JavaScript-кода. npm, пакетный менеджер Node.js, — самая большая среда open source-библиотек в мире.
Сегодня в мире существует около 5 млрд подключаемых устройств и их число будет только увеличиваться. Этот вопрос сейчас очень актуален — многие компании, включая IBM, Samsung, Intel и Microsoft, используют возможности API и Node.js для подключения и интеграции своих устройств.
О проблемах вкратце
Платформа Node.js появилась в мае 2009 года, детище эпохи git и GitHub. За свою сравнительно небольшую жизнь Node.js преподнесла не только уроки участникам open source-сообществ, но и предложила решения актуальных проблем, которые присутствуют в стремительно развивающейся ИТ-сфере. Не так давно всего несколько активистов Node.js-сообщества обладали статусом «коммитеров» — «контрибьюров» с правом вносить изменения в репозиторий. Как результат, появились трудности в управлении разработкой и командой. Затраты на поддержку Node.js Core были неподъёмными для нескольких человек, разработка проекта замедлилась, стали редкими и релизы.
«У разработчиков не было возможности воплощать идеи в жизнь, это привело к тому, что они стали реже заниматься проектом… Отсутствие иноваций привело к тому, что проект переставал быть привлекательным для инвесторов», — отмечает Джеймс Снэлл, техлид платформы Node.js в IBM, инвестор и учатник технического руководящего комитета Node.js Core.
Перевоплощение в «традиционный» open source-проект
В ответ на многочисленные проблемы с разработкой популярной платформы программист Фёдор Индутный запустил в декабре 2014 года io.js, форк Node.js. В отличие от скорости релизов Node.js, io.js активно развивался вместе с последними новинками движка Google V8 JavaScript. Столь разительное отличие заключалось в том, что в работе команда io.js придерживалась принципа Do-ocracy. В рамках принципа участники самостоятельно выбирают себе задачи, выполняют их и несут за это ответственность. Всё это, отметим, без излишнего конроля «сверху».
«Предоставив больше свободы, мы стабилизировали разработку платформы. Возможность внести вклад в развитие кода, сообщества или документации, чувство равенства пробудило невероятную активность в команде», — рассказывает Снэлл.
В первые несколько месяцев io.js привлёк больше разработчиков, чем Node.js за всю историю существования.
В феврале 2015 года была создана независимая организация Node.js Foundation. В июне 2015 Node.js и io.js сообщества приняли решение объединиться и работать над одним проектом в рамках Node.js Foundation. Версии Node.js 0.12 и io.js 3.3 объединили в виде Node v. 4.0. Этот процесс привнёс в проект Node.js функционал V8, обеспечив стабильный релизный цикл.
Перспективы на будущее
Управлением Node.js Foundation занимаются две равноправные структуры: бизнес-совет, отвечающий за финансы, маркетинг и юридические вопросы, и технический управляющий комитет, заведующий разработкой, тестированием, интеграцией и проектами.
«Появление структуры управления позволило принимать прозрачные решения и помогло легче преодолевать разногласия», — говорит Джеймс Снэлл.
По его словам, теперяшняя политика поощряет инициативу участников сообщества: «Мы стремимся к тому, чтобы ни одна идея не была оставлена без внимания».
Сегодня проект Node.js включает в себя множество составляющих, а также более 400 специалистов в команде. В развитие Node.js Core ежемесячно вносят вклад более 150 человек. Как рассказал Майкл Роджерс, комьюнити-менеджер Node.js Foundation, такая активность наблюдается и на других подпроектах.
«Мы анализируем нашу аудиторию, стараемся поддерживать начинающих пользователей и хотим подключить их к участию в развитии проекта. Мы прикладываем максимум усилий для того, чтобы людям было интересно и они могли свободно вносить вклад в разработку», — говорит Роджерс.
Технический управляющий комитет курирует более мелкие группы, например, инклюзивную рабочую группу. Дабы обеспечить максимальную вовлечённость, представители последней предложили ввести «правило часовых поясов», согласно которому любой запрос на включение (pull request) должен находится в репозитории не менее 36 часов, чтобы его смогли рассмотреть участники, находящиеся в любых часовых поясах.
Комьюнити-менеджер Node.js Foundation добавил, что с разрастанием проекта появилось больше специалистов высокого уровня, для обеспечения лучшего контроля качества — иерархичность и налаженный процесс.
«Процесс сейчас чёткий и понятный, поэтому наблюдаем энтузиазм и соответвенно высокое качетво работы. Люди активно участвуют в ревью кода. Больше вовлечённых участников — больше ревью, более тщательная проверка. Мы также стараемся распредять людей в группы согласно их опыту и уровню, для того, что бы соблюдать баланс», — отметил Роджерс.
Опыт активно растущего Node.js-сообщества служит доказательством того, что поощрение инициативы и коллективное управление — будущее разработки технологий с открытым исходным кодом. Команда Node.js надеется, что их практики будут полезны в будущем для других open source-сообществ.
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.