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

Открытый код: путь к качеству

Теория и практика подтверждают — открытый код сокращает время разработки и ее стоимость, позволяя в то же время получить более надежные, качественные и безопасные программы. Хорошо известны эмпирические результаты, полученные методом «черного ящика» (Fuzz Testing of Application Reliability), согласно которым, коэффициент ошибок в Unix-утилитах с открытым кодом существенно ниже по сравнению с их «закрытыми» аналогами. Недавно Дамиан Шалле и Ианн Ле Дю создали математическую модель процесса разработки программного обеспечения, на основе которой удалось построить строгую и эффективную теорию, объясняющую эти результаты (arxiv.org/pdf/cond-mat/0306511).

Но самым убедительным свидетельством превосходства открытого кода являются не данные науки, а реалии нашего мира. Операционная система Linux, Web-сервер Apache и другие элементы инфраструктуры Internet с открытым кодом нашли за последние годы столь широкое распространение, что иногда трудно вспомнить, сколь незавидной казалась их судьба до середины 90-х годов. Любители бросили вызов монополии корпорации Microsoft на операционные системы и фактически потеснили ее на наиболее перспективных рынках, не так ли? Серверное программное обеспечение, на котором работают 60% Web-сайтов в мире, создано и поддерживается усилиями добровольцев? Казалось бы, абсурд, но это реальность.

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

Не следует думать, что разработка на принципах открытого кода — это окончательное решение проблемы качества программного обеспечения. Как удачно заметил Фред Брукс, «серебряных пуль» не бывает. Когда мы найдем лучший способ справиться с нынешним уровнем сложности программ, мы, скорее всего, воспримем этот способ как должное, и увеличим сложность до такой степени, когда мы опять окажемся на грани своих возможностей. Экономический же смысл использование открытого кода имеет почти всегда, за исключением редких нетипичных случаев.

Итак, общая тенденция ясна. С технической точки зрения, закрытый код тонет под грузом нарастающего количества ошибок. В экономическом плане, даже крупные организации приходят к выводу, что они не могут себе позволить нанять достаточное количество собственных разработчиков, чтобы справиться с огромными масштабами современных проектов — база для распределения таких рабочих нагрузок должна быть значительно шире. Это происходит все чаще и чаще, как в официальных консорциумах наподобие Apache Software Foundation, так и в неформальных объединениях. Объединение ресурсов без оглядки на корпоративные границы из факультативной возможности превращается в неотъемлемый инструмент ценовой политики.

Кто выиграет и кто проиграет?

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

Кое-кто действительно проиграет от грядущих изменений — в основном, монополисты на софтверном рынке и спекулятивные инвесторы. Промышленная разработка программного обеспечения с открытым кодом должна быть ориентирована на оказание услуг, а не на продажу продуктов; при этом, как и в других сегментах сферы услуг, невозможно повысить прибыль путем простой накачки инвестиций. Венчурным капиталистам не удастся быстро получить значительный доход — специализированная программно-техническая компания завтрашнего дня скорее будет похожа на юридическое или медицинское учреждение, чем на нынешние Microsoft или Oracle. Большая часть ее затрат будет финансироваться компаниями, для которых программы с открытым кодом являются частью комплексного продукта (вот, например, почему такие компании, как IBM и Hewlett-Packard, осваивают этот подход).

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

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

Эрик Рэймонд (esr@thyrsus.com) — сооснователь и президент организации Open Source Initiative, которая ставит своей целью наведение мостов между деловыми кругами и сообществом программистов с целью распространения методов разработки на основе открытого кода.


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

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

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

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

Эрик Рэймонд


Eric Raymond, David Messerschmitt. Up from Alchemy/Back to the User. IEEE Software, January/ February 2004. IEEE Computer Society, 2004, All rights reserved. Reprinted with permission.