Пользователь
0,1
рейтинг
11 ноября 2013 в 06:21

Разработка → NetBSD: что не так в консерватории перевод

Вниманию читателей предлагается перевод заметки «Self-interview after leaving the NetBSD board», опубликованной в блоге Julio Merino в четверг, 20 июня сего года.

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


Незадолго до выборов нового управляющего совета NetBSD, в ноябре 2010 г., кто-то выдвинул мою кандидатуру. Мне это польстило, я решил побороться за место. Затем, как водится, серия интервью; комитет всех придирчиво рассматривает и отбирает нескольких наиболее достойных из длинного списка кандидатов. В шорт-лист попали четыре человека: двое оставались еще на один срок (tron@ и reed@), и двое же уходили (agc@ и david@). Место последних заняли spz@ и jmmv@ (это я). В апреле 2011 г. этот список был окончательно утвержден, а в мае был официально объявлен новый состав управляющего совета. (Еще трое — snj@, dyoung@ и christos@ — были избраны годом ранее, и их полномочия на тот момент еще не истекли. — прим. пер.)

Оглядываясь назад, трудно поверить, что прошло лет десять, (сейчас уже больше — текст предисловия более ранний — прим. пер.) как я стал пользователем NetBSD, начиная с версии 1.5. Мои обязанности в проекте не раз менялись за это время: я был майнтейнером GNOME, занимался сайтом, разрабатывал систему тестирования (и до сих пор продолжаю), и вот теперь я в «совете директоров».

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

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

Наверное, будь я на «настоящей» работе, все закончилось бы «прощальным» интервью с эйчаром компании. Но у нас нет HR-отдела (кстати, может надо завести? А что, это идея), так что я просто поделюсь с вами своими мыслями по этому поводу. Исключительно в частном порядке — я высказываю здесь лишь свое собственное мнение.

Давайте сразу внесем ясность: я с большим уважением отношусь к людям, участвующим в проекте NetBSD. Подавляющее большинство из них (если не все) весьма компетентны и, насколько я могу судить, просто классные ребята. Я не собираюсь ни на кого показывать пальцем; как это часто бывает, никто конкретно не виноват.

Однако, наличие компетентных и клевых товарищей само по себе не означает, что все будет хорошо, что мы на правильном пути к всеобщему успеху; более того, дела обстояли с точностью до наоборот, и отрицать это — все равно, что прятать голову в песок. Что я имею в виду под «всеобщим успехом»: конкурентоспособность в выбранном сегменте рынка, способности, возможности и склонность к инновациям (а не к внутриполитическим дрязгам), то есть, не быть теми, про кого люди вокруг говорят «это ненужно», «закопать!» или «оно еще шевелится?», а, напротив, быть известным и интересным open source проектом, привлекающим «новую кровь», всегда имеющим достаточную «критическую массу» разработчиков и ясные, четко поставленные цели, которые разделяют пользователи и программисты. Если предлагаемые кем-то изменения не вписываются или противоречат этим целям, они быстро и однозначно отклоняются как мешающие развитию проекта. В конце-концов, необходимо иметь в достаточном количестве разработчиков, чтобы поспевать за современными железом и софтом. Как-то так. Список, конечно, далеко не исчерпывающий, но, думаю, мою идею вы поняли — это важно для последующего рассказа.

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

Мне больно смотреть, как проходят годы, а NetBSD становится все менее и менее значимой (в тех терминах, что я озвучил выше). Все становится только хуже: никто не может что-либо кардинально изменить без риска вызвать общее недовольство, как в среде старожил, так и новичков. Вот пример: каждый год NetBSD Foundation созывает, согласно уставу, общее «собрание акционеров». Собрание начинается со слова представителя правления (совета). Когда-то, году в 2003-м, эти выступления были очень мотивирующими; лидеры имели четкое видение, куда движется проект, и что нужно сделать, чтобы достичь цели. С годами эти выступления превратились в краткий отчет за прошедший год, без какой-либо программы или даже единого слова о будущем.

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

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

Отсутствие лидерства


Теоретически, NetBSD управляется двумя группами людей: «советом директоров» и так называемой «core team». Первые занимаются общими вещами: пожертвованиями, планированием бюджета, решением правовых вопросов, и т. п. Core team, в свою очередь, ответственна за техническую часть. Это в теории; и таки-да, обе эти команды существуют.

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

