"Собор и Базар (Linux)" - читать интересную книгу автора (Рэймонд Э. )

постоянным отношение числа хакеров к числу пользователей, Линус получал и
стимул и вознаграждение. Стимул - удовлетворенность своими действиями,
вознаграждение - ежедневное улучшение своей работы.
Линус стремился максимизировать количество человеко-часов, затраченных
на отладку и разработку, даже ценой нестабильности, если какая-то ошибка
окажется трудно устранимой. Линус считал что:
8. При достаточном количестве бета-тестеров и сотрудников, почти любая
проблема будет быстро обнаружена и окажется для кого-то очевидной.
Или менее формально: "При достаточном количестве глаз, ошибки выплывают
на поверхность." Я назову это - законом Линуса.
Мое собственное утверждение состоит в том, что всякая проблема является
для кого-то прозрачной. Однако по мнению Линуса, человек, который понимает
проблему и находит ее решение, не всегда первый ее обнаруживает. "Кто-то
находит проблему", - говорит он, - "А кто-то еще ее понимает. И я часто
замечаю, что поиск требует наибольшего навыка." Суть заключается в том, что
и то и другое должно происходить быстро.
Существенная разница здесь в различии соборного и базарного стиля. С
точки зрения соборного стиля программирования, ошибки - хитрые, коварные и
страшные явления. Месяцы работы, не имеющей отношения к разработке, уходят
на то, чтобы выловить все ошибки. Таким образом мы получаем длительные
промежутки между релизами и разочарование, когда столь долгожданные релизы
оказываются далеки от совершенства.
С другой стороны при работе в стиле базара, вы не считаете ошибки
непреодолимым препятствием. По крайней мере они покажутся такими тысячам
пользователям, работающим над каждым новым релизом. Вы выпускаете релизы
часто, чтобы получить больше исправлений.
Вот и все. Если закон Линуса неверен, то при разработке сложной
системы, такой как ядро Linux'a, многими пользователями, в некоторый момент
времени, система развалится из-за плохого взаимодействия и недосмотренных
серьезных ошибках. С другой стороны, если этот закон верен, то он обЪясняет
отностительное отсутствие грубых ошибок.
Возможно, это не так удивительно, как кажется. Несколько лет назад
социологи открыли, что среднее мнение людей, в равной степени являющихся
либо экспертами, либо дилетантами более верно, чем мнение одного случайно
выбранного наблюдателя. Это называется "эффектом Delphi". Линус показал, что
это применимо даже в отладке операционной системы, - эффект Delphi может
уменьшить сложность проекта даже на уровне разработки ядра ОС.
Я благодарен Джеффу Датки (Jeff Dutky), за то что он показал мне, как
можно перефразировать закон Линуса: "Отладка может быть параллельной." Джефф
считает, что хотя во время отладки людям нужно общаться друг с другом с
помощью какого-нибудь координатора-разработчика, это не требует серьезной
координации между тестерами. Это значительно уменьшает издержки при
добавлении тестеров.
На самом деле теоретическая потеря эффективности от того, что часть
работы по отладке дублируется, в мире Linux'a очень небольшая. Эффект от
частого выпуска релизов уменьшает вероятность двойной работы, так как ошибки
фиксируются очень быстро.
Приведем замечание Брукса:" Общая стоимость поддержки широко
используемой программы - это не меньше 40% от стоимости ее разработки."
Удивительно, что эта стоимость зависит от числа пользователей. Больше