ОКНО ДИАЛОГА: Ян из Sun
Автор: Илья Щуров Voyager
В один прекрасный день отец Яна Мёрдока сменил свою пишущую машинку на компьютер Apple II, который захватил воображение будущего основателя легендарного Linux-дистрибутива. Увлечение компьютерными играми прошло вместе с детством, уступив место программированию. Так все и началось. Ныне г-н Мёрдок - вице-президент подразделения Developer and Community Marketing компании Sun Microsystems. Сейчас, в 2008 году он занимается во многом тем же, чем занимался пятнадцать лет назад, - изменением мира. Мы встретились с ним на конференции Sun Tech Days, проходившей в Санкт-Петербурге, чтобы обсудить успешные и неудачные проекты, настоящее и будущее Linux и Solaris и сообщества free/open source software (FOSS) в целом.
Иногда кажется, что окружающие нас вещи всегда были такими, какими мы привыкли видеть их сегодня, - и всегда такими и останутся. Теоретически все мы знаем, что иногда случаются революции - но происходят они слишком редко, чтобы быть осязаемой правдой. А когда наконец что-то меняется, мы воспринимаем изменение с задержкой - и как уже свершившийся факт.
Как устроен Linux-дистрибутив, сегодня представляют себе не только небритые линуксоиды с красными глазами, но и многие "нормальные люди", - хотя бы в общих чертах. Такие термины, как менеджер пакетов, репозитарий или RPM, не кажутся совсем уж черной магией, а вручную бороться с разрешением зависимостей приходится в основном экстремалам, собирающим "Linux From Scratch". Но это не значит, что так было всегда. Когда-то дистрибутивов в современном понимании этого слова не было вообще. Linux уже придумали, а дистрибутивы - еще нет.
Речь идет о 1992-93-м годах. Было бы преувеличением сказать, что революция произошла из-за письма, отправленного 16 августа 1993 года двадцатилетним студентом университета Purdue Яном Мёрдоком в ньюсгруппу comp.os.linux.development, в котором он сообщал о начале проекта Debian. Конечно, это был не первый дистрибутив Linux (хотя слово это еще не было распространено, и в своем сообщении Мёрдок называет свой проект "Debian Linux Release"). В то время была распространена Softland Linux System (SLS) - одна из первых Linux-систем, включавшая в себя не только ядро и несколько базовых утилит проекта GNU (именно в таком минималистичном составе тогда распространялся Linux, занимая лишь пару дискет), но и другие важные для работы модули (в том числе графическую подсистему X).
Однако SLS был очень далек от современных дистрибутивов и обладал множеством недостатков. Созданный с нуля Debian оказался прорывом - не только с технологической точки зрения (введя такие революционные возможности, как установка и настройка ОС с помощью системы меню и интеллектуальную систему управления пакетами, позволяющую обновить всю систему одной командой), но и с социальной. Обнаружив, что не в состоянии достигнуть своих целей в одиночку, Ян Мёрдок предложил всем желающим участвовать в разработке. Несмотря на то что ядро Linux уже разрабатывалось в распределенной модели, для ОС целиком это казалось почти невозможным. "Как могут люди из разных частей света, разговаривающие на разных языках, безо всякого "генерального плана", без оплаты создать столь сложную штуку, как операционная система?" - писал Мёрдок в 2003 году, вспоминая события десятилетней давности. Оказалось: могут. И еще как!
Debian оказался революционным примером работы децентрализованного некоммерческого сообщества добровольцев, со своей "конституцией" (social contract), своими "законами" (policy) и своей системой принятия решений - максимально открытой и демократичной. Впрочем, демократии, по мнению Мёрдока, в проекте с самого начала было слишком много. Отсутствие "власти лидера", который может поставить точку в любом споре или принять непопулярное, но необходимое решение, может привести к стагнации проекта из-за внутренних противоречий.
- Обсуждения и поиск консенсуса - это хорошо, когда у вас есть небольшое "ядро" разработчиков. - Говорит Мёрдок. - Например, этот метод работает в Apache Foundation. Но он очень плохо масштабируется. Скажем, если вы управляете компанией в десять человек, то можете себе позволить неформальное принятие решений за кружкой пива. Но если сотрудников сотни (а в Debian сейчас больше тысячи разработчиков), вам понадобятся лидеры, менеджеры и т. д. В open source все то же самое - чтобы в проекте что-то реально делалось, нужен сильный лидер.
Ян часто сравнивает управление сообществом добровольцев и коммерческой компанией - и полагает, что между этими двумя видами деятельности много общего, несмотря на разницу в подходах и целях.
- Ключевой вопрос в обоих случаях - это мотивировать людей следовать за вами. В случае коммерческой компании это несколько проще - вы можете мотивировать людей с помощью денег. В случае сообщества - особенно в случае некоммерческого проекта типа Debian, основанного на работе добровольцев, - вам нужно проявить творческий подход, чтобы увлечь людей за собой.
Одним из способов добиться этого, по мнению Мёрдока, - дать людям почувствовать себя частью чего-то большего, превосходящего возможности отдельного человека. Впрочем, даже когда эта задача решена, в сообществе может возникнуть множество других проблем. Мёрдок рассказывает про недавнюю инициативу DuncTank (мы писали о ней в "КТ" #657):
- У Debian всегда были трудности с соблюдением сроков выхода релизов. Лидеры проекта приняли решение собрать некоторые деньги и нанять людей для управления процессом выпуска очередной версии. Но это не помогло и вызвало недовольство многих участников, которые всегда работали бесплатно. Конечно, этого следовало ожидать, ведь мы вводим деньги в сообщество, которое их никогда не видело, - хотя наблюдать за этим было интересно.
Впрочем, это не значит, что финансировать работу свободного сообщества вообще невозможно - но делать это нужно очень аккуратно.
- Мы когда-то делали один продукт, основанный на Debian, и наняли нескольких разработчиков, чтобы они участвовали в деятельности Debian-сообщества. Такого противостояния, как против DuncTank, это не вызвало, скорее наоборот. Вообще, open source стремится быть меритократией (власть достойных) - люди, делающие большую часть работы, имеют наибольшее влияние. И только так можно повлиять на процесс разработки: инвестируя, вкладывая свой код, участвуя в жизни сообщества. Например, в Sun мы нанимаем огромное количество людей, работающих над OpenSolaris.