Разглеждам подробно един успешен проект с отворен код — fetchmail, който беше преднамерено стартиран като проверка на някои удивителни теории в софтуерното инженерство, подсказани от историята на Линукс.

Обсъждам тези теории в светлината на два различни стила на разработка — „катедралният“ модел, използван широко в комерсиалния свят, противопоставен на „базарния“ модел от Линукс света. Посочвам, че тези модели произлизат от противоположни основни положения относно естеството на задачата по отстраняване грешките в софтуера. След това давам аргумент, подкрепен от Линукс опита, че „Когато има достатъчно очи, всички грешки изплуват на повърхността“, предлагам продуктивни аналогии с други самокоригиращи се системи от самостойни агенти, и завършвам с малко изследване на следствията от това прозрение за бъдещето на софтуера.

Към текста

Метаданни

Данни

Оригинално заглавие
The Cathedral and the Bazaar, (Пълни авторски права)
Превод от
, (Пълни авторски права)
Форма
Есе
Жанр
  • Няма
Характеристика
  • Няма
Оценка
5,5 (× 2 гласа)

Информация

Корекция и форматиране
Юлиян Йорданов (2014)
Източник
catb-bg.sourceforge.net

Сътрудници на превода: Антон Зиновиев, Христо Божинов

История

  1. — Добавяне

Катедралата и базарът

Линукс е подмолен. Кой би си помислил само преди пет години (1991), че от хакерските занимания в свободното време на няколко хиляди разработчици, пръснати из планетата, и свързани единствено от тънките нишки на Интернет, като на магия ще се получи операционна система от световен клас?

Определено не и аз. По времето, когато Линукс се появи на радара ми в началото на 1993, аз се занимавах с Unix и разработка на софтуер с отворен код вече 10 години. По средата на 80-те години на 20-ти век бях един от първите сътрудници на GNU. Бях пуснал доста свободен софтуер в мрежата, разработвайки или съразработвайки няколко програми (сред които nethack, режими VC и GUD на Emacs, xlife и други), които и днес все още са широко употребявани. Смятах, че зная как стават тези неща.

Линукс преобърна голяма част от това, което си мислех, че зная. От години проповядвах Unix евангелието на малките инструменти, бързото създаване на прототипи и еволюционното програмиране. Вярвах обаче, че има определена критична сложност, отвъд която е необходим по-централизиран, априорен подход. Вярвах, че най-важният софтуер (операционните системи и наистина големите инструменти като Emacs) трябва да бъде съграждан като катедрали — внимателно майсторени от отделни вълшебници или малки групички магове, работещи в прекрасна изолация, като никоя бета версия не бива пусната преди да й дойде времето.

Стилът на разработка на Линус Торвалдс — „пускай рано и често; възлагай на други желаещи всичко, което можеш; бъди открит до степен на безразборност“, ми дойде изненадващо. Нямаше го тихото, благоговейно катедрално разработване — Линукс обществото по-скоро ми приличаше огромен шумен базар с различни планове и подходи (доста точно уподобени на от местата с Линукс архиви, които приемат софтуер от всеки), от който само по чудо би могла да се роди съгласувана и стабилна операционна система.

Фактът, че този базар като че ли работеше, при това добре, ми дойде като гръм от ясно небе. Докато работех усилено по индивидуални проекти, а освен това се опитвах да разбера защо Линукс светът не само че не се разпада, но и като че ли става все по-силен и по-силен, при това със скорост, за която „катедралните строители“ едва ли биха могли да мечтаят.

Към средата на 1996 вече мислех, че започвам да разбирам. Случайно се откри идеална възможност да изпитам теорията си под формата на проект с отворен код, който съзнателно се опитах да управлявам в „базарен“ стил. Така и направих — имаше значителен успех.

Това е историята на този проект. Ще я използвам, за да предложа някои афоризми относно ефективната разработка на отворен код. Не всички неща научих от Линукс света, но ще видите как той им придаде определен смисъл. Ако съм прав, те ще ви помогнат да разберете кои са нещата, които правят Линукс обществото истински извор на добър софтуер, и вероятно ще ви помогнат сами да станете по-продуктивни.