«…На самом деле, я считаю Линуса одним из самых умнейших людей нашего времени. И… не потому, что он написал ядро „Линукс“, а потому что предложил модель разработки „Линукс“. Когда однажды я сказал это в его присутствии, он улыбнулся и повторил то, что он говорит довольно часто: „На самом деле я – очень ленивый человек, которому нравится приписывать себе то, что на самом деле сделали другие“. Ленивый, как лис. Или, как написал Роберт Хайнлайн в одной из своих статей, „слишком ленивый, чтобы ошибаться“…
…Стиль разработки «Линукса», предложенный Торвальдсом, воспринимался как нечто удивительное. Не как спокойная… атмосфера строительства собора. Вместо этого сообщество «Линукс» напоминало огромный говорливый восточный базар со множеством разнообразных программ и подходов, которые надлежащим образом символизировали узлы и архивы «Линукса», куда отправляли свои решения все, кто хотел… Стабильная и логично связанная система могла возникнуть только благодаря чуду, да и не только одному.
Тот факт, что этот «базарный стиль», по всей видимости, работает, причем работает очень хорошо, вызвал шок. Оглядываясь в прошлое, я понял, что работал не только над конкретными проектами, но также и старался понять: почему мир «Линукс» не только не был погребен в этой хаосе, но, казалось, становился все сильнее и сильней, причем такими темпами, какие трудно представить для традиционных «строителей собора»…
Сильная сторона традиции «Линукс» – момент, в котором обеспечил успех… – в том, что огромное число пользователей является к тому же и хакерами. А поскольку исходный текст открыт, то они могут стать эффективными хакерами. Это может оказаться крайне полезным и значительно сократить время отладки. С незначительной поддержкой ваши пользователи будут диагностировать проблемы, предлагать варианты их решения… Отсюда родился принцип «Воспринимай своих пользователей как соразработчиков». Вы выбираете самый простой способ быстрой модернизации кода и эффективной его отладки.
Если говорить не столь формально, то при достаточном количестве пользователей все ошибки мельчают. Я назвал это «законом Линуса». Хотя первоначальная формулировка состояла в том, что любая задача для кого-то окажется очевидной, Линус возразил, что человек, который понимает и устраняет проблему – не обязательно и, как правило, не тот человек, который впервые охарактеризовал проблему. «Кто-то находит проблему, – сказал он, – а кто-то ее понимает. Я бы рискнул сказать, что обнаружить проблему намного сложнее». Но суть в том, что в данном случае и то, и другое происходит достаточно быстро.
В этом, как я считаю, и состоит коренное отличие соборного и базарного стиля разработки. С точки зрения строителей «собора от программирования», ошибки и задачи разработки сложны, коварны и уникальны. Они требуют многих месяцев тщательного изучения группой избранных с тем, чтобы убедиться, что устранены все из них. Отсюда – и редкое появление новых версий, и неминуемое разочарование, когда долгожданный вариант оказывается несовершенным. При базарном подходе вы предполагаете, что ошибки в целом – незначительное явление. Или, по крайней мере, они довольно скоро станут незначительными, когда будут отданы на растерзание тысячам сгорающих от нетерпения соразработчиков, разбирающим по косточкам каждую новую версию. Таким образом, вы выпускаете новую версию для того, чтобы получить больше исправлений и в качестве положительного эффекта вы меньше теряете в том случае, если внезапно окажется, что работа была сделана небрежно. И все. Этого достаточно…
Отличительная особенность ситуации, сложившейся вокруг «Линукса»… стал тот факт, что участники любого данного проекта определяются сами. Один из первых корреспондентов отметил, что вклад в разработку проекта вносят не случайные люди, а те, кто достаточно заинтересован в том, чтобы использовать это программное обеспечение, изучить, как оно работает, попытаться найти решение проблем, с которыми они сталкиваются и действительно найти очевидно разумное решение задачи. Каждый, кто соответствует этим условиям, с большой вероятностью предложит что-то полезное…»