Ранее я ссылался на эффект Delphi, как возможное объяснение закона Линуса.
Также для этого безупречно подходят аналогии с адаптивными системами в биологии и экономике. Мир Linux во многих отношениях ведет себя как свободный рынок или как экологическая система. Это похоже на множество заинтересованных агентов, которые пытаются максимизировать полезность. В конечном итоге система, где эти агенты действуют независимо, оказывается более эффективной, чем та, в которой происходит централизованное планирование.
Функция полезности, которую максимизируют хакеры Linux, не является классической для экономики. Она зависит от их самоудовлетворения и репутации среди других хакеров. (Можно было бы назвать их мотивацию альтруистической, однако альтруизм сам по себе является средством самоудовлетворения альтруиста.) Добровольные сообщества, работающие по этому принципу встречаются довольно часто. Я долгое время участвовал в сообществе любителей научной фантастики, которое, в отличие от сообщества хакеров, признает «egoboo» – улучшение репутации среди других фанатов – как единственную движущую силу добровольной работы.
Можно рассматривать метод Линуса, как способ создать эффективный «egoboo» рынок. То есть соединить заинтересованность отдельных хакеров и задачу, которая может быть решена только в сообществе. В проекте fetchmail я показал (в меньшем масштабе), что эти методы могут давать хорошие результаты.
Возможно, я даже сделал это более систематически.
Многие люди (особенно те, которые не доверяют свободным рынкам по политическим причинам) ожидают, что подобное сообщество эгоистов будет расточительно, скрытно и враждебно настроено. Однако эти ожидания обманываются, что подтверждается одним ярким приером. Этот пример – ошеломляющее разнообразие, качество и глубина документации Linux. Известно, что программисты ненавидят писать документацию. Почему же тогда документация Linux столь обширна? Очевидно, что в этом случае свободный рынок Linux работает эффективнее, чем производители коммерческих программ.
Fetchmail и Linux показали, что опытный координатор может использовать Интернет для связи между разработчиками, не опасаясь, что проект превратится в хаос. Поэтому закону Брукса можно противопоставить следующее:
19. Если у координатора разработки есть средство связи, по меньшей мере такое как Интернет, и он умеет лидировать без принуждения, то лучше пользоваться несколькими головами, чем одной.
Я думаю, что будущее свободного программного обеспечения принадлежит людям, которые знают как играть в игру Линуса, которые оставляют стиль собора и разрабатывают проекты в стиле базара. Это не означает, что индивидуальность не играет больше никакой роли. Наоборот, впереди окажутся те, кто начинал с индвидуального мастерства, а потом расширил его через эффективное создание добровольных сообществ.
Возможно, это будущее не только свободных программ. Ни один разработчик коммерческих программ не сможет сравниться с сообществом Linux в решении проблемы. Немногие смогут нанять двести человек, которые участвовали в разработке fetchmail.
Вероятно, в конце концов свободное программное обеспечение победит, не только потому что кооперация правильна с точки зрения морали, но просто потому, что коммерческий мир не сможет состязаться с сообществами free-software, которые могут бросить гораздо большие силы на решение одной проблемы.
11. Благодарности
Эта статья была значительно улучшена, благодаря тому что очень многие люди участвовали в ее обсуждении. Особенно я благодарен Джеффу Датки dutky@wam.umd.edu, за то что предложил формулировку «отладка может быть параллельной» («debugging is parallelizable») и помог ее проанализировать.
Также я благодарен Нэнси Лебовитц nancy@universe.digex.net. Много конструктивной критики поступало от Джоан Эслингер wombat@kilimanjaro.engr.sgi.com и Марти Франц marty@net-link.net из General Technics. Пол Эггерт eggert@twinsun.com отметил конфликт между GPL и моделью базара. Я благодарен членам PLUG, группы Philadelphia Linux User's за тестирование первой публичной версии этой статьи. И, конечно, мне очень помогли комментарии Линуса Торвальдса.
12. Что читать дальше.
Я процитировал несколько отрывков из Mythical Man-Month Фредерика Брукса. Я рекомендую его 25-ое юбилейное дополнение от Addison-Wesley (ISBN 0-201-83595-9), которое дополняет его статью «No Silver Bullet». Джеральд П.
Венбегр в Psychology Of Computer Programming (New York, Van Nostrand Reingold 1971) представил неудачно названное понятие «неэгоистичного программирования». Хотя он не смог осознать бесполезность «принципа команды», он, вероятно, был первым, кто рассмотрел эту проблему всвязи с программным обеспечением. Ричард П, Габриэл, рассматривая Unix до эры Linux, спорит о превосходстве примитивной модели базара в своей статье: Lisp: Good News, Bad News, and How to Win Big.