Если копнуть глубже, то, по-моему, разделение на «совет директоров» и «core team» скорее вредит проекту, нежели идет на пользу. NetBSD в первую очередь — технический, «программистский» проект, и об этом не следует забывать. Наличие двух независимых управляющих групп (формально одного уровня) контрпродуктивно и вредно уже хотя бы потому, что очень трудно добиться согласия между всеми (на сегодняшний день 13 человек), и это всегда будет сопровождаться всевозможными компромиссами, вне зависимости от масштаба проблемы. (Есть известный феномен — чем тривиальнее предложение, тем больше и дольше оно обсуждается, см. bikeshed — прим. пер.)

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

Карл Фогель довольно хорошо описывает обе структуры управления в своей книге «Создание свободного программного обеспечения»; если еще не читали, то советую не откладывать.

Невозможность взять на себя риск


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

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

Тому есть множество примеров, но мне не хочется вдаваться в подробности каждого случая, за исключением, пожалуй, двух особенно явных, которые мусолятся уже годами (и конца этому не видать): отказ от CVS и обновление web-сайта. Детали несущественны; важно то, что в проекте по этим вопросам наблюдается общая апатия.

Вот, взять, например, миграцию с CVS. Текущая позиция такова: не существует системы контроля версий, которая могла бы заменить CVS и в то же время сохранить некоторые из ее особенностей. Значит, если мы уйдем с CVS, то рискуем потерять разработчиков, которые настолько привыкли к этим старым особенностям («багофичам» — прим. пер.), что предпочтут покинуть проект. Об этом можно волноваться, но не стоит забывать, что CVS тоже далеко не идеальна, и куча разработчиков могли бы работать куда продуктивнее, используй они что-то отличное от CVS. Новые разработчики тоже вряд ли будут гореть желанием присоединиться к проекту, когда они узнают, что будут вынуждены работать с таким инструментарием. (Вы пробовали рассказать кому-нибудь, что NetBSD до сих пор использует CVS? Нет? Попробуйте и посмотрите на их реакцию.)

Дилемма: или мы меняем CVS на что-то другое, соглашаясь на некоторые неудобства и кого-то обязательно при этом разозлив, либо оставляем все как есть и наблюдаем, как от нас уходят старые разработчики и не приходят новые. Угадайте теперь, что в итоге всегда побеждает?

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

В итоге этих разговоров я написал, длинно и критически, в провокационной манере, о том, что не так с NetBSD и что же с этим делать. Сначала я думал опубликовать запись у себя в блоге, но потом решил отправить письмо в совет, для внутренней дискуссии, — в надежде, что обсуждение в тесном кругу (а не публике) получится более здоровым. К сожалению, реакцией на мое письмо были либо злость, либо безразличие. (Если кто-то из вас сейчас читает эти строки: это не то, чего я добивался. Я действительно надеялся сподвигнуть нас на решение серьезных проблем, как и сейчас. Возможно, тогда я не нашел правильных слов.)

На BSDCan 2012 мы также обсуждали, что нам нужен mission statement. Каждая организация должна ясно осознавать свои цели и уметь расставлять приоритеты, когда надо принимать спорные решения. Так? Так.

Я поднял этот вопрос на совете (оказалось, что аналогичное предложение уже выдвигалось несколько лет назад). Идею встретили прохладно и неохотно, аргументировав тем, что невозможно сформулировать миссию так, чтобы охватить всю аудиторию NetBSD. Очевидно, что NetBSD (как и, впрочем, любой программный продукт) не может удовлетворять всем нуждам всех пользователей; по разным причинам она не подойдет тем или иным из них. В конце-концов мы договорились, что проведем опрос, чтобы лучше представлять себе, кто они — наши пользователи, и чего хотят от NetBSD — это было бы первым шагом к mission statement, который бы никто не встретил в штыки.

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

Да, и еще: почему я придаю такое больше значение mission statement? Во-первых, это сразу дает возможность пользователям понять, о чем вообще наш проект, и что от него можно ожидать. А во-вторых, (и это более важно) задает критерии, по которым можно отсеивать предложения и патчи, которые не вписываются в нашу концепцию и не отвечают заявленным нами целям. Без долгих и нудных споров, эмоций и взаимных обид. Может быть, это кого-то поначалу расстроит или даже отвратит, но в перспективе все будут только счастливее, т. к. личные цели участников будут, в целом, совпадать с целями проекта.

Нежелание привлекать новых пользователей


Пользователи. NetBSD нужно больше, больше пользователей. Почему? Потому что какой-то их процент рано или поздно «переквалифицируется» в полноценных участников проекта, со свежими идеями и энергией — а это именно то, чего нам сейчас так не хватает. Чем больше разработчиков, тем легче NetBSD идти в ногу со временем, тем (опять же) привлекательнее она для пользователей, часть которых, в свою очередь, вливается «новой кровью» в команду, что дает возможность заниматься действительно большими и инновационными проектами. Это порочный круг, и все эти годы он продолжал сжиматься: мы теряли пользователей и разработчиков, мы не успевали за временем и не могли привлечь молодежь.

Но проблема даже не в этом, а в том, что некоторые из активных участников проекта не хотят привлекать новых пользователей. Пока им никто не мешает работать в свое удовольствие над тем или иным куском системы, копаться в своей песочнице, они вполне комфортно себя чувствуют, и их нимало не расстраивает тот факт, что пользователи разбегаются кто куда. (Я понимаю, что сложно объективно судить об аудитории open source проекта, но я думаю, это очевидно любому, кто был в проекте на протяжении нескольких лет. А если это не очевидно, то у меня для вас плохие новости.)

Распространено мнение, что достаточно просто делать технологически хороший продукт, тогда NetBSD станет привлекать таланты и вскоре достигнет той самой критической массы пользователей. Извините, ребята, но: Это. Не. Работает. Как было недавно замечено кем-то в рассылке: если бы для привлечения пользователей было достаточно одного лишь технического совершенства, у NetBSD их должно быть на сегодня в избытке: как-никак, третий десяток разбили. И где же эти пользователи? Если о чем и говорить, то скорее уж о том, как мы потеряли большинство из тех, что имели.

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

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

Слова напутствия


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

Это ужасно меня расстраивает. NetBSD — все та же open source Unix-подобная операционная система, которая раздражает меня меньше других, и над кодом которой мне нравится трудиться. Это проект, большой и настоящий, в котором я получил огромный опыт как разработчик. По этим причинам я не ухожу из проекта насовсем, по крайней мере пока. Тем не менее, и к сожалению, мне все сложнее находить мотивацию и желание вкладываться в NetBSD: в мире open source можно еще много чем заниматься с куда лучшей отдачей.

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

Я желаю удачи управляющему совету и core team. Я надеюсь, что своим рассказом смогу вдохновить кого-то в проекте на более решительные действия и изменения в верном направлении. Я не указываю сейчас никуда конкретно, но проекту нужен такой вектор, и кто сможет его определить, тот всех победит. :-)

Спасибо, что прочитали; я надеюсь, что этот текст будет воспринят как искренняя и конструктивная критика.

Об авторе: Julio Merino — активный пользователь BSD-систем со времен FreeBSD 4.2 и NetBSD 1.5 (на которую когда-то перешел с FreeBSD). С 2002 г. — разработчик NetBSD. С ноября этого года — коммиттер FreeBSD.
Пользовались ли вы NetBSD?

Проголосовало 494 человека. Воздержалось 85 человек.

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

Перевод: Julio Merino
Alexey Dokuchaev @danfe
карма
51,2
рейтинг 0,1
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (18)

  • 0
    Думаю, в опрос надо добавить пункт «Пользуюсь эпизодически для каких-то специальных задач»
    • 0
      Я взвесил ваше предложение и все-таки решил не менять опрос: 1) добавление еще одного варианта снижает репрезентативность результатов и просто нехорошо по отношению к уже проголосовавшим; 2) использование NetBSD, например, на тостере (упоминается как вариант) вполне можно считать эпизодическим использованием для специальных задач. :-)
  • +8
    Нет, не пользовался, но хочу попробовать

    Нет, никогда не пользовался и не собираюсь: бесперспективняк

    А где просто вариант «Нет, никогда не пользовался и не собираюсь»? То что я не пользуюсь ОС не значит что она бесперспективна. И я не собираюсь «пользоваться» и «пробовать» все-все перспективные ОС на свете.
    • 0
      Да, согласен с вами; изменил текст последнего варианта.
  • +1
    Пользовался, но потом столкнулся с одной проблемой, на тот момент кроме NetBSD винить было некого в итоге перешёл на Gentoo. Как потом выяснилось проблема была совершенно в другом месте.
  • –3
    добавьте пожалуйста ссылку на оригинальную статью — http://julipedia.meroh.net/2013/06/self-interview-after-leaving-netbsd.html
    • +3
      Дак вроде есть же? Топик перевод же. Ссылка около ника переводчка же.
      • +3
        Одно из достаточно странных решений в интерфейсе хабра, кстати говоря. Если бы ссылка на оригинал автоматом (да даже вручную) приписывалась в конец статьи-перевода, было бы легче.
  • +14
    У людей в конце 2013 года не хватает силы воли уйти с CVS? Простите, но это очень чёткий маркер того, что ничего нового и хорошего в этом проекте уже не будет.
    • +2
      Справедливости ради стоит отметить, что так было далеко не всегда; в свое время (2003 г.) после нашумевшего сравнения разных BSD-систем, NetBSD очень оперативно (за две недели) исправили все основные проблемы с масштабируемостью:
      [Nov 1 2003] I got an email suggesting that I re-check NetBSD. The results are nothing short of astonishing. In two weeks time the NetBSD team made dramatic improvements.

      socket: previously O(n), now O(1).
      bind: greatly improved, but still O(n). Much less steep, though.
      fork: a modest O(n) for dynamically linked programs, O(1) for statically linked.
      mmap: a bad O(n) before, now O(1) with a small O(n) shadow.
      touch after mmap: a bad strange graph in 1.6.1, a modest O(n) a week ago, now O(1).
      http request latency: previously O(n), now O(1).

      Congratulations, NetBSD! NetBSD now has better scalability than FreeBSD.
    • +1
      Не все же так просто. Нельзя вот так просто взять и перенести все исходники со всей историей и со всеми ветками. На это требуется время, люди. Всплывают артефакты, которые фиксятся вручную. Работы прорва. А люди привыкли к CVS, их переубеждать замучаешься. Лучше все сделать в приказном порядке. А еще же есть скрипты, утилиты, которые надо переделывать…

      Во FreeBSD, например, переезд происходил довольно болезненно. Походу, кучу багов в subversion пофиксили и над кучей вопросов заставили задуматься разработчиков.
      • 0
        Ай да лааадно! История с ветками и юзерами прекрасно переносится, для этого есть утилиты (так же как для миграции с SVN на Git).
        Люди, «привыкшие к CVS» в 2013 году — это не программисты, а чёрти-что. Скрипты, которые нужно переделать, конечно будут. Надо переделывать. «Куча багов в subversion» уже пофикшена, вряд ли там что-то уж такое критическое им помешает.

        В общем, отмазки какие-то и нежелание работать. «Будем дальше кушать кактус и все кругом тоже пусть кушают».
  • +3
    «Ненужно, и так хорошо, а нам приятно» это и есть тот валун, под который утекает весь опенсурс, если он остается без внешнего пригляда со стороны компаний
  • +1
    Насчет миссии имхо все верно — без нее не понятно зачем оно вообще существует. Я Работал с FreeBSD, OpenBSD, знаю как бы эти системы и их плюсы и минусы. Но я никогда не мог до конца понять зачем нужна NetBSD. Нет, это конечно прекрасно что она убер-кроссплатформенная и работает на почит всем что бывает, от современного писюка до старой ПДАшки, но зачем? Ну запустил ты юникс-лайr операционку на каком нибудь редком АРМе, и что? От самой оси толку мало, нужно чтобы она решала какую то задачу или круг задач. С OpenBSD вроде понятно — безопасность. Я делал из нее stateful HA firewall еще в 2004м, в 3.5 кажется. Фря тоже вроде понятно — все подряд в большим акцентовм на интернет сервисы. А что NET?
    • +3
      Да, все верно. Julio еще в 2006 г. говорил, что одной лишь портабельностью уже никого не удивить, и что Linux работает на не меньшем числе платформ и зачастую куда лучше NetBSD.
  • +1
    Мне это очень напоминает РАН.
  • +1
    Кто то может пару слов сказать по поводу того, чем NetBSD лучше линукса на встраиваемых платформах?
    • 0
      Разве что совсем уж пару слов. :-)

      Непонятно, чем лучше, и лучше ли. Ну вот, в прошлом году появилась поддержка Raspberry Pi. У них, кстати, есть довольно толковый туториал как портировать на армовские SoC'и, и в принципе, можно попробовать собрать ядро для какой-нибудь development board, но скорее всего возникнут проблемы с драйверами.

      Опять же, плат ведь существует очень много, с мелкими (и не очень) отличиями, а NetBSD вроде бы пока не имеет унифицированного механизма конфигурации устройств типа FDT; вот, например, письмо по этому поводу, сентябрьское. Там вообще вся дискуссия небезынтересна.

      Еще есть довольно старые (2005 г.) слайды от Infosys, там немного технических подробностей о различиях двух систем.

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