A tese central do ensaio de Raymond é que "Dado um número de olhos suficiente, todos os erros são triviais" (que é o enunciado da Lei de Linus, ou análogo a Lei de Metcalfe): se o código fonte está disponível para teste, escrutínio e experimentação pública, então os erros serão descobertos rapidamente. Em contraste, Raymond alega que uma quantidade de tempo e energia irregular deve ser gasta procurando por erros no modelo da Catedral, quando as diversas versões de código são avaliadas por um número limitado de desenvolvedores.
Modelos de Desenvolvimento
O ensaio apresenta dois diferentes modelos de desenvolvimento de um software livre:
O modelo Catedral, no qual o código fonte está disponível para cada release do software, mas o código desenvolvido entre dois releases é restrito a um grupo de desenvolvedores exclusivo. Os projetos Emacs e GCC são apresentados no ensaio como exemplos.
O modelo Bazar, no qual o código é desenvolvido de forma totalmente aberta e pública, utilizando a Internet. Raymond credita Linus Torvalds, líder do projeto Linux, como o inventor deste modelo de desenvolvimento de software. Ele também fornece alguns relatos anedóticos da aplicação desse modelo ao projeto Fetchmail.
Este ensaio ajudou a convencer a maioria dos projetos open source e softwares livres a adotar o modelo do Bazar, completa ou parcialmente — incluindo os projetos Emacs e GCC, os exemplos originais para um modelo Catedral. Mais notavelmente, isso ainda providenciou o empurrão final para a Netscape Communications Corp abrir o código de fonte do Netscape Communicator e iniciar o projeto Mozilla.
O modelo da Catedral é também o modelo de desenvolvimento típico para software proprietário — com a restrição adicional de o código fonte não ser normalmente providenciado com as atualizações — e um uso comum da frase "a Catedral e o Bazar" é contrastar o desenvolvimento proprietário com o desenvolvimento de código aberto (mais tarde, o próprio Raymond usou a expressão dessa maneira em relação aos Documentos de Halloween). Porém, o ensaio original preocupa-se somente com o software livre e não fazia nenhuma referência ao desenvolvimento proprietário.
Boas práticas
Todo bom trabalho de software começa colocando o dedo na ferida de um programador. [2]
Os programadores bons sabem o que escrever. Os grandes sabem o que reescrever (e reusar).[2]
Planeje jogar algo fora; você irá, de qualquer maneira. [2]
Se você tiver a atitude certa, problemas interessantes irão encontrá-lo.[2]
Quando você perde interesse em um programa, sua última obrigação a fazer com ele é entregá-lo a um sucessor competente.[2]
Tratar seus usuários como co-desenvolvedores é seu caminho mais fácil para uma melhora do código e depuração eficaz.[3]
Libere cedo. Libere frequentemente. E ouça seus fregueses.[4]
Dada uma base grande o suficiente de beta-testers e co-desenvolvedores, praticamente todo problema será caracterizado rapidamente e a solução será óbvia para alguém.[4]
Estrutura de dados inteligentes e código burro trabalham muito melhor que ao contrário. [5]
Se você tratar seus beta testers como seu recurso mais valioso, eles irão responder tornando-se seu mais valioso recurso.[5]
A melhor coisa depois de ter boas idéias é reconhecer boas idéias dos seus usuários.[6]
Frequentemente, as soluções mais impressionantes e inovadoras surgem ao se perceber que o seu conceito do problema estava errado.[6]
A perfeição, em projetar, é alcançada não quando não há mais nada a adicionar, mas quando não há nada para jogar fora.[6]
Qualquer ferramenta deve ser útil da maneira esperada, mas uma ferramenta verdadeiramente boa leva ela própria a usos que você nunca esperou.[7]
Quando escrevendo um software gateway de qualquer tipo, faça tudo para perturbar o conjunto de dados o menos possível, e nunca jogue fora informação a não ser que o destinatário force você a isto![7]
Quando sua linguagem não está perto de um Turing completo, açúcar sintático pode ser seu amigo. [8]
Um sistema de segurança é tão seguro quanto seu segredo.[8]
Para resolver um problema interessante, comece achando um problema que é interessante para você.[9]
Contanto que o coordenador do desenvolvimento tenha uma mídia pelo menos tão boa quanto a Internet, e saiba como liderar sem coerção, muitas cabeças são inevitavelmente melhores que uma.[9]