A Catedral e o Bazar - Eric S. Raymond

Sem dúvida que é um marco para o mundo open source. Publicada por Eric S. Raymond e traduzida para o português por Erik Kohler, A Catedral e o Bazar conta toda a história e os primeiros passos do movimento Open Source.

[ Hits: 78.412 ]

Por: Raphael Silva Bastos em 09/11/2006 | Blog: https://area31.net.br


O contexto social do código aberto



Está escrito: os melhores hacks começam como soluções pessoais para os problemas diários do autor, e se espalham porque o problema se torna típico para uma grande classe de usuários. Isto nos traz novamente para a regra 1, recolocada talvez de uma maneira mais útil:

18. Para resolver um problema interessante, comece achando um problema que é interessante para você.

Isso foi o que aconteceu com Carl Harris e o ancestral popclient, e também comigo e o fetchmail. Mas isso foi entendido por um longo tempo. O ponto interessante, o ponto que as histórias do Linux e do fetchmail parecem demandar o nosso foco, é o próximo estágio - a evolução do software na presença de uma comunidade grande e ativa de co-desenvolvedores.

Em "The Mythical Man-Month", Fred Brooks observou que o tempo de um programador não é acumulativo; adicionar desenvolvedores em um projeto atrasado de software faz com que ele se torne mais atrasado. Ele expôs que a complexidade e custos de comunicação de um projeto crescem com o quadrado do número de desenvolvedores, enquanto o trabalho feito cresce somente linearmente. Esta afirmação é desde então conhecida como "A Lei de Brooks" e é largamente considerada como correta. Mas se a Lei de Brooks fosse tudo a ser levado em consideração, o Linux seria impossível.

O clássico "The Psychology Of Computer Programming", de Gerald Weinberg, sustentou o que, em retrospectiva, nós podemos ver como uma correção essencial ao Brooks. Em sua discussão sobre "programação sem ego", Weinberg observou que nos lugares onde desenvolvedores não são territoriais sobre seu código, e encorajam outras pessoas a procurar por erros e melhorias potenciais nele, as melhorias acontecem dramaticamente mais rápidas que em qualquer outro lugar.

A escolha da terminologia de Weinberg talvez tenha prevenido sua análise de ganhar a aceitação que merecia - é engraçado pensar em descrever os hackers da Internet como "sem ego". Mas acho que seu argumento parece mais mais convincente hoje do que nunca.

A história do Unix deveria ter sido preparada para nós do que nós estamos aprendendo com o Linux (e o que eu tenho verificado experimentalmente em uma menor escala por copiar deliberadamente os métodos do Linus). Isto é, embora codificar permaneça uma atividade essencialmente solitária, os hacks realmente bons advém de captar a atenção e poder de mente de comunidades inteiras. O desenvolvedor que utiliza apenas a capacidade cerebral dele mesmo em um projeto fechado irá ficar atrás de desenvolvedores que saibam como criar um contexto aberto e evolutivo no qual a visualização de erros e melhorias sejam feitas por centenas de pessoas.

Mas o mundo tradicional do Unix foi impedido de seguir completamente este método por vários fatores. Alguns deles foram os aspectos legais de várias licenças, segredos de comércio e interesses comerciais. Outro (tardio) foi que a Internet ainda não estava boa o suficiente.

Antes de a Internet baratear, havia algumas comunidades geograficamente pequenas aonde a cultura motivava a programação "sem ego" de Weinberg, e aonde um desenvolvedor poderia facilmente atrair muitos co-desenvolvedores habilidosos. Bell Labs, o MIT AI Lab, UC Berkeley - estes se tornaram a origem de inovações que são lendárias e ainda fortes.

Linux foi o primeiro projeto a fazer um esforço consciente e bem-sucedido a utilizar o mundo inteiro como sua reserva de talentos. Eu não acho que seja uma coincidência que o período de gestação do Linux tenha coincidido com o nascimento da World Wide Web, e que o Linux tenha deixado a sua infância durante o mesmo período em 1993-1994 que viu a expansão da indústria de ISP e a explosão do principal interesse da Internet. Linus foi a primeira pessoa que aprendeu como jogar com as novas regras que a onipresente Internet fez possível.

Embora uma Internet barata fosse uma condição necessária para que o modelo do Linux evoluísse, eu penso que não foi uma condição por si só suficiente. Outro fator vital foi o desenvolvimento de um estilo de liderança e conjunto de formalidades cooperativas que permitiria aos desenvolvedores atrair co-desenvolvedores e obter o máximo suporte do ambiente.

Mas o que é este estilo de liderança e estas formalidades? Eles não podem estar baseados em relações de poder - e mesmo que pudessem, a liderança por coerção não produziria os resultados que nós vemos. Weinberg cita a autobiografia do anarquista do século 19 chamado Pyotr Alexeyvich Kropotkin, "Memórias de um Revolucionista" para demonstrar o efeito neste assunto:

