Открытость.
Когда Торвальдс впервые предложил другим вносить свой вклад в создаваемый проект, его предложение было максимально широким; он не ограничился компаниями, людьми с опытом разработки операционных систем или любыми иными конкретными группами. Такой подход многим казался странным и ошибочным, ведь если вы строите дом, то вряд ли просто пригласите людей прийти и начать соединять детали. Тем не менее он сработал. За десять лет свой вклад в создание ядра внесли 11 800 отдельных разработчиков[595], а крупные технологические компании, включая Samsung, IBM, Google и Intel, предоставляли и финансирование, и специалистов[596]. В главе 7 мы отмечали, как много мотиваций может возникнуть при написании бесплатных приложений для смартфонов; у людей и организаций тоже может быть множество мотиваций для участия в работе над операционной системой с открытым кодом. Именно открытость Linux позволила использовать все это.Отсутствие креденциализма.
Один из аспектов открытости настолько важен, при том что парадоксален, что заслуживает отдельного упоминания. Это отсутствие креденциализма, или отказ от точки зрения, что участвовать в проекте должны только те, у кого есть подходящая квалификация: дипломы, должности, рекомендательные письма, годы опыта, хорошие оценки и прочее. Торвальдс ничего такого не требовал и даже об этом не спрашивал. Он просто сделал исходный код Linux доступным и попросил помочь в его улучшении. Это пример того, что писатель, публицист и авторитет в области технологий Тим О’Райли выделил в 2005 году как ключевой принцип Web 2.0[597] (второго поколения Всемирной паутины, появившегося к тому времени) – доверие к пользователям как к соразработчикам. Впрочем, в то время Торвальдс этого не знал. Сам он сказал в 2016 году: «…не было никакого намерения использовать совместную работу с открытым кодом, как мы ее понимаем сейчас. Скорее я тогда заявил: “Поглядите, я работал над этой штукой полгода и хотел бы получить комментарии”»[598]. Блестящая идея не спрашивать у участников подтверждение их квалификации означала, что Торвальдс не отказывал ни тем, у кого подтверждения не было – например, старшеклассникам, которые любят программировать, но не имеют атрибутов «настоящего» программиста, – ни тем, чьи документы и специальности могли показаться неподходящими или недостаточными.Проверяемые и отменяемые правки.
Причина, по которой открытость и отказ от креденциализма подходят для создания ПО (намного больше, чем для строительства домов), состоит в том, что здесь относительно легко увидеть, хорошо ли работает какой-то новый фрагмент программы, и можно быстро отказаться от него, если он плох. Например, драйвер для принтера должен обеспечивать корректную и надежную печать документов принтером, в противном случае его не следует включать в операционную систему. Существует множество способов проверить качество программного обеспечения – от визуального изучения кода до тестирования на месте. Это означает, что написание операционной системы сильно отличается от создания других творческих продуктов, скажем романов или симфоний. В литературе никак нельзя проверить, улучшился ли общий результат, после того как кто-то добавил новую главу или персонажа.Объективные и проверяемые показатели качества помогают объяснить, почему написанный толпой Linux стал самой популярной в мире операционной системой, но ни один успешный роман, насколько известно, не был написан большой группой авторов. Поскольку стандартной практикой является хранение всех предыдущих версий программного кода (благодаря бесплатной, совершенной и мгновенной экономике битов это дешево и просто), если вдруг выясняется, что какой-то фрагмент ухудшает работу, несложно вернуться к предыдущей версии. Системе Linux гораздо проще оставаться открытой и не требующей от разработчиков подтверждения квалификации, когда они не могут необратимо сломать или ухудшить программу по злобе или глупости.
Ясные результаты.
Люди, вносившие вклад в развитие Linux, двояким образом знали, каким будет конечный результат их усилий. Во-первых, они, конечно же, отдавали себе отчет, что работают над операционной системой для компьютера. Во-вторых, что не менее важно, они знали о том, как их работа будет и не будет использоваться, то есть кто может владеть ею, вносить в нее изменения, получать прибыль от ее продажи, ограничивать к ней доступ и тому подобное.