open-money

зарабатываем на Open Source

крис касперски

ожесточенная конкуренция между программистами, заставляет не только совершенствовать качество кода, но так же искать новые, более эффективные, бизнес схемы, использующие все доступные средства, в том числе и концепцию открытых исходных текстов, уверенно противостоящую компаниям-гигантам

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

Примечательно, что большинство вышеуказанных личностей сами ничего не программируют, но с удовольствием пользуются программами, за которые не нужно платить. Естественно, им хочется, чтобы таких программ было как можно больше. Тем временем, программистам нужно на что-то жить, и не просто жить, но еще покупать дорогостоящую вычислительную технику, летать на различные конференции, да и просто носиться на Феррари в свое удовольствие — почему бы и нет, если их труд оплачивается?!

В 16 лет еще можно работать на благо человечества, не требуя ничего взамен, но с возрастом неизбежно встает проблема: как _зарабатывать_ на жизнь?! Программисты относятся к тем немногим счастливым людям, которые могут совмещать приятное с полезным, полностью отдаваться своей работе, буквально самоотождествляя себя с ней и при этом зарабатывая весьма немалые деньги, правда, с каждым годом этих денег становится все меньше и меньше. Массовый рынок давно находится под пятой крупных корпораций, мелкие фирмы скупаются на корню или идут ко дну косяками. Узкоспециализированные сектора рынка еще как-то держатся на плаву, но объемы продаж до Феррари явно недотягивают.

Открытые исходные тексты представляют реальную угрозу для компаний-гигантов и дают программистам возможность урвать свой кусок пирога, пополнив карманы пачками приятно хрустящих банкнот. Здесь, в этой статье, мы будем говорить исключительно о коммерческой составляющей Open Source, оставив идеологическую подоплеку в покое. Но для начала нужно разобраться с терминологической путаницей, царящей в этом мире.

Английский язык относится к числу наиболее примитивных среди всех высокоразвитых, чем, собственного и объясняется его популярность, а вовсе не тем, что Америка правит миром и центр научно-технического прогресса находится именно там. В английском очень мало слов, вследствие чего каждое слово имеет множество значений, что, в конечном счете, едва не погубило движение Open Source. Термин «free» означает не только «свободный», но и «бесплатный», поэтому, понятие «FreeSoftware» можно толковать двояко и большинство пользователей (по закону Мерфи) истолковали его совсем не так, как задумывалось. Чуть позже «free» заменили на «open», но это лишь добавило путаницы и позволило Microsoft и другим компаниям «примазаться» к движению за свободное ПО, путем раскрытия части исходных текстов под подписку о неразглашении и без передачи прав на их последующую модификацию.

Давайте выделим следующие уровни свободы. Абсолютная свобода предоставляется BSD-подобными лицензиями, позволяющими делать с исходными кодами все, что угодно: нарезать на болванки и перепродавать, модифицировать по своему усмотрению, использовать в составе коммерческих проектов… и все это без каких-либо отчислений! В частности, на базе свободной BSD построена закрытая CISCOOS, а ряд сетевых компонентов лег в основу стека NT. Компании-гиганты обогатились, а разработчики… подарили миру свободный код, повторив историю с Прометеем.

Свобода «коммунистического типа» предлагается нам под видом GPL-подобных лицензий, требующих отчислений в случае применения их в коммерческих проектах или открытия кода всего проекта под все той же GPL. Это справедливо, но… никакой свободой здесь не пахнет. Во многих случаях, GPL является хитрым маркетинговым трюком: «свободная» программа требует гораздо меньших вложений в рекламу для ее продвижения. Людям свойственно скачивать то, что бесплатно, но… как только дело доходит до коммерческого применения, приходится либо нарушать лицензию (ведь открывать свой код только потому, что там используется пара «свободных» библиотек, никто не будет!), либо… платить разработчикам!

Поэтому, BSD – это свобода и открытость, а GPL – всего лишь открытость. Что же касается «бесплатности», то это всего лишь миф. По дорогам можно тоже ездить как бы бесплатно, но если вспомнить, что их строительство как правильно финансируется из местного бюджета, а местный бюджет — это налоги, то какая-то странная «бесплатность» у нас получается. Другой пример из той же оперы — телевидение.

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

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

Прежде, чем обсуждать аргументы сторонников Open Source обратим внимание на одну интересную деталь. Большинство пользователей предпочитают скачивать готовые бинарные сборки, игнорируя наличие исходных текстов, которые, во-первых, занимают гораздо больше места, а, во-вторых, очень часто требуют внешних библиотек, векующих в свою очередь дополнительные зависимости, причем, все они не самым лучшим образом стыкуются друг с другом, отказываясь компилироваться новой (или, наоборот, старой) версией компилятора. И даже когда сборка проходит без сучка и задоринки, она все равно требует процессорного времени и дискового пространства, не говоря уже о сетевом трафике.

Так зачем же скачивать исходные тексты, если мы не собираемся дорабатывать программу «напильником» или проводить аудит безопасности? Правильно, — незачем. Вот потому, большинство пользователей их и не качает, а один из самых популярных дистрибутивов LINUX'а — KNOPPIX распространяется без исходных текстов и ведь никто не жалуется! Другой вопрос, что собирая программу с определенными ключами, можно здорово сократить ее размер, выкинув все ненужное или оптимизировать под конкретный тип процессора, но при желании туже самую модель можно реализовать на основе динамически подключаемых библиотек, включив в дистрибутив все необходимые двоичные компоненты, размер которых будет заведомо меньше исходных текстов!

Рынок уже давно все расставил по местам, доказав, что у массового пользователя нет никакой потребности в исходных текстах, по крайней мере, в мире Windows. Пестрота UNIX-подобных систем требует создания множества бинарных сборок, а разработчикам заниматься сборками лень. Гораздо проще выложить исходные тексты и пусть каждый пользователь самостоятельно компилирует их под свою платформу, матерясь при этом всеми словами и пытаясь найти готовые сборки на неофициальных сайтах.

Короче говоря, на потребительские свойства массового продукта раскрытие исходных текстов _никак_ не влияет. Тем не менее, сторонники движения Open Source утверждают, что:

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

Но это даже не смешно! Да, действительно, вокруг крупных проектов таких, например, как Open BSD, образовалось целое сообщество поклонников, среди которых есть как эксперты, так и новички, занимающиеся поиском ошибок из чисто спортивного интереса или в качестве демонстрации (читай — рекламы) силы своего интеллекта. Однако, открытость проекта никак не связана с количеством имеющихся в нем дыр. Взять хотя бы открытого FireFox'а и сравнить его с закрытой Оперой. Лавинообразный рост критических ошибок, обнаруженных в FireFox'е за последнее время, доказывает, что качество кода определяется исключительно профессионализмом его создателей.

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

Три раза ха-ха-ха! Какой процент пользователей способен грамотно описать условия, при которых возникает ошибка? А ведь чтобы ее устранить, одной лишь квалификации недостаточно. Тут еще требуется разобраться в структуре исходных текстов, а это требует времени, причем весьма значительного. Не лучше ли поручить исправление ошибок самим разработчикам? Что же касается новых возможностей… ну хорошо, допустим, разобравшись какая строка за что отвечает, мы добавили необходимую нам функциональную возможность в программу, изменив при этом десяток файлов в сотне местах. Мы посылаем исправленные исходные тексты координатору проекта, но нас посылают обратно, поскольку уже давно вышла новая версия и никому не интересно переносить все изменения из старой, к тому же такая функциональная возможность по его мнению не нужна, да и реализована она слишком криво, нестабильно и вообще идеологически неправильно. Если наши изменения не будут приняты и включены в основной проект, это означает, что мы намертво привязываем себя к своей собственной версии, поскольку переход на новые потребует больших трудозатрат.

На самом деле, для расширения функционала программы достаточно реализовать механизм плагинов или встроенный скриптовый язык. Отладчик OllyDbg распространяется без исходных текстов, но для него написано огромное количество плагинов, которые не привязаны к какой-то одной конкретной версии и могут распространяется как по официальным, так и по независимым каналам.

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

Какая-то доля истины в этом утверждении есть, но… раскрыть исходные тексты это одно, а подобрать на свое место достойного преемника — совсем другое. Не нужно приводить в пример FireFox, возникший на обломках Netscape, и FAR, создатель которого сосредоточился на RAR'е, поняв, что не сможет тянуть два проекта одновременно. Возьмите DOS Navigator, пользующиеся во времена DOS огромной популярностью, особенно в среде программистов. Ну и где он теперь? А ведь исходные тексты открыты… Но сплоченной команды разработчиков, подхвативших знамя и проложивших «дело Ленина», как-то не сложилось и продукт распался на несколько независимых проектов, ни один из которых не получил дальнейшего развития.

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

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

Наукоемкие ноу-хау, заложенные в программу, лучше сразу патентовать, поскольку, в противном случае их все равно выдерут дизассемблером, хотя… 99% программ ничего принципиального нового (на уровне кода) в себе не содержат и основная доля находок приходится на дизайнерские решения, то есть на видимый невооруженным глазом интерфейс, а вот код… порою на него страшно смотреть. А кому хочется демонстрировать свой непрофессионализм? Особенно, если программа содержит ворованные компоненты. Анализируя откомпилированный код невозможно доказать соответствует ли он данному исходному тексту или нет, поэтому воровство легко сходит с рук.

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

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

А мотивов таких достаточного много.

проба пера

Ух ты, сколько у нас лазерных дисков скопилось!!! Без хорошего каталогизатора не обойтись. Но все существующие либо неудобны, либо не поддерживают необходимых нам возможностей, либо хотят не мерянных денег. Возникает мысль — а что, если попробовать написать каталогизатор самостоятельно?! Заодно и в программировании попрактикуемся!

И вот, каталогизатор написан, мы с удовольствуем пользуемся им и… в какой-то момент до нас доходит, что его можно продать. Мысль интересная, но с точки зрения бизнеса неправильная. Чтобы _продавать_ продукт его нужно очень сильно довести до ума — это раз. Надо состряпать хоть какую-то защиту, чтобы не взломали (хотя, все равно ведь взломают). Так же придется приготовить себя к необходимости отвечать на вопросы покупателей, оказывая им поддержку, съедающую все время и отрывающую от действительно важных проектов. Причем, заработать много денег все равно не удастся. Во-первых, на рынке уже существует куча подобных каталогизаторов, во-вторых, хакеры не дремлют, а платить свои кровные не любят даже миллионеры, наконец, в-третьих, единой платежной системы не существует и даже те пользователи, которые хотели бы купить нашу программу, не могут это сделать, поскольку перевод денег требует слишком больших телодвижений.

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

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

Конкурировать с компаниями-гигантами на самом деле не так сложно, как это кажется, особенно, если распространять свой продукт на бесплатной основе. Смотрите, несмотря ни на какие усилия Microsoft, весовая доля FireFox и Оперы все растет и растет. И хотя стабильности IE ничего не угрожает, Microsoft с большим удовольствием скупила бы конкурентов, если бы они только продавались. Многие компании изначально строят свой бизнес на том, что через некоторое время их купит тот, кому они мешают или тот, кому нужна клиентская база. Так было в случае и с WinAmp, и с ICQ… да много можно привести примеров! Вон, легендарный исследователь недр Windows Макр Руссинович, и тот продал свой бизнес Microsoft'у, чему остался страшно доволен: http://www.sysinternals.com/blog/2006/07/on-my-way-to-microsoft.html

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

Весь фокус в том, что несмотря на то, что исходный код никому из участников проекта единолично не принадлежит, основную ценность представляет не текст, а… координация его создания. Уберите лидера и проект развалится, в лучшем случае распавшись на несколько независимых «островков», в худшем — просто задохнется. К тому же, не надо забывать, что движение Open Source имеет разветвленную сеть каналов распространения программного обеспечения и постоянно используется средствами массовой информации в качестве жупела по поводу и без повода. То есть, разработка продукта под знаменем Open Source обеспечивает хорошую рекламу, способствует его продвижению на рынок, что оказывает поразительное психологическое давление на конкурентов, у которых желание прибрать наш бизнес к рукам возникает раньше, чем попытка реально оценить: какую угрозу для их существования он представляет.

Да, по лицензии GPL продукт не может быть куплен, без согласия всех разработчиков, на что поклонники Open Source всегда напирают, но зато он может быть похоронен, к чему конкуренты, собственно, и стремятся. Конечно, с психологической точки зрения, не слишком-то приятно работать с перспективной быть закопанным в могилу, но… эта бизнес схема приносит неплохие деньги, а программное обеспечение в конечном счете все равно устаревает, отправляясь в небытие.

Рассматривая программу как товар мы, во-первых, ввязываемся в войну с хакерами и пиратами, норовящими взломать программу, выложить ее в осла или распространять по цене носителя. А конкуренция?! Десятки компаний предлагают схожие по своим функциональным возможностям программы и на рынке появляются все новые и новые игроки. Как говорится, тут не до наживы! Выжить бы… А что!!! И выживем, если начнем рассматривать программу как _услугу_

Продажи программы — не единственно возможный источник дохода. Пусть программа будет бесплатной, пусть ей пользуются все желающие! А мы им поможем! Техническая поддержка, всевозможные семинары и тренинги, литература и бумажная документация… Перечень платных услуг можно продолжать бесконечно. В технически сложных программах (таких, например, как IDA Pro, PC-3000) огромную роль играет наличие центра обучения специалистов, поскольку самостоятельно разобраться с продуктами подобного уровня среднестатистический пользователь не в состоянии. А программные _комплексы_ еще требуют и грамотного внедрения. Здесь мало вставить лицензионный диск и щелкнуть по пиктограмме с надписью «install»!

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

Естественно, сразу же возникает вопрос о приватности и безопасности. Передавая он-лайновой службе описания своих дисков, пользователь рискует нарваться на очень крупные неприятности, если эти диски — пиратские (а в большинстве случаев это так и есть). Следовательно, необходимо обеспечить такой механизм передачи данных от пользователей к базе и от пользователя к пользователю, который бы _гарантировал_ со 100% надежностью, что ничей IP-адрес не будет «засвечен». Технически, добиться этого очень легко — достаточно использовать proxy-сервера, в роли которых могут выступать и сами пользователи. Да-да, если информация передается не напрямую, а через цепочку наугад выбранных пользователей, каждый из которых не запоминает IP-адрес отправителя, то определить IP-адрес обладателя данного диска — невозможно. Правда, при одном лишь маленьком условии. Что наша программа работает честно и что в ней нет никаких закладок, оставленных по просьбе (или под нажимом) спецслужб разных стран. Существует только один путь убедить пользователей, что все ОК, это — открыть исходные тексты.

Вот простой пример бизнес схемы, основанной на бесплатно распространяемом программном обеспечении. Самое забавное, что написание подобного каталогизатора не требует практически никаких вложений и хороший программист напишет его буквально за неделю. Однако, сам по себе он бесполезен и львиная доля труда уйдет на создание обширной базы данных (ну кого из нас не раздражает, когда MicrosoftCD-PlayerDeluxe не опознает очередной диск?). Переложив эту задачу на плечи пользователей, мы получим базу в обмен на… в том-то и дело, что пользователи не получат _ничего_

Допустим, с лейблами договориться не удалось, но имея базу, созданную первой волной пользователей, мы можем продавать не саму программу, а доступ к базе, который, кстати, легко контролировать, пресекая хакерскую деятельность. Невозможно сгенерировать ключ, если его проверка осуществляется на сервере, хранящим список легально проданных ключей. Постойте, а как же с базой?! Ведь вторая волна пользователей, которым она доступна за деньги, за просто так ее пополнять не будет!!! Следующая хитрость: мы говорим, что каждый, кто зальет столько-то описаний дисков получит бесплатный доступ на какое-то время (а то и на всю жизнь).

В общем, главное фантазию иметь и не зацикливаться на схеме «программа — деньги».

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

Еще одним мотивом к раскрытию кода становится сворачивание работы над проектом, как произошло, например, в случае с Netscape. К сожалению, остальные компании следовать этому примеру не хотят. Например, Compuware, объявившая о прекращении поддержки soft-ice, наотрез отказалась отдавать исходные коды последней версии за разумную сумму, хотя она могла бы их просто подарить миру, ничего от этого не потеряв. Но… в мире бизнеса законы логики работают по другому. Это намного хуже, чем собака на сене (по крайней мере, собака на сене лежит, и если она позволить корове съесть его, лежать ей придется на сырой земле, а для хвоста это нехорошо). Compuware в любом случае не получит никакой прибыли от заброшенного soft-ice и не потерпит убытка, передав soft-ice конкурентам, ведь других отладчиков у нее все равно нету, но… существует такое понятие как жадность и глупость. Глупость, хоронить легендарный продукт, вместо того, чтобы искать новые бизнес схемы для его распространения.

К сожалению, подобные ситуации не редкость, а скорее общепринятое правило поведения.

Все упирается в деньги. Мы живем не при коммунизме и окружающие нас товары и услуги стоят денег, следовательно, программировать на чистом энтузиазме можно либо за счет родителей, либо добывая средства к существованию каким-нибудь иным способом (торговле бананами, например), что превращает программирование из ремесла в хобби. Ведь помимо бизнес схема в мире есть и простое увлечение, страсть, стремление, азарт, любовь к компьютерам, иногда переходящая в манию, граничащую с помешательством. Если люди, ощущающие буквально физическую потребность писать программы, разрабатывать новые алгоритмы или просто проводить за монитором все свободное и несвободное время. Но далеко не все из них примыкают к движению Open Source, предпочитая держится в стороне от шумной и пестрой толпы, построенной на бизнесе и пропаганде.