"Tendo sido criado em uma família possuidora de vassalos, eu entrei a vida ativa, como todos os jovens homens da minha idade, com uma grande confidência na necessidade de comandar, ordenar, repreender, punir e etc. Mas quando cedo tive que conduzir empreendimentos sérios e lidar com homens [livres], e quando cada erro levaria de uma vez a sérias conseqüências, eu comecei a apreciar a diferença entre atuar segundo o princípio de comando e disciplina e atuar segundo o princípio da compreensão comum. O primeiro funciona de forma admirável em uma parada militar, mas de nada vale aonde a vida real é considerada, e o objetivo pode ser atingido somente pelo esforço severo de muitos propósitos convergentes."

O "esforço severo de muitos propósitos convergentes" é precisamente o que um projeto como o Linux requer - e o "princípio de comando" é efetivamente impossível de ser aplicado entre voluntários no paraíso anarquista que nós chamamos de Internet. Para operar e competir efetivamente, hackers que querem liderar projetos colaborativos têm que aprender como recrutar e energizar comunidades eficazes com interesse no modo vagamente sugerido pelo "princípio de compreensão" sugerido por Kropotkin. Eles precisam aprender a Lei de Linus.

Inicialmente eu me referi ao "Efeito Delphi" como uma possível explicação para a Lei de Linus. Porém analogias mais poderosas aos sistemas adaptativos em biologia e economia também se implicam fortemente. O mundo do Linux se comporta em vários aspectos como um mercado livre ou uma ecologia, uma coleção de agentes autônomos tentando maximizar um empreendimento que no processo produz uma ordem espontânea auto-evolutiva mais elaborada e eficiente que qualquer quantidade de planejamento central poderia ter alcançado. Aqui, então, é o lugar para procurar o "princípio da compreensão".

A "função empreendedora" que os hackers do Linux estão maximizando não é economia clássica, mas é a intangível satisfação do seu próprio ego e reputação entre outros hackers. (Alguém pode chamar a sua motivação de "altruísta", mas isso ignora o fato que altruísmo é em si mesmo uma forma de satisfação do ego para um altruísta). Culturas voluntárias que trabalham desta maneira não são realmente incomuns; uma outra que eu tenho participado há tempos é os fãs de ficção científica, que ao contrário dos hackers, explicitamente reconhecem o "egoboo" (o aumento da reputação de alguém entre os outros fãs) como o guia básico por trás da atividade voluntária.

Linus, por posicionar ele mesmo como o guia de um projeto em que o desenvolvimento é praticamente feito por outros, e por inspirar interesse no projeto até que ele se tornasse auto-sustentável, tem mostrado um intenso entendimento do "princípio da compreensão comum" de Kropotkin. Esta visão quase-econômica do mundo do Linux nos permite ver como esta compreensão é aplicada.

Nós podemos ver o método do Linus como uma maneira de criar um mercado eficiente no "egoboo" - para ligar a autonomia de hackers individuais tão firme quanto possível para dificultar fins que podem ser somente atingidos por uma cooperação sustentada. Com o projeto do fetchmail eu tenho mostrado (embora em uma menor escala) que seus métodos podem ser duplicados com bons resultados. Talvez eu tenha até mesmo feito de uma maneira um pouco mais consciente e sistemática do que ele.

Muitas pessoas (especialmente aquelas que politicamente desacreditam os mercados livres) poderiam esperar de uma cultura de egoístas auto-direcionadores ser fragmentada, territorial, desperdiçadora, reservada e hostil. Mas esta expectativa é claramente desfeita pela (para dar só um exemplo) imensa variedade, qualidade e profundidade da documentação do Linux. É notoriamente conhecido que os programadores detestam documentar; como, então, os hackers do Linux geram tanto disto? Evidentemente o mercado livre do Linux em egoboo trabalha melhor para produzir comportamentos virtuosos e direcionados a outros propósitos que os centros de documentação massivamente fundados de produtores de software comercial.

Tanto o projeto do fetchmail como o do kernel do Linux mostram que ao se recompensar propriamente o ego de muitos outros hackers, um desenvolvedor/coordenador forte pode usar a Internet para capturar os benefícios de se ter vários co-desenvolvedores sem fazer o projeto colapsar em uma confusão caótica. Então eu contra-proponho para a Lei de Brooks o seguinte:

19. 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.

Eu acredito que o futuro do software de código aberto irá pertencer gradativamente a pessoas que saibam como jogar o jogo do Linus, pessoas que deixam para trás a catedral e abraçam o bazar. Isto não quer dizer que uma visão individual e brilhante não irá mais ter importância; ao contrário, eu acredito que o estado da arte do software de código aberto irá pertencer a pessoas que iniciem de uma visão individual e brilhante, então amplificando-a através da construção efetiva de uma comunidade voluntária de interesse.

