abbra: (Default)
abbra ([personal profile] abbra) wrote2009-05-14 05:28 pm

Конкурентные преимущества

У [livejournal.com profile] vitus_wagner идет очередная дискуссия на тему каким должен быть код программных продуктов и какой модели разработки стоит придерживаться. [livejournal.com profile] belnetmon также в очередной раз навешивает ярлыки, постулируя, что "линуксообщество и слыхать не думало, что открытые исходники - это открытие конкуретных преимуществ, ноухау, оплаченной работы аналитиков и т.п.", приводящих к уничтожению тех или иных коммерческих преимуществ.

Я занимаюсь профессиональной разработкой программного обеспечения на основе свободного ПО более 14 лет и хочу сказать, что только недалекие люди придерживаются подобной политики. Но чтобы ответить на этот вопрос, прежде всего необходимо определить фундамент. Он базируется на юридической основе, заложенной Столлманом в рамках существующего законодательства по авторскому праву в США и "совместимых" юрисдикциях. Эта юридическая основа весьма строгая и в то же время весьма гибкая. Она выдержала довольно серьезные нападки с разных сторон в судах разного уровня и за последние 25 лет пока стабильно выходила победителем. Да, судебные дела были, но всегда с отрицательными последствиями для пытавшихся эту систему подвергнуть испытанию. Эта основа не формулирует никаких условий к разработчикам ПО в процессе его разработки, она регламентирует действия, которые необходимо осуществить, если ПО начинает распространяться, при этом само понятие распространения довольно четко определено -- к примеру, из него исключается физическое распространение и использование внутри самой фирмы-разработчика, даже если юридически она состоит из множества юридических лиц, связанных определенными договорами.

При этом для определенных форм юридических обязательств, построенных поверх этой основы, важным моментом является и то, что код на самом деле не обязан распространяться кому угодно, если он был предоставлен заказчику. Например, по GNU GPL, распространение вашей системы позиционирования заказчикам вместе с исходным кодом на одном носителе автоматически лишает третьих лиц возможности запросить у вас и у заказчика этот код, GNU GPL просто не регулирует ситуацию за этими пределами. То, что заказчик формально может отдать код кому угодно -- это его свобода, но не обязательство. Вы не сможете юридически его в этом ограничить и вот тут в дело вступит нормальный рынок и общество: этичное поведение и соблюдение законодательства еще никто не отменял. Этика в свободном ПО является одной из ключевых составляющих, хотят этого или не хотят оппоненты. Над этичным программированием и обществом с определенными этичными критериями можно смеяться и издеваться, но они существуют и существовали ранее в других отраслях. От этого никуда не деться. Тот факт, что свободное ПО построено на довольно серьезном юридическом фундаменте, позволяет нарушителей этого этического кодекса не просто "изгонять из цеха", но и преследовать традиционными средствами. По сути, они превращаются в обычных нарушителей правопорядка в соответствующей стране.

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

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

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

Так что реальная проблема исходит из "традиционного" общества там, где нет возможности обеспечить надежное исполнение законодательства. Можно ли преследовать нарушителей в соответствующей юрисдикции? Возможен ли выигрыш от открытия протоколов и кода, спецификаций, сообщества вокруг продукта? Это вопросы бизнес-планирования. Для ряда отраслей и задач это возможно и в "традиционном" обществе, в этих местах "этическое" и "традиционное" общество идут по одной линии. В ряде ситуаций это либо затруднено юридически, либо требует больших финансовых затрат на восстановление статус-кво. Выбор нужно делать осознано.

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

Хорошим примером является работа по кластеризации Самбы, которую разные компании вели на протяжении почти шести лет и только IBM удалось сделать продукт того качества, который можно реально использовать в серьезных многомиллионных внедрениях. При этом ключевые разработки (ctdb и доработки кода в samba) доступны под GNU GPLv3, их могут использовать конкуренты. Вот уже полтора года как продукт от IBM есть на рынке, конкурирующие решения еще только на подходе, как я слышу, но не выпущены и не будут выпущены еще в течение этого года. При этом в самом продукте есть и проприетарные компоненты, альтернативы которым есть у конкурентов (и в свободном ПО).

