Глава 2. Такое простое начало
Рождение концепции краудсорсинга24
На заре компьютерной эры все исходные коды являлись открытыми. Это было связано больше с объективными обстоятельствами, чем с дизайном ПО, но повлекло за собой существенные последствия далеко за пределами программирования. Исходный код – это набор англоязычных команд, которые по мере их перевода в нули и единицы отдают команды компьютеру. Открытый исходный код выглядит соответственно своему названию: он открыт для всех желающих, в него можно заглянуть, скопировать, настроить и использовать по своему усмотрению в любых целях. Именно благодаря этой открытости мир компьютерного программирования традиционно развивался в духе сотрудничества и свободного обмена информацией. И именно потому, что он изначально оказался доступным, небольшая группа высокоидейных программистов-«диссидентов» решила сохранить его открытым. Они, естественно, не могли заставить Microsoft, Sun Microsystems или Apple раскрыть свои коды, но зато сумели создать бесплатную и свободную для общего пользования альтернативу.
Для этого создателям открытого программного обеспечения (ОПО) потребовалось найти новые пути воплощения своих замыслов. Они не могли нанять работников за деньги, а задача, стоявшая перед ними, – создать совершенно новую операционную систему – требовала миллионов часов рабочего времени, а посему выглядела поистине устрашающей. Станут ли высококвалифицированные специалисты тратить свое свободное время на проект, казалось бы, изначально обреченный на провал? Оказалось, что да, будут. И займется этим много, очень много людей. Именно потому, что много людей выступило в поддержку инициативы, нагрузка была распределена между ними равномерно, а не легла на плечи только группы энтузиастов. К началу 1990-х гг. «толпа» произвела свой первый значимый продукт – операционную систему Linux, во многих отношениях превосходящую лучшие продукты других корпораций. Появление ОПО стало прецедентом. Оно подтвердило, что если люди, работая в свободное время – «экспериментируя» с химическими опытами на кухне, играя на музыкальных инструментах в подвалах, фотографируя по воскресеньям, – обеспечивают заправку двигателя краудсорсинга топливом, то, имея ясно сформулированную цель, можно привести его в движение.
Конечно, никто не подозревал об этом в 1969 г., когда Кен Томпсон, программист, работавший в подразделении Bell Laboratories телефонной компании AT&T, неожиданно почувствовал, что устал от безделья. Томпсон был занят в рамках амбициозного пятилетнего проекта сотрудничества Массачусетского технологического института, компании General Electric и Bell Laboratories. Его целью было создание более эффективной операционной системы для ЭВМ, которая позволяла бы одновременно выполнять более чем одну операцию – это ограничение в то время существенно замедляло скорость обработки данных даже на самых совершенных компьютерах. Но все усилия были напрасными. Только одно руководство по использованию операционной системы было расписано на 3000 страницах. Bell потеряла всякую веру в проект и отстранилась от дел.
Во время неожиданно свалившегося четырехнедельного отпуска Кен решил попробовать начать работу с чистого листа, советуясь только с самим собой. Глобальную цель он сразу же заменил на несколько малых, но казавшихся ему вполне реальными. Каждую неделю он посвятил написанию одного из этих четырех компонентов будущей операционной системы. Как отмечал в своей книге «Успех открытого кода» (The Success of Open Source) политолог Стивен Вебер, «имея всего один человеко-месяц рабочего времени и простое аппаратное обеспечение, Томпсон вынужден был забыть о комплексном мировосприятии и делать что-то очень простое». Или, как когда-то сказал один из компаньонов Томпсона, «создавать маленькие простые предметы вместо чего-то грандиозного».
К концу месяца Томпсон прописал основное тело Unix, операционной системы, наиболее успешной из когда-либо созданных. Но не только сама Unix сделала Томпсона исторической личностью. Не менее значимым было его решение использовать конвейеры из нескольких программ, каждая из которых выполняет одну задачу. Этот принцип в конечном счете позволил впоследствии сотням программистов децентрализованно работать над одной задачей, подобно тому, как тысячи пользователей работают над единым справочником – «Википедией». Разбивка работы на мелкие части, или модули, является одним из отличительных признаков краудсорсинга, который сродни подходу к программированию ОПО – «пришел один – пришли остальные».