E talvez não somente o futuro do software de código aberto. Nenhum desenvolvedor de código fechado pode competir com o conjunto de talento que a comunidade do Linux pode dar para resolver um problema. Muito poucos podem até mesmo ser capazes de pagar as mais de duzentas pessoas que têm contribuído para o fetchmail!

Talvez no final a cultura de código aberto irá triunfar não porque a cooperação é moralmente correta ou a "proteção" do software é moralmente errada (assumindo que você acredita na última, o que não faz tanto o Linus como eu), mas simplesmente porque o mundo do software de código fechado não pode vencer uma corrida evolucionária com as comunidades de código aberto que podem colocar mais tempo hábil ordens de magnitude acima em um problema.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. A catedral e o bazar
   3. O correio deve ser entregue
   4. A importância de ter usuários
   5. Libere cedo, libere freqüentemente
   6. Quando uma rosa não é uma rosa?
   7. Popclient transforma-se em Fetchmail
   8. Fetchmail cresce
   9. Algumas lições a mais do Fetchmail
   10. Pré-condições necessárias para o estilo bazar
   11. O contexto social do código aberto
   12. Reconhecimentos
   13. Para leitura adicional
   14. Epílogo: Netscape acata o bazar!
   15. Versão e histórico de mudanças
Outros artigos deste autor

Palm na internet via Linux

Leitura recomendada

Configurando controle genérico de PS2 como controle de Xbox

Rancher - Painel para Docker

Software Livre: primeiras impressões

Configurando DOTNET Core e instalando VSCode no Linux

Guia Openbox

  
Comentários
[1] Comentário enviado por coffnix em 09/11/2006 - 01:36h

histórico esse artigo.... tanto q fez o dono da netscape mudar de idéia referente à liberação dos códigos fonte do netscape... hehehe

pra vcs verem como isso foi promissor, vejam ae a fundação mozilla com o firefox e o thunderbird.


;)

[2] Comentário enviado por yetlinux em 09/11/2006 - 06:12h

Ouvi dizer que agora ele quer convencer a Sun a liberar os códigos do Java.

[3] Comentário enviado por eneiasramos em 09/11/2006 - 08:24h

Versão em PDF:

http://www.dominiopublico.gov.br/download/texto/tl000001.pdf

:)

[4] Comentário enviado por leoberbert em 09/11/2006 - 08:40h

Fala rapaizzzz Blz de artigo hein?

Continue assim.. abração!!!

[5] Comentário enviado por gnu em 09/11/2006 - 11:58h

Não quero ser chato.. e por favor não me leve a mal... Mas não seria mais pratico ter colocado isso na seção de Links? Você mesmo indicou http://www.geocities.com/CollegePark/Union/3590/pt-cathedral-bazaar.html.
E está tudo la.... valew...

[6] Comentário enviado por eneiasramos em 09/11/2006 - 17:59h

A versão PDF já está publicada na seção Links.

http://www.vivaolinux.com.br/contribuir/links/verLink.php?codigo=2764

Abraço a todos!

[7] Comentário enviado por bestlinux em 10/11/2006 - 09:43h

Falaaa cara..blzzz

Ficou muito roxxx o Artigo :)

Falow!

[8] Comentário enviado por fabio em 10/11/2006 - 12:03h

Fala GNU, neste caso apóio a publicação aqui no VOL. Motivo: a tradução está publicada no Geocities.

Possíveis problemas:

1. Geocities é beeeem mais lento que o VOL;
2. Vai que um dia a conta deixa de existir ou o artigo sai do ar.

Defendo que um texto, principalmente os úteis, estejam sempre espelhados em mais de 1 site, pois tudo nessa vida tem princípio, meio e fim e isso também vale para sites. É mais ou menos o conceito de mirrors de pacotes de distros, se só houvesse um, quando o servidor cair fica todo mundo na mão :)

Um abraço

[9] Comentário enviado por User-kuruma em 10/11/2006 - 14:23h

Excelente, esse texto tem aplicação não só na área de software, mas também traz lições para criação e desenvolvimento de projetos de outras áreas. As lições que se pode extrair do texto tem aplicação nas mais diversas áreas de produção e desenvolvimento de serviços para a sociedade em geral.

[10] Comentário enviado por joseapff em 10/11/2006 - 16:32h

Muito bom esse texto é ima ótima referencia para quem aprecia o codigo livre.

[11] Comentário enviado por yetlinux em 12/11/2006 - 23:36h

E como alguns já escreveram por aí, não aqui, que o site Domínio Público estaria com o pé na cova, nada melhor que relembrar o que ele pode ter de útil.

***

Sun vai abrir mesmo o Java sob GPLv2
http://br-linux.org/linux/sun-confirma-vai-mesmo-abrir-o-codigo-do-java-e-a-licenca-sera-a-gplv2

[12] Comentário enviado por juliaojunior em 18/03/2008 - 20:44h

Simplesmente fantástico!! Vai para o favoritos.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts