Рубрика:
БИТ. Бизнес & Информационные технологии /
Секрет успеха
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
Сергей Супрунов
Куда приведет Open Source?
Только два стимула заставляют людей работать – жажда заработной платы и боязнь её потерять.
Генри Форд
Движение Open Source зародилось как протест против проприетарного подхода к программному обеспечению и поначалу воспринималось, скорее, как развлечение. Cейчас всё большее число компаний связывают с открытыми проектами свой бизнес. Попытаемся разобраться, что ждёт эти проекты в перспективе.
Что мы хотим от программы
Сначала посмотрим, каким требованиям должна отвечать программа, чтобы называться «хорошей» с точки зрения конечного потребителя. Очевидно, что основное требование – минимум ошибок. Ошибки, которые в ней всё же будут выявляться, необходимо устранять профессионально и как можно быстрее. Не последнюю роль играют удобство работы и понятность интерфейса, а на все вопросы должна быть возможность получить грамотный и исчерпывающий ответ.
То есть программный проект должен разрабатываться квалифицированными специалистами (в том числе и в области эргономики), снабжаться качественной документацией и эффективной технической поддержкой. Способны ли открытые проекты соответствовать этим требованиям?
Что движет разработчиками
Как известно, люди ничего не делают просто так. Им непременно нужна мотивация. Такова наша природа. И чтобы понять, какое будущее ждёт открытое ПО и что мы сами можем ждать от него, нужно попытаться разобраться в таком вопросе: что заставляет людей распространять свои программы бесплатно?
Ричард Столлмен в своём письме «Свободному ПО двадцать лет: что дальше?» выделяет два вида мотивации: отсутствие нужной программы и желание быть свободным. Но, думаю, при более детальном рассмотрении мотивов будет больше. Коротко охарактеризую основные из них.
Удовлетворение своих нужд
На этот мотив указывает и Столлмен, а также Эрик Реймонд в своей нашумевшей статье «Собор и Базар» [2] – иногда случается так, что вы не можете найти готовую программу (пусть даже и за деньги), которая обладала бы нужными вам качествами. Тогда вы разрабатываете её самостоятельно и тем самым удовлетворяете свои потребности. То есть силы и ресурсы, затраченные на разработку и затрачиваемые в дальнейшем на сопровождение, окупаются уже тем, что вы сами используете эту программу. Следовательно, вы ничего не потеряете, если отдадите её ещё кому-нибудь бесплатно (если, конечно, не боитесь, что ею воспользуются и ваши конкуренты).
Следующий логический шаг – выпустить её не просто бесплатно, но с открытым кодом. Вы по-прежнему ничего не теряете, но зато можете рассчитывать, что какая-нибудь «добрая душа» (мотивы доброты которой мы ещё рассмотрим) будет помогать вам в вашей разработке (хотя бы указывая на ошибки).
С точки зрения сообщества такая мотивировка не позволяет продукту далеко отойти от удовлетворения частных потребностей его разработчика. И его качество будет ровно таким, какое необходимо разработчику – не больше и не меньше. К тому же на гарантированную техподдержку тоже рассчитывать не приходится. Конечно, если проект очень хорош, то у него есть все шансы вырваться из-под крыла своего создателя и «уйти в свободное плавание». Но этим движут уже другие мотивы...
Программировать, чтобы учиться программировать
Лучший способ научиться говорить по-английски – это говорить по-английски. То же самое и с программированием – практика, и желательно не просто уровня «Hello, world!», к чему быстро теряешь интерес, а участие в реальном проекте – это неотъемлемое условие достижения высоких результатов.
В этом плане работа над открытыми проектами практически идеальна – вам всегда будут рады, от вас ничего не будут требовать сверх ваших возможностей, общаясь с настоящими «гуру» своего дела, вы сможете перенять то, что американцы называют «лучшими практиками», то есть освоите наиболее эффективные приёмы работы, познакомитесь с красивыми алгоритмами и т.д. Было бы желание.
Однако эта мотивация накладывает два ограничения. Во-первых, далеко не каждый программист, пришедший в проект учиться, обладает необходимой квалификацией для разработки действительно качественного кода. Во-вторых, как только он достигнет достаточно высокого уровня, действие данного стимула на этом и заканчивается.
Конечно, Open Source затягивает. Ощущение причастности к большому, общему и полезному делу заставляет не спать ночами, и потому многие недавние «ученики» не всегда «завязывают» с открытым ПО, достигнув желаемого уровня мастерства. Но поскольку их мотивация меняется, то и данный стимул нельзя назвать основополагающим для построения прочного и долгоживущего открытого проекта.
Наработка «портфолио»
Каждый, кому доводилось искать работу, наверняка знает, что работодатель гораздо чаще задаёт вопрос «что ты умеешь», а не «что ты знаешь». То есть опыт практической работы приобретает первостепенное значение, и запись в резюме об участии в проекте разработки операционной системы выглядит зачастую более предпочтительно, чем наличие высшего образования по специальности «системный программист».
И здесь открытые проекты опять-таки подкупают низкой «планкой вхождения». Но эта мотивация тоже не вечна – она работает лишь до тех пор, пока человек не найдёт работу, о которой мечтал.
Выполнение должностных обязанностей
Да, есть такие счастливцы, которые получают зарплату, разрабатывая открытые продукты. Немало программистов, работающих над Linux, найдётся в таких компаниях, как IBM, Oracle, не говоря уже об Red Hat Inc. и Novell, чей бизнес напрямую связан с этой операционной системой. (Нужно заметить, что здесь есть и свои ограничения – вложения в открытое ПО ничем не защищены, то есть любой конкурент вполне может совершенно бесплатно воспользоваться теми результатами, на достижение которых были потрачены немалые средства.)
С мотивами здесь всё понятно, но нужно также понимать, что корпорации оплачивают эту работу не по щедрости душевной, а преследуя вполне определённые коммерческие цели. Впрочем, о них мы поговорим чуть позже.
Just for fun
Знаменитый «мотив» Линуса Торвальдса. Да, программирование захватывает и доставляет истинное наслаждение – вне компьютерной жизни не часто удаётся почувствовать себя всемогущим творцом. Оно вполне может быть хобби, и для некоторых так оно и есть. А на хобби мы готовы тратить кучу денег и времени, даже не задумываясь о выгоде, отдаче и т.д. Нам это нравится, и этого достаточно.
Но, как пишет сам Торвальдс в своей книге «Just for Fun. Рассказ нечаянного революционера», удовольствие – это третий, заключительный этап эволюционирования любой вещи. Этому этапу предшествуют борьба за выживание и достижение социального статуса. То есть программировать просто так, ради одного лишь удовольствия, человек будет только после того, как накормит свою семью, обеспечит ей крышу над головой, завоюет устойчивое положение в обществе. И если только вы не владеете солидным пакетом акций какой-нибудь крупной компании, то на программирование ради удовольствия остаётся не так уж и много времени. Особенно когда у вас есть возможность делать то же самое, но за деньги...
К тому же в полном жизненном цикле проекта далеко не всё будет доставлять удовольствие. Кто-то не любит писать документацию, кому-то не нравится отлавливать неочевидные ошибки... Как метко заметил Николай Безруков в статье «Повторный взгляд на Собор и базар», «талантливые разработчики в первую очередь программисты, а не тестеры: они обычно предпочитают делать собственные ошибки, а не исправлять ошибки других». Так что этот мотив тоже нельзя рассматривать в качестве гаранта высокого качества и долгосрочности проекта.
Протест и борьба за идеалы
Второй из «столлменовских» мотивов – вы пишете открытые программы, потому что считаете неправильным брать за них деньги и запрещать людям изучать и модифицировать их код. Особенно когда сами создали свою программу, пользуясь идеями и наработками других людей.
Это, конечно, хороший и благородный мотив, но, к сожалению, трудно найти кого-то кроме самого Ричарда, кто им на самом деле руководствовался бы (ну ещё Торвальдс ссылается на него в своей книге как на одну из причин сделать код Linux открытым).
Кстати говоря, идеологические принципы, лежащие в основе движения FOSS (Free and Open Source Software), всё чаще подвергаются сомнению. Не так давно даже Эрик Реймонд выразил мнение, что открытые проекты более лояльно должны относиться к коммерческим системам и, в частности, к включению проприетарного кода в открытые продукты [5]. Это, по его мнению, является ключевым условием сохранения жизнеспособности Linux.
Азарт и жажда борьбы
Это менее идеализированный вариант предыдущего случая – людям нравится бороться. Они готовы тратить силы и время, чтобы быть лучше других. Это их распаляет, зажигает огонь в глазах. Но для этого нужен достойный противник. Не намного сильнее, чтобы борьба с ним не выглядела безнадёжным делом, но всё же находящийся впереди. Сейчас такой противник есть – коммерческое ПО. Оно гораздо сильнее распространено, и зачастую лучше свободных аналогов. (Что бы там ни говорили, но я использую AbiWord для подготовки этой статьи лишь потому, что он бесплатен и работает в Ubuntu, а вовсе не потому, что он лучше MS Word технически.)
Но что будет, когда открытые программы станут действительно лучше коммерческих? Их разработчики просто потеряют интерес к дальнейшему улучшению. Но и не победить тоже нельзя – когда всё время бежишь вторым, начинаешь думать, что первым тебе никогда не стать, а раз так, зачем вообще бежать?
К сожалению, большинство из этих факторов не всегда в состоянии стимулировать работу над проектом, что называется, «от и до». Первоначальная работа, когда идея начинает воплощаться во что-то реальное, доставляет массу удовольствия. Но вот когда дело доходит до необходимости «вычищать» ошибки (не зря говорят, что последние 10% проекта отнимают 90% времени), отвечать на бесконечные однообразные вопросы пользователей, да и даже писать документацию, то здесь уже не всегда энтузиазма хватает... Традиционный путь – «свалить» это на новичков, присоединившихся к проекту («поработай с пол-годика в Bugzilla, а там, может, и в разработчики возьмём»).
Так что можно сделать небольшой промежуточный вывод о том, что из существующих мотиваций единственная, которая может оказывать более-менее серьёзное влияние на полноценное развитие открытых проектов в долгосрочной перспективе, – это всё-таки оплачиваемая работа. Попытаемся разобраться, зачем же коммерческим компаниям может понадобиться оплачивать разработку открытых программ.
«Шкурный интерес»
Не подлежит, думаю, ни малейшему сомнению тот факт, что любое вложение, осуществляемое коммерческими компаниями, направлено на получение прибыли. (Единичный случай с Canonical Ltd. принимать во внимание не будем – не каждому мультимиллионеру захочется тратить свои деньги так, как это делает Шаттлворт. Да, кстати говоря, и Canonical не только благотворительностью занята.)
Поэтому посмотрим, как же можно зарабатывать на открытых программах, которые каждый желающий может распространять безо всяких ограничений и по любой цене.
Проекты под заказ
Это, скорее, теоретическая возможность, нежели практический пример. Суть открытого и свободно распространяемого ПО в том, что получив тем или иным способом (в том числе и купив) программный продукт, вы можете легко передать его кому-то ещё по меньшей стоимости или даже бесплатно. Фактически, разработчик получает гарантию только на первую продажу. Так что если сделать первоначальную стоимость продукта достаточно высокой, то таким путём можно попытаться компенсировать затраты на разработку и даже получить прибыль.
Пожалуй, единственный способ продать один экземпляр программы по цене, превышающей её себестоимость, – это разработка на заказ (иначе как вы получите гарантию, что вообще сможете что-то продать). Но весь фокус в том, что заказчик, выкладывая немалые деньги, будет, скорее всего, желать получить программу в свою полную собственность, так что об Open Source в данном случае речь вряд ли будет идти (разве что разработка будет основана на GPL-коде, и заказчика поставят перед фактом, что «иначе нельзя»). Потому я и охарактеризовал данный пункт как теоретический.
Продвижение сопутствующих товаров
Вот этому уже можно найти массу практических примеров. IBM активно спонсирует разработку Linux, чтобы более успешно продвигать свои серверные решения, да и чтобы на их новом процессоре Cell гарантированно работала хотя бы одна операционная система. Sun Microsystems частично открыла коды Solaris и готовится сделать то же самое с Java. Но отнюдь не из любви к свободе – просто ей нужно продавать свои Sun Fire. Безусловно, эти примеры слишком упрощены и в какой-то степени даже грубы, но тем не менее смысл они отражают довольно точно – бесплатное распространение программ в данном случае служит средством повышения прибыли в других областях.
А прибыль может повыситься только в одном случае – если мы, то есть конечные потребители, выложим больше денег. Так что это «бесплатное» ПО довольно сильно начинает смахивать на пресловутый сыр...
Борьба с конкурентами
И снова сразу же вспоминается IBM. Она ведёт свой бизнес в самых различных секторах рынка. И, например, в секторе корпоративных баз данных одним из основных конкурентов IBM является Microsoft. Но Microsoft имеет интерес и в секторе операционных систем, куда IBM уже давно не стремится. Так что если поддерживать бесплатную ОС, то можно нанести серьёзный урон своему конкуренту, ничуть не пострадав самому.
И если в предыдущем случае (продвижение других товаров) компания-спонсор так или иначе диктует свои требования разработчикам, чтобы получить те свойства продукта, которые соответствовали бы её маркетинговым целям, то для того чтобы «подложить свинью» конкуренту, достаточно просто создать участникам открытого проекта условия для разработки превосходной программы. С точки зрения сообщества этот способ меценатства наиболее хорош. К тому же, если вам не нужна корпоративная СУБД, то и переплачивать за неё вы не будете.
Техническая поддержка
На этом в значительной степени строят свой бизнес такие компании, как Red Hat Inc., Novell, Mandriva... То есть основной источник дохода – не продажи программы, а плата за её обслуживание. Поскольку люди, особенно в корпоративном секторе, хотят просто делать свою работу с помощью компьютера – рассчитывать фундамент здания, рисовать дизайн будущего автомобиля, раскладывать пасьянс, – то они совсем не желают знать, что такое файловая система и загрузчик, не говоря уже о том, чтобы это ещё и настраивать.
Отвлекусь на небольшое наблюдение. Очень многие готовы, не задумываясь, отдать некоторую сумму за то, чтобы им настроили подключение к Интернету на домашней Windows XP. То есть операция «Пуск –> Все программы –> Стандартные –> Связь –> Мастер новых подключений» является для них непосильной задачей. Безо всякой иронии скажу, что так и должно быть – не дело бухгалтера или врача разбираться в «драйверах», «логинах» и «IP-адресах» (хотя Microsoft и делает всё, чтобы пользователю приходилось с этим сталкиваться как можно меньше). А открытые проекты, где довольно часто помощь ограничивается аббревиатурой «RTFM», не зря славятся своей сложностью.
Кстати говоря, нынешнее отношение разработчиков многих открытых программ к своим пользователям стимулирует возврат к натуральному хозяйству: «Вы же получили исходники? Если что-то не нравится, нанимайте программиста и переделывайте, как вам надо». Как указывается в аналитическом отчёте компании Elashkin Research [6], даже если специалисты необходимой квалификации уже есть в компании, работодатель фактически будет вынужден оплачивать их занятие непрофильной деятельностью.
Так что люди готовы платить за техническую поддержку. Но здесь, когда речь идёт об открытых программах, мы наталкиваемся на очень интересную вещь. Для начала ответим на вопрос: заинтересована ли коммерческая компания в повышении качества продаваемой ею программы? Да, заинтересована. Потому что основной источник дохода – продажи, и чем лучше будет программа, тем лучше она будет продаваться и тем меньше будут издержки на её сопровождение.
Теперь зададим тот же вопрос применительно к открытым продуктам. Ответ, к сожалению, будет отрицательный. Ведь спрос на техническую поддержку будет тем больше, чем больше с программой проблем и чем сложнее с ней разобраться. И лишь высокий уровень конкуренции сдерживает появление совсем никуда не годных продуктов.
Сейчас, конечно, технология программирования такова, что ошибки неизбежны, так что компаниям, специализирующимся на технической поддержке, специально заботиться о них нет нужды. Но кто знает, что будет, когда в Linux будет устранена последняя ошибка?
Иногда программы с открытым кодом выполняют роль «демо-версий», служащих продвижению коммерческих версий того же продукта. В качестве примера можно привести MySQL, Sendmail. Но данный случай, в зависимости от того, насколько возможности открытой версии меньше, чем коммерческой, может быть отнесён либо к «продвижению сопутствующих товаров», либо к «технической поддержке». Поэтому отдельно я его не выделяю.
Так что получается, что попытки заработать на открытых проектах (и тем самым обеспечить этим проектам необходимый источник финансирования) так или иначе отражаются на карманах конечных пользователей и при этом не стимулируют улучшение качества программ.
Зачем открывать код
Зачем же тогда коммерческие компании открывают код своих флагманских продуктов, если на этом так сложно зарабатывать? К сожалению, нужно признать, что открывается в основном код тех продуктов, на которых итак уже становится сложно зарабатывать. Открытие кода зачастую похоже на принцип «отдать палец, чтобы спасти руку» – это привлекает внимание к компании (и к другим её продуктам), вливает в проект новых (и притом бесплатных) разработчиков и тестеров, и т.д. Приходится, конечно, серьёзно спонсировать эти сообщества (ядро разработчиков OpenOffice.org ещё долго, наверное, будут составлять оплачиваемые компанией Sun программисты), но определённая отдача от этого всё-таки есть. А значит, не прямо, так косвенно, но именно конечные пользователи оплачивают этот «жест доброй воли».
Свобода во всём
Конечно, есть ряд проектов, разрабатываемых как «некоммерческие». Финансирование им тоже необходимо, если они действительно стремятся обеспечить должный уровень качества. И здесь основным способом получить необходимые средства становятся пожертвования компаний и частных лиц. Но пожертвования редко позволяют обзавестись серьёзным «железом» для выполнения всестороннего тестирования разрабатываемого продукта, не говоря уже о привлечении сторонних специалистов для выполнения «непрестижной» работы.
То есть некоммерческие проекты зачастую держатся на голом энтузиазме, который, к сожалению, не вечен. Безусловно, есть успешные примеры, такие как Debian, хотя более чем три года ожидания Sarge продемонстрировали, что и здесь могут быть существенные проблемы.
Шаг в бизнес
Ещё одна тенденция наших дней – компании, строящие свой бизнес на открытых проектах, всё чаще говорят о необходимости более явно переходить на коммерческие рельсы. Например, Саймон Фиппс, занимающий руководящую роль в Sun Microsystems, призвал сообщество Open Source «усвоить уроки капитализма и капиталистов».
Особо показательна позиция российской компании «LINUX-ONLINE» – разработчика дистрибутива Linux XP Desktop. Её «манифест» [8] явно декларирует, что при сохранении доступности Linux «каждому пользователю PC» в Linux необходима сильная коммерческая составляющая. К сожалению, нужно признать, что это не просто маркетинговый ход, нацеленный на продвижение своего дистрибутива (хотя сами они указывают, что разрабатывают не «дистрибутивы», а «решения»), а вполне обоснованная позиция.
Действительно, если в качестве стратегической цели разработки ставить как можно более широкое распространение продукта, то это неизбежно приведёт к увеличению доли «пассивных» пользователей, которые лишь потребляют продукт, но сами не участвуют в его разработке. Эта тенденция итак характерна сейчас для многих открытых проектов. В итоге если разработчики хотят сохранить этих пользователей, то им придётся более серьёзно относиться к вопросу технической поддержки. А это уже возможно лишь на коммерческой основе.
По большому счёту разработчикам, если они не получают за это деньги, безразлично, будет их программа использоваться одним пользователем или несколькими миллионами. Вот число активных пользователей, присылающих грамотные отчёты об ошибках или даже патчи, – фактор критический, но, к сожалению, на нынешнем этапе развития Open Source можно, наверное, считать, что здесь потенциал для экстенсивного роста почти исчерпан. Кто хотел участвовать в открытых проектах, тот в них уже участвует.
На самом деле проектам нужны и пассивные пользователи – но лишь как средство влияния на потенциальных инвесторов и жертвователей, ну и в определённой степени как повод гордиться своим детищем.
Назад в будущее
Получается, что бизнес-модель Open Source не подкреплена достаточно надёжными и долгосрочными ресурсами, гарантирующими качественное и эффективное развитие и в будущем. Так есть ли это будущее у открытых проектов вообще?
На мой взгляд, есть. Но чтобы его увидеть, нужно забыть о коммерческой составляющей и обратить внимание на то, что процесс работы над открытыми проектами очень напоминает научную работу. Действительно, в научной среде тоже принято делать достоянием общественности новые теории, результаты экспериментов и т.д. И каждый может опереться на достижения своих коллег, чтобы продвинуться ещё дальше. Это естественная схема обмена мыслями и идеями, выработанная, скажем так, «эволюционным» путём и отличающаяся от столь же естественной схемы обмена товарами и услугами. А программа – это, скорее, идея, чем материальная вещь.
По большому счёту движение Open Source зародилось именно в научной среде. BSD, UW-IMAP, Exim, X-Window являются хорошими примерами. Эти проекты и сейчас во многом опираются на университеты.
Что может дать открытым проектам возврат в науку? Во-первых, хоть и небольшое, но всё же стабильное финансирование, поскольку любое здравомыслящее государство заинтересовано в дешёвых и эффективных программах, а также в грамотных специалистах, выучившихся на этих самых программах. Да и для коммерческих компаний, которые сейчас используют открытое ПО и потому оказывают поддержку проектам Open Source, в принципе ничего не меняется.
Во-вторых, университет – это практически неисчерпаемый источник студентов-добровольцев (а порой и не совсем добровольцев), которых можно привлечь к той или иной работе. Конечно, рассчитывать в этом случае на высокую квалификацию разработчиков не приходится, но под чутким руководством грамотного профессора эффективность их работы, скорее всего, будет заметно выше, чем при нынешнем способе взаимодействия в большинстве сообществ.
Научный подход позволит более фундаментально подходить к разработке, когда на смену принципу «если это работает – не трогай» придёт подход «выбирай наилучшее решение». Может быть, это несколько затянет время разработки и появления новых функций, но зато можно будет говорить о заметном повышении качества. А «фичи» всегда студенты-энтузиасты добавят.
Остаётся открытым вопрос с технической поддержкой, но этим в принципе по-прежнему могут заниматься коммерческие компании на платной основе. Им даже проще будет строить свой бизнес, поскольку «источник» разработки более предсказуем и есть с кем при необходимости вступить в переговоры.
Подводя итоги
Таким образом, можно сделать вывод, что дальнейшее развитие Open Source рано или поздно упрётся (наверно, можно сказать, что уже упирается) в недостаток разработчиков, не говоря уже о «сотрудниках», занятых на таких неинтересных направлениях, как техническая поддержка. В то же время рост числа пассивных пользователей, требующих от разработчиков «коммерческого» качества по «свободной» цене и мешающих тем самым программировать просто для удовольствия, постоянно будет усиливаться.
В этих условиях у открытых проектов есть, на мой взгляд, три пути. Первый – не обращать ни на что внимание и просто делать то, что и делали. Возможно, здесь трудно будет говорить о высоком качестве конечного продукта. Возможно, использовать его будут лишь несколько сотен человек, которые сами же и занимаются его разработкой. Но, в конце концов, не слишком давно так всё и было.
Второй – переход на коммерческие рельсы. Только деньги всё же лучше брать за сам продукт, а не за его поддержку – так оно и честнее, и понятнее для конечного пользователя. Да и не будет соблазна оставить «дырочку», чтобы потом дать повод пользователям пожалеть, что не подписались на обновления.
Третий путь – переход на научные принципы разработки без оглядки на число вовлечённых пользователей, показатели TCO, привлекательность для инвесторов. А все «рыночные» вопросы оставить на откуп коммерческим компаниям.
Что получится на самом деле – время покажет.
Удачи!
- Столлмен Р. Свободному ПО двадцать лет: что дальше? – http://zdnet.ru/?ID=312009.
- Реймонд Э. Собор и базар – http://www.seagreen.ru/free/esr/esr_cathedral-bazaar2.html.
- Торвальдс Л., Даймонд Д. Just for Fun. Рассказ нечаянного революционера. – Эксмо-Пресс, 2001.
- Безруков Н. Повторный взгляд на Собор и Базар – http://www.linux.org.ru/books/GNU/misc/second-look-at-CatB.html.
- http://www.nixp.ru/news/7670.
- Бизнес модель Open Source – перспективы и угрозы. Elashkin Research – http://www.elashkin.com.
- http://www.nixp.ru/news/7583.
- Манифест Linux XP Desktop – http://linux-online.ru/about/articles/detail.php?ID=897.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|