Как построить сообщество. Перевод книги «Социальная архитектура»: Глава 3. Сообщество ZeroMQ

https://hintjens.gitbooks.io/social-architecture/content/chapter3.html
  • Перевод
Можем ли мы целенаправленно строить сообщества?

image Меня иногда спрашивают, что такого особенного в ZeroMQ. На это я всегда отвечаю, что ZeroMQ — возможно лучший ответ, который у нас есть на злободневный вопрос «Как создавать распределенные программные средства, которые требуются от нас 21 век?». Но, помимо этого, ZeroMQ выделяется благодаря своему сообществу. Что и отличает волков от овец.

Есть три основных open source паттерна. Во-первых, когда крупная фирма выбрасывает на рынок код, чтобы расправится с конкурентами. Это модель Apache Foundation. Во-вторых, когда крошечные команды и маленькие компании строят свою мечту. Это наиболее распространенная open source модель, которая может быть наиболее коммерчески успешна. И наконец, агрессивные и разнообразные сообщества, всей толпой пробирающиеся сквозь дебри проблем. Это модель Linux, и вот к ней мы и стремимся в ZeroMQ.

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

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

В этом разделе я рассмотрю наше сообщество с разных сторон и в конце подробно расскажу о нашем договоре о сотрудничестве, который мы называем «С4». Вам пригодится эта информация для вашей собственной работы. Кроме того, мы успешно адаптировали метод ZeroMQ C4 для проектов с закрытым кодом.

Архитектура сообщества ZeroMQ


Вы знаете, что ZeroMQ является проектом с лицензией LGPL (примечание автора: мы склоняемся к Mozilla Public License v2, которая действует также, но является более простой). На самом деле это набор проектов, построенных вокруг корневой библиотеки libzmq. Я представляю эти проекты как расширяющуюся вселенную:

  • В центре находится libzmq, как корневая библиотека ZeroMQ. Она написана на C++, с низкоуровневым С-API. Код довольно своенравен, в основном потому, что он сильно оптимизирован, а также потому, что написан на C++, на языке, который сам по себе довольно коварный и дрянной. Большую часть оригинального кода написал Марти Сустрик (Martin Sustrik). Сегодня десятки людей занимаются поддержкой его различных частей.
  • У libzmq есть около 50 биндингов. Это индивидуальные проекты, которые создают высокоуровневые API для ZeroMQ, или, по крайней мере, отображают низкоуровневый API на других языках. Эти привязки различаются по качеству, от проб пера до шедевров. Наиболее впечатляющей из них является PyZMQ, которая была одной из первых проектов сообщества ZeroMQ. Если вы разрабатываете биндинг, вам просто необходимо изучить PyZMQ — вдохновившись, вы сделаете ваш код и ваше сообщество такими же крутыми.
  • У многих языков есть многочисленные биндинги (Erlang, Ruby, C#, например), написанные разными людьми в разное время, с использованием разных подходов. Мы никаким образом это не регулируем. Нет «официальных» биндингов. Используя тот или другой, вы голосуете за него, участвуете в его развитии или игнорируете его.
  • Есть несколько новых вариантов использования libzmq, начиная с JeroMQ, полный Java перевод библиотеки, который сейчас является базой для NetMQ, C# стек. Эти стеки предлагают похожие или идентичные API и используют тот же протокол (ZMTP), что и libzmq.
  • На базе биндингов существуют тысячи проектов, которые используют ZeroMQ или построены на нем. Большинство из них не являются частью официального сообщества, лишь некоторые из них, например Zyre и Malamute.

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

iMatix, моя компания, играет специфическую роль в сообществе. Мы владеем торговыми марками и следим за каждой, чтобы быть уверенными в том, что если вы скачаете пакет с названием «ZeroMQ», вы можете быть доверять его содержимому. Было несколько попыток несанкционированного использования имени, видимо пираты думали, что «свободное программное обеспечение» значит ничейное и беззащитное. Прочитав эту главу, вы увидите, как серьезно мы воспринимаем работу, проделанную над нашим программным обеспечением (а под «нами» я имею в виду сообщество, а не компанию). iMatix поддерживает сообщество, следя за функционированием всего, что называется «ZeroMQ». Мы также вкладываем деньги и время в программное обеспечение и его развертывание.

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

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

Как создавать по-настоящему большие архитектуры


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

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

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

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

Гениальный и прозорливый Эбен Моглен (Eben Moglen) однажды сказал, что лицензия свободного программного обеспечения словно контракт, на основе которого строится сообщество. Когда я первый раз это услышал, около десяти лет назад, у меня появилась идея — можем ли мы целенаправленно строить сообщества?

Полученный десять лет спустя ответ — «да», более того, теперь это почти наука. Я говорю «почти», потому что у нас до сих пор нет достаточного количества доказательств того, что люди делают это целенаправленно, нет документации и уверенности, что этот процесс возможно точно воспроизвести. Именно это я и пытаюсь исправить с помощью Социальной Архитектуры. ZeroMQ появился после Wikidot, после Digital Standards Organization (Digistan) и после Foundation for a Free Information Infrastructure (FFII, негосударственная организация, которая борется против патентов на программное обеспечение). Все это появилось после множества менее успешных сообществ, вроде Xitami и Libero. Вывод, который я сделал из долгой работы с различными проектами, заключается в следующем: если вы хотите создать по-настоящему масштабное и долговечное программное обеспечение, стремитесь к построению сообщества свободного программного обеспечения.

Перевод книги «Социальная архитектура»:




Об авторе
«К сожалению, мы не выбираем себе смерть, но мы можем встретить ее достойно, чтобы нас запомнили, как мужчин.»
— к/ф «Гладиатор»



Питер Хинченс (Pieter Hintjens) — бельгийский разработчик, писатель. Занимал должность CEO и chief software designer в iMatix, компании, производящей free software, такие как библиотека ZeroMQ (библиотека берет на себя часть забот о буферизации данных, обслуживанию очередей, установлению и восстановлению соединений и прочие), OpenAMQ, Libero, GSL code generator, и веб-сервиса Xitami.

  • Автор более 30 протоколов и распределенных систем.
  • Основатель проекта Edgenet по созданию полностью безопасной, анонимной глобальной P2P-сети.
  • Президент ассоциации Foundation for a Free Information Infrastructure (FFII), которая воевала с патентным правом.
  • CEO сервиса по созданию собственных вики-проектов Wikidot.
  • Он был активистом open standards и основателем Digital Standards Organization.
  • Питер в 2007-м был назван одним из 50 самых влиятельных людей в области «Интеллектуальная собственность».

Подробнее тут: Тридцать пять лет я, как некромант, вдыхал жизнь в мертвое железо при помощи кода

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

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

Сайт Питера Хинченса
Статья в Википедии

Мысли и идеи Питера Хинченса на Хабре:


О проекте по переводу книги
Я, при поддержке Филтех-акселератора, планирую опубликовать на Хабре (и, может быть, в бумаге) перевод книги «Social Architecture». Имхо, это лучшее (если не единственное адекватное) пособие по управлению/построению/улучшению сообществ, ориентированных на создание продукта (а не на взаимный груминг или «поклонение» лидеру, спортклубу и пр).

Call to action
Если у вас есть на примете проекты/стартапы с высокой долей технологий, направленные на общественное благо в первую очередь и на получение прибыли как на вспомогательную функцию (например, как Википедия), пишите в личку или регистрируйтесь на программу акселератора.

Если вы пришлете ссылки на статьи, видео, курсы на Coursera по управлению/построению/улучшению сообществ, ориентированных на создание продукта, с меня шоколадка.

Philtech Initiative

100,00

Общественное благо через цифровые технологии

Поделиться публикацией
Комментарии 1
    0
    Наверное, немного не в тему, но заинтересовал продукт и посему вопрос — есть ли у кого-нибудь опыт совместной работы ZeroMQ и промышленной шины, например WebSphere MQ?

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

    Самое читаемое