Есть и другие примеры, но не буду больше распространяться, суть не в примерах.

[identity profile] metaclass.livejournal.com 2009-05-14 04:27 pm (UTC)(link)
Да какие блин открытые исходники, тут до уплаты денег вендоры серьезных ничего кроме разноцветных скриншотов и диаграмм не показывают.
Вообще, опенсорс - это такая специальная замануха для гиков и очередной buzzword. Гики могут хоть обвыдумываться лицензий и этик, а в итоге - ну будут доступны пару десятков-сотен мег исходников какой-нибудь enterprise-level системы, только без комментариев со стороны архитекторов и без участия бизнес-аналитиков в сообществе. А без этого - это тупо набор кода, 10000 форм ввода данных, 10000 таблиц и миллион процедур расчета, поди разберись да улучши, флаг тебе в руки :)

[identity profile] bagamut.livejournal.com 2009-05-14 04:30 pm (UTC)(link)
весь опенсорс разрабатывается на гранты ЦРУ, для закабаления развивающихся стран
это даже дети знаю :)

[identity profile] zabivator.livejournal.com 2009-05-14 08:52 pm (UTC)(link)
. А без этого - это тупо набор кода, 10000 форм ввода данных, 10000 таблиц и миллион процедур расчета, поди разберись да улучши, флаг тебе в руки :)
Что же мешает его открыть, при таком раскладе?
Как минимум будет меньше проблем с его поддержкой.
Плюс просто "до хуя всего" не бывает.
Ну не бывает просто куска монолита.
Есть отдельные модули так или иначе, есть протоколы их взаимодействия.

Вот давай порассуждаем. Я про это учёт нихера не знаю, и слава богу. Сужу по другим областям. Так что поправь где неправ
Программы бухгалтерского учёта может быть и разношерстные - для секс-шопа, для ресторана, для наркодилеров, для таксопарков.
У них совершенно разный UI для конечных пользователей. Совершенно разный объём информации в них отображается - в секс-шопе каталог дилдочек, в ресторане пачка блюд, у наркодилеров каналы поставки и риски, у таксопарков интерактивная карта машин и их занятости, path-finding.

Только вот бухгалтерский учёт, те ведомости что поступают в налоговую и так далее службу, выплата зарплат, прочей поебистики проводится для всех них единообразно. Государство такие ведомости одни на всех даёт. Это раз.
Два. Форм предприятий тоже конечное число, и каждое имеет свою юридическую модель - ЗАО, ООО, ОАО, ЧП, прочее. Для двух разных ЧП эти формы не отличаются.

Теперь внимание. Что мешает реализовывать и вылизывать в раках OpenSource каркаса для построения этих систем учёта, их общей части? Печать ведомостей, их отображение, интеграция с платёжными системами банков, и печать на выход ведомостей и на конвертах, что будет отправлено в налоговую службу.
Программисты это ядро будут подпиливать по мере надобности, причём программисты ЦЕЛОЙ СТРАНЫ ИЛИ РЕГИОНА.
А рендерить кошерные карты для таксистов и каталог дидлдочек плюс сайт для секс-шопа тебе до старости хватит - этих задач жопой ешь. Что мешает вытащить некоторый common в открытый код? Пусть кушают, пусть помогают - если ты пиздатый эксперт, то твой хлеб не этот код, а аналитика бизнес-процессов очередного клиента и написание фронтенда к этой общей части, интеграция с существующую инфраструктуру - тебе этого не хватит?

Минусы - долбоёбам со стороны проще начать на твоих разработках.
Плюсы - долбоёбы аналитику всё равно не осилят - раз, два - другие кошерные умные пиздатые программисты будут брать твой код, патчить его и отправлять тебе патчи (проще в мейнстрим вливать чем вести форки и сникать), в общий каркам будет дописываться до хуя модулей, интеграция с другими банками, с отличными от 1С решениями, будут новые плюшки, появяться поддержка иных форм документооборота (ну помимо ОАО добавят ЧП) НО ЭТО ВСЁ ЛИШЬ ПРИ УСЛОВИИ ЧТО ТВОЙ ПРОДУКТ ЛУЧШИЙ НА ЭТОМ РЫНКЕ.

Намёк ясен?