Você está na página 1de 21

A Catedral e o Bazar (The Cathedral and the Bazaar)

por Eric S. Raymond Data: 12/11/1998 04:01:20 hs

Eu analiso um projeto bem sucedido de cdigo livre o !etchmail "ue !oi e#ecutado como um teste deliberado de algumas teorias surpreendentes sobre a tecnologia de programa$%o sugerida pela histria do &inu#' Eu discuto estas teorias nos termos de dois estilos !undamentais di!erentes de desenvolvimento o modelo (catedral) da maior parte do mundo comercial contra o modelo (ba*ar) do mundo do &inu#' Eu mostro "ue estes modelos derivam de suposi$+es opostas sobre a nature*a da tare!a de depurar o so!t,are' Eu !a$o ent%o um argumento sustentado na e#peri-ncia do &inu# para a proposi$%o "ue (Dados bastante olhos todos os erros s%o triviais) sugiro analogias produtivas com outros sistemas auto.corrig/veis de agentes ego/stas e concluo com alguma e#plora$%o das implica$+es desta introspec$%o para o !uturo do so!t,are' 1' 0 1atedral e o 2a*ar'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''2 2' 3 1orreio Deve 4er Entregue'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''2 5' 0 6mport7ncia de 8er 9su:rios'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''; 4' &ibere 1edo &ibere <re"=entemente'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''> ;' ?uando 9ma @osa A%o B 9ma @osaC''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''9 >' Dopclient 8rans!orma.se em <etchmail''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''10 E' <etchmail 1resce''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''12 8' 0lgumas &i$+es a Fais do <etchmail''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''15 9' DrB.condi$+es Aecess:rias Dara o Estilo 2a*ar''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''1; 10' 3 1onte#to 4ocial do 1digo 0berto'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''1> 11' 0gradecimentos''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''19 12' Dara &eitura 0dicional''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''19 15' Ep/logo: Aetscape 0cata o 2a*arG''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''20 14' Hers%o e Iistrico de Fudan$as''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''21 1pia e redistribui$%o permitida sem roJaltJ contanto "ue esta noti!ica$%o esteja preservada' 8radu*ido por EriK Lohler' MeKohlerNprogrammer'netO <onte: http://,,,'geocities'com/1ollegeDarK/9nion/5;90/pt.cathedral.ba*aar'html 3riginal: http://catb'org/Pesr/,ritings/cathedral.ba*aar/

1. A Catedral e o Bazar
&inu# B subversivo' ?uem pensaria mesmo h: cinco anos atr:s "ue um sistema operacional de classe mundial poderia surgir como "ue por m:gica pelo tempo livre de milhares de colaboradores espalhados por todo o planeta conectado somente pelos t-nues cord+es da 6nternetC 1ertamente n%o eu' Ao tempo "ue o &inu# apareceu em minha tela.radar no in/cio de 1995 eu j: tinha me envolvido no desenvolvimento de 9ni# e de cdigo aberto por de* anos' Eu !ui um dos primeiros contribuintes para o projeto QA9 nos meados de 1980' Eu tinha liberado bastante do so!t,are livre na rede desenvolvendo ou co.desenvolvendo diversos programas RnethacK Emacs em modo H1 e Q9D #li!e e outrosS "ue est%o ainda em largo uso hoje' Eu pensei "ue eu sabia como isso era !eito' &inu# ultrapassou muito o "ue eu pensei "ue sabia' Eu estava pregando o modo 9ni# de uso de pe"uenas !erramentas de prototipagem r:pida e de programa$%o evolucion:ria por anos' Fas eu acreditei tambBm "ue havia alguma comple#idade cr/tica acima da "ual uma apro#ima$%o mais centrali*ada mais a priori era re"uerida' Eu acreditava "ue os so!t,ares mais importantes Rsistemas operacionais e !erramentas realmente grandes como EmacsS necessitavam ser constru/dos como as catedrais habilmente criados com cuidado por m:gicos ou pe"uenos grupos de magos trabalhando em espl-ndido isolamento com nenhum beta para ser liberado antes de seu tempo' 3 estilo de &inus 8orvalds de desenvolvimento .. libere cedo e !re"=entemente delegue tudo "ue voc- possa esteja aberto ao ponto da promiscuidade .. veio como uma surpresa' Aenhuma catedral calma e respeitosa a"ui .. ao invBs a comunidade &inu# pareceu assemelhar.se a um grande e barulhento ba*ar de di!erentes agendas e apro#ima$+es Rade"uadamente simboli*ada pelos repositrios do &inu# "ue aceitaria submiss+es de qualquer pessoaS de onde um sistema coerente e est:vel poderia aparentemente emergir somente por uma sucess%o de milagres' 3 !ato de "ue este estilo ba*ar pareceu !uncionar e !uncionar bem veio como um distinto cho"ue' 1on!orme eu aprendia ao meu redor trabalhei duramente n%o apenas em projetos individuais mas tambBm tentando compreender por"ue o mundo do &inu# n%o somente n%o se dividiu em con!us%o mas parecia aumentar a sua !or$a a uma velocidade "uase inacredit:vel para os construtores de catedrais' Em meados de 199> eu pensei "ue eu estava come$ando a compreender' 3 acaso deu.me uma maneira per!eita para testar minha teoria na !orma de um projeto de cdigo aberto "ue eu poderia conscientemente tentar e#ecutar no estilo ba*ar' 0ssim eu !i* .. e !oi um sucesso signi!icativo' Ao resto deste artigo eu contarei a histria desse projeto e eu irei us:.la para propor alguns a!orismos sobre o desenvolvimento e!ica* de cdigo aberto' Aem tudo eu aprendi primeiramente no mundo do &inu# mas ns veremos como o mundo do &inu# lhe d: um ponto particular' 4e eu estiver correto eles o ajudar%o a compreender e#atamente o "ue B "ue !a* a comunidade do &inu# ser uma !onte de so!t,are bom .. e ajuda a voc- a se tornar mais produtivo'

2. O Correio Deve Ser Entregue


Desde 1995 eu venho cuidando da parte tBcnica de um pe"ueno Drovedor de 0cesso 6nternet de acesso gratuito chamado 1hester 1ountJ 6nter&inK R116&S em Test 1hester Densilv7nia Reu !ui co. !undador do 116& e escrevi nosso so!t,are multiusu:rio de 224 .. voc- pode observ:.lo 2

e#ecutando um telnet para locKe'ccil'org1' Ioje suporta "uase tr-s mil usu:rios em trinta linhas'S 3 trabalho permitiu.me o acesso 24 horas por dia U rede atravBs da linha de ;>L do 116& .. de !ato praticamente e#igiuG 1onse"=entemente eu !i"uei acostumado a acesso instant7neo ao correio 6nternet' Dor ra*+es complicadas era di!/cil !a*er o 4&6D !uncionar entre minha m:"uina de casa RsnarK'thJrsus'comS e o 116&' ?uando eu !inalmente consegui eu achei incVmodo ter "ue e#ecutar telnet periodicamente para o locKe para veri!icar meu correio' 3 "ue eu "ueria era "ue ele !osse enviado para o snarK de modo "ue eu !osse noti!icado "uando uma mensagem chegasse e pudesse manuse:.lo usando todas as minhas !erramentas locais' 3 simples reenvio do sendmail n%o !uncionaria por"ue minha m:"uina local n%o est: sempre na rede e n%o tem um 6D est:tico' 3 "ue eu precisava era um programa "ue pegasse meu correio atravBs da cone#%o 4&6D e o entregasse localmente' Eu sabia "ue tais programas e#istiam e "ue a maioria deles usava um protocolo de aplica$%o simples chamado D3D RDost 3!!ice DrotocolS' E realmente j: havia um servidor D3D5 inclu/do com sistema operacional 24D/34 do locKe' Eu precisava de um cliente D3D5' Ent%o eu procurei na 6nternet e encontrei um' Aa verdade eu encontrei tr-s ou "uatro' Eu usei o pop.perl por algum tempo mas !altava o "ue parecia uma caracter/stica bvia a habilidade de alterar os endere$os no correio recebido para "ue as respostas !ossem enviadas corretamente' 3 problema era este: suponha "ue alguBm chamado WjoeW no locKe tenha me enviado uma mensagem' 4e eu capturasse o correio para o snarK e tentasse ent%o lhe responder meu programa de correio tentaria alegremente envi:.lo a um WjoeW ine#istente no snarK' Editar manualmente os endere$os de resposta para adicionar WNccil'orgW rapidamente tornou.se um tormento' 6sto era claramente algo "ue o computador teria "ue !a*er para mim' Fas nenhum dos clientes D3D e#istentes sabiam comoG E isto nos tra* U primeira li$%o: 1. Todo bom trabalho de software comea colocando o dedo na ferida de um programador. 8alve* isto deveria ter sido bvio Rum antigo provBrbio di* "ue (0 necessidade B a m%e da inven$%o)S mas muitas ve*es os programadores gastam seus dias buscando retorno em programas "ue eles n%o necessitam nem gostam' Fas n%o no mundo do &inu# .. o "ue pode e#plicar por"ue a "ualidade mBdia do so!t,are originada na comunidade de &inu# B t%o alta' 0ssim eu me lancei imediatamente com o /mpeto de codi!icar um novo cliente D3D5 para competir com os e#istentesC De maneira algumaG Eu olhei com cuidado os utilit:rios D3D "ue eu tinha U disposi$%o perguntando.me ("ual deles B o mais pr#imo do "ue eu "ueroC)' Dor"ue''' 2. Os programadores bons sabem o que escrever. O grandes sabem o que rescrever (e reusar). Embora eu n%o me considere um grande programador eu tento me passar por um' 9ma importante caracter/stica dos grandes B a pregui$a construtiva' Eles sabem "ue voc- ganha um W0W n%o por es!or$o mas por resultados e B "uase sempre mais !:cil partir de uma boa solu$%o parcial do "ue do nada' &inus 8orvalds2 por e#emplo n%o tentou realmente escrever &inu# do nada' 0o contr:rio ele come$ou reusando cdigo e idBias do Fini# um pe"ueno sistema operacional 9ni#.liKe para
1 telnet://locKe'ccil'org 2 http://,,,'tu#edo'org/Pesr/!a"s/linus

m:"uinas 58>' Eventualmente todo o cdigo Fini# se !oi ou !oi completamente rescrito .. mas "uando estava l: !orneceu as bases para o in!ante "ue se trans!ormaria no &inu#' 1om o mesmo pensamento eu !ui procurar um utilit:rio D3D "ue !osse ra*oavelmente bem codi!icado para usar como uma base de desenvolvimento' 0 tradi$%o do mundo 9ni# de compartilhar o cdigo !onte !oi sempre amig:vel para a reutili*a$%o de cdigo Resta B a ra*%o por"ue o projeto de QA9 escolheu o 9ni# como sistema operacional base apesar das sBrias reservas sobre o mesmoS' 3 mundo &inu# tem levado esta tradi$%o "uase a seu limite tecnolgicoX tem terabJtes de cdigos abertos amplamente dispon/veis' 0ssim gastando tempo procurando algum so!t,are "uase.bom.o.bastante !eito por alguBm B mais prov:vel dar a voc- mais bons resultados no mundo &inu# do "ue em "ual"uer outro lugar' E !e* para mim' 1om a"ueles "ue eu achei antes minha segunda busca compVs um total de nove candidatos .. !etchpop Dop8art get.mail g,pop pimp pop.perl popc popmail e upop' 3 primeiro "ue eu trabalhei primeiramente era o W!etchpopW por 4eung.Iong 3h' Eu pus o meu cdigo de reescrita de cabe$alho nele e !i* v:rias outras melhorias "ue o autor aceitou em sua vers%o 1'9' 0lgumas semanas mais tarde entretanto eu tropecei pelo cdigo do WpopclientW desenvolvido por 1arl Iarris e descobri "ue eu tinha um problema' Embora o !etchpop tenha tido algumas idBias boas e originais Rtal como o modo daemonS podia somente trabalhar com D3D5 e !oi codi!icado de uma maneira um tanto amadora R4eung.Iong era um programador brilhante porBm ine#periente e ambas as caracter/sticas !icaram evidentesS' 3 cdigo de 1arl era melhor bastante pro!issional e slido mas em seu programa !altou diversas caracter/sticas importantes e complicadas de serem implementadas do !etchpop Rincluindo a"uelas "ue eu implementeiS' <icar ou trocarC 4e eu trocasse eu estaria jogando !ora o cdigo "ue eu j: havia !eito em troca de uma base melhor do desenvolvimento' 9m motivo pr:tico para trocar era a presen$a de suporte para v:rios protocolos' D3D5 B o protocolo mais comumente utili*ado de todos os protocolos de correio dos servidores mas n%o o Ynico' <etchpop e os outros concorrentes n%o !a*iam D3D2 @D3D ou 0D3D e eu estava realmente tendo alguns pensamentos de talve* adicionar 6F0D5 R6nternet Fessage 0ccess Drotocol ou Drotocolo de 0cesso a Fensagem da 6nternet o mais recente e poderoso protocolo de correio desenvolvidoS s para me divertir' Fas eu tinha uma ra*%o mais terica para pensar "ue trocar seria uma boa idBia alguma coisa "ue eu aprendi muito antes do &inu#' 3. !lane"e "ogar algo fora# voc$ ir%& de qualquer maneira.' ((red )roo*s& The +,thical +an+onth'& .ap/tulo 11) 3u colocando de outra !orma voc- !re"=entemente n%o entende realmente o problema atB depois da primeira ve* "ue voc- implementa uma solu$%o' Aa segunda ve* talve* voc- saiba o su!iciente para !a*er corretamente' Ent%o se voc- "uer !a*er algo certo esteja preparado para come$ar tudo novamente pelo menos uma ve*' 2em Reu disse para mim mesmoS as mudan$as no !etchpop !oram a minha primeira tentativa' Ent%o eu tro"uei' Depois "ue eu mandei meu primeiro conjunto de altera$+es para 1arl Iarris em 2; de junho de
5 http://,,,'imap'org/

199> eu percebi "ue na verdade ele perdera o interesse pelo popclient h: algum tempo atB ent%o' 3 cdigo era um pouco empoeirado com pe"uenos erros' Eu tinha muitas mudan$as para !a*er e ns rapidamente concordamos "ue o lgico para eu !a*er era tomar conta do programa' 4em perceber o projeto havia se intensi!icado' Eu n%o estava mais contemplando somente pe"uenos consertos para um cliente D3D e#istente' Eu estava mantendo um cliente completo e havia idBias borbulhando na minha cabe$a "ue eu sabia iriam provavelmente levar a importantes mudan$as' Em uma cultura de so!t,are "ue encoraja a troca de cdigo isto B um caminho natural para um projeto evoluir' Eu estava representando isto: 0. 1e voc$ tem a atitude certa& problemas interessantes ir2o encontr%-lo. Fas a atitude do 1arl Iarris !oi ainda mais importante' Ele entendeu "ue 3. 4uando voc$ perde interesse em um programa& sua 5ltima obriga2o a fa6er com ele 7 entreg%lo a um sucessor competente. 4em ao menos ter "ue discutir isso 1arl e eu sab/amos "ue ns t/nhamos um objetivo em comum de ter a melhor solu$%o dispon/vel' 0 Ynica "uest%o para ns !oi se eu poderia me estabelecer como um par de m%os seguras para isso' 9ma ve* "ue eu tenha !eito isso ele agiu com cortesia e rapide*' Eu espero "ue eu aja assim "uando chegar a minha ve*'

3. A Importncia de Ter !u"rio!


E ent%o eu herdei o popclient' 8%o importante "uanto eu herdei os usu:rios do popclient' 9su:rios s%o timas coisas para se ter e n%o somente por"ue eles demonstram "ue voc- est: satis!a*endo uma necessidade "ue voc- !e* algo certo' 1ultivados de maneira ade"uada eles podem se tornar co.desenvolvedores' 3utra !or$a da tradi$%o do 9ni# uma "ue o &inu# tem levado a um alegre e#tremo B "ue muitos usu:rios s%o hacKers tambBm' E por"ue o cdigo !onte est: dispon/vel eles podem ser hacKers efica6es' 6sto pode ser tremendamente Ytil para redu*ir o tempo de depura$%o' 1om um pouco de est/mulo seus usu:rios ir%o diagnosticar problemas sugerir corre$+es e ajudar a melhorar o cdigo muito mais rapidamente do "ue voc- poderia !a*er sem ajuda' 8. Tratar seus usu%rios como co-desenvolvedores 7 seu caminho mais f%cil para uma melhora do c9digo e depura2o efica6. 3 poder deste e!eito B !:cil de se subestimar' De !ato todos ns do mundo do cdigo aberto subestimamos drasticamente como isto iria incrementar o nYmero de usu:rios e diminuir a comple#idade do sistema atB "ue &inus 8orvalds nos mostrou de outra !orma' De !ato eu penso "ue a engenhosidade do &inus e a maior parte do "ue desenvolveu n%o !oram a constru$%o do Kernel do &inu# em si mas sim a sua inven$%o do modelo de desenvolvimento do &inu#' ?uando eu e#pressei esta opini%o na sua presen$a uma ve* ele sorriu e calmamente repetiu algo "ue !re"=entemente di*: (4ou basicamente uma pessoa muito pregui$osa "ue gosta de ganhar crBdito por coisas "ue outras pessoas realmente !a*em') Dre"ui$oso como uma raposa' 3u como @obert Ieinlein teria dito muito pregui$oso para !alhar' Em retrospecto um precedente para o sucesso e mBtodos do &inu# pode ser observado no ;

desenvolvimento da biblioteca do QA9 Emacs &isp e os repositrios de cdigo &isp' Em contraste com o estilo de desenvolvimento catedral do nYcleo do Emacs 1 e a maioria das outras !erramentas da <4< a evolu$%o do grupo de cdigo &isp !oi !lu/da e bastante dirigida ao usu:rio' 6dBias e prottipos !oram !re"=entemente reescritos tr-s ou "uatro ve*es antes de atingirem uma !orma est:vel !inal' E colabora$+es permitidas pela 6nternet a la &inu# !oram !re"=entes' @ealmente minha mais bem sucedida codi!ica$%o anterior ao !etchmail !oi provavelmente o modo Emacs H1 uma colabora$%o do tipo do &inu# por email com tr-s outras pessoas somente uma das "uais R@ichard 4tallman o autor do EF014 e !undador da <4<4S eu conheci pessoalmente atB hoje' <oi um !ront.end para 4114 @14 e posteriormente 1H4 pelo Emacs "ue o!erecia opera$+es de controle de vers%o (um to"ue)' Evoluiu de um pe"ueno e grosseiro modo sccs'el "ue alguBm havia escrito' E o desenvolvimento do H1 !oi bem sucedido por"ue ao contr:rio do prprio Emacs o cdigo do Emacs &isp poderia ir por gera$+es de lan$amento/teste/aper!ei$oamento muito rapidamente'

#. $i%ere Cedo& $i%ere 're()entemente


&ibera$+es novas e !re"=entes s%o uma parte cr/tica do modelo de desenvolvimento do &inu#' 0 maioria dos desenvolvedores Rincluindo euS costumava acreditar "ue esta era uma m: pol/tica para projetos maiores "ue os triviais por"ue vers+es novas s%o "uase por de!ini$%o cheias de erros e voc- n%o "uer acabar com a paci-ncia dos seus usu:rios' Esta cren$a re!or$ou o compromisso de todos com o estilo de desenvolvimento catedral' 4e o principal objetivo era o de usu:rios verem menos erros "uanto poss/vel por "ue ent%o voc- iria somente lan$ar um em cada seis meses Rou !re"=entemente menosS e trabalhar como um cachorro depurando entre as libera$+es' 3 nYcleo do Emacs 1 !oi desenvolvido desta !orma' 0 biblioteca &isp de !ato n%o !oi .. por"ue havia repositrios &isp ativos !ora do controle da <4< aonde vocpoderia ir para achar vers+es novas e em desenvolvimento independentemente do ciclo de libera$%o do Emacs' 0 mais importante destas o repositrio elisp do Estado de 3hio antecipou o esp/rito e muitas das caracter/sticas dos atuais grandes repositrio de &inu#' Fas pouco de ns realmente pensou muito sobre o "ue est:vamos !a*endo ou sobre o "ue a e#ist-ncia deste repositrio sugeriu sobre problemas no modelo de desenvolvimento catedral da <4<' Eu !i* uma sBria tentativa por volta de 1992 para ter bastante cdigo de 3hio !ormalmente !undido na biblioteca o!icial do Emacs &isp' Encontrei problemas pol/ticos e !ui muito mal sucedido' Fas um ano depois visto "ue o &inu# se tornou amplamente conhecido !icou claro "ue alguma coisa di!erente e muito saud:vel estava acontecendo' 0 pol/tica de desenvolvimento aberta do &inus era e#atamente o oposto do modelo de desenvolvimento catedral' 3s repositrios sunsite e ts#.11 estavam germinando mYltiplas distribui$+es estavam surgindo' E tudo isto !oi guiado por uma !re"=-ncia desconhecida de libera$+es de nYcleo de sistemas' &inus estava tratando seus usu:rios como co.desenvolvedores na maneira mais e!ica* poss/vel: :. ;iberece cedo. ;ibere freq<entemente. = oua seus fregueses. 6sso n%o era muito a inova$%o do &inus Ralgo como isso estava sendo a tradi$%o do mundo 9ni# por um longo tempoS mas em elevar isto atB um grau de intensidade "ue alcan$ava a comple#idade do
4 http://,,,'!s!'org/

>

"ue ele estava desenvolvendo' Aestes primrdios tempos Rpor volta de 1991S n%o era estranho para ele liberar um novo Kernel mais de uma ve* por dia> E por"ue ele cultivava sua base de co. desenvolvedores e incitava !ortemente a 6nternet por colabora$%o como nenhum outro isto !uncionou' Fas como isto !uncionouC E era isto algo "ue eu poderia duplicar ou era algo "ue dependia da genialidade Ynica de &inus 8orvaldsC Eu n%o pensei assim' @econhecidamente &inus B um e#celente hacKer R"uantos de ns poderia planejar um Kernel completo de um sistema operacional de "ualidade de produ$%oCS' Fas o &inu# n%o representou nenhum salto conceitual impressionante a !rente' &inus n%o B Rou pelo menos ainda n%oS um g-nio inovativo de projeto do estilo "ue por e#emplo @ichard 4tallman ou Zames Qosling Rdo AeT4 e ZavaS s%o' 0o contr:rio para mim &inus parece ser um g-nio da engenharia com um se#to sentido em evitar erros e desenvolvimentos "ue levem a um beco sem sa/da e uma verdadeira habilidade para achar o caminho do menor es!or$o do ponto 0 ao ponto 2' De !ato todo o projeto do &inu# e#ala esta "ualidade e espelha a abordagem conservadora e simpli!icada de planejamento do &inus' Ent%o se libera$+es r:pidas e in!luenciar a 6nternet a todo custo n%o !oram acidentes mas partes integrantes da perspic:cia do g-nio de engenharia do &inus para o caminho do menor es!or$o o "ue ele estava en!ati*andoC 3 "ue ele estava ma"uinandoC Dosto desta !orma a "uest%o responde a si mesma' &inus estava mantendo seus usu:rios/hacKers constantemente estimulados e recompensados .. estimulados pela perspectiva de estar tenndo um pouco de a$%o satis!atria do ego recompensados pela vis%o do constante RatB mesmo di%rioS melhoramento do seu trabalho' &inus estava diretamente direcionado a ma#imi*ar o nYmero de pessoas.hora dedicadas a depura$%o e ao desenvolvimento mesmo com o poss/vel custo da instabilidade no cdigo e e#tin$%o da base de usu:rios se "ual"uer erro sBrio provasse ser intrat:vel' &inus estava se comportando como se acreditasse em algo como isto: ?. @ada uma base grande o suficiente de beta-testers e co-desenvolvedores& praticamente todo problema ser% caracteri6ado rapidamente e a solu2o ser% 9bvia para algu7m. 3u menos !ormalmente (Dados olhos su!icientes todos os erros s%o triviais') Eu chamo isso de: (&ei de &inus)' Finha !ormula$%o original !oi "ue todo problema (ser: transparente para alguBm)' &inus objetou "ue a pessoa "ue entende e conserta o problema n%o B necessariamente ou mesmo !re"=entemente a pessoa "ue primeiro o caracteri*ou' (0lguBm acha o problema ) ele di* (e uma outra pessoa o entende' E eu dei#o registrado "ue achar isto B o grande desa!io') Fas o ponto B "ue ambas as coisas tendem a acontecer rapidamente' 0"ui eu penso B o centro da di!eren$a !undamental entre os estilos ba*ar e catedral' Aa vis%o catedral de programa$%o erros e problemas de desenvolvimento s%o di!/ceis insidiosos um !enVmeno pro!undo' &eva meses de e#ame minucioso por poucas pessoas dedicadas para desenvolver con!ian$a de "ue voc- se livrou de todos eles' Dor conseguinte os longos intervalos de libera$%o e o inevit:vel desapontamento "uando as libera$+es por tanto tempo esperadas n%o s%o per!eitas' Aa vis%o ba*ar por outro lado voc- assume "ue erros s%o geralmente um !enVmeno trivial .. ou E

pelo menos eles se tornam triviais muito rapidamente "uando e#postos para centenas de :vidos co. desenvolvedores triturando cada nova libera$%o' 1onse"uentemente voc- libera !re"=entemente para ter mais corre$+es e como um benB!ico e!eito colateral voc- tem menos a perder se um erro ocasional aparece' E B isto' [ o su!iciente' 4e a (&ei de &inus) B !alsa ent%o "ual"uer sistema t%o comple#o como o Kernel do &inu# sendo programado por tantas m%os "uantas programam o Kernel do &inu# deveria a um certo ponto tido um colapso sob o peso de intera$+es imprevis/veis e erros (pro!undos) n%o descobertos' 4e isto B verdade por outro lado B su!iciente para e#plicar a relativa !alta de erros do &inu#' E talve* isso n%o deveria ser uma surpresa mesmo assim' 0nos atr:s sociologistas descobriram "ue a opini%o mBdia de uma massa de observadores especialistas Rou igualmente ignorantesS B um indicador mais seguro "ue o de um Ynico observador escolhido aleatoriamente' Eles chamaram isso de o (e!eito Delphi)' Darece "ue o "ue o &inus tem mostrado B "ue isto se aplica atB mesmo para depurar um sistema operacional .. "ue o e!eito Delphi pode suavi*ar a comple#idade do desenvolvimento atB mesmo em n/vel de comple#idade do Kernel de um sistema operacional' Eu sou grato a Ze!! DutKJ MdutKJN,am'umd'eduO por apontar "ue a lei de &inus pode ser re!eita como (Depurar B paraleli*:vel)' Ze!! observa "ue embora depurar re"uer "ue depuradores se comuni"uem com algum desenvolvedor coordenador n%o re"uer coordena$%o signi!icante entre depuradores' 0ssim n%o cai v/tima para a mesma comple#idade "uadr:tica e custos de ger-ncia "ue !a* ser problem:tico adicionar desenvolvedores' Aa pr:tica a perda terica de e!ici-ncia devido a duplica$%o de trabalho por depuradores "uase nunca parece ser um problema no mundo do &inu#' 9m e!eito da (pol/tica libere cedo e !re"=entemente) B minimi*ar esta duplica$%o propagando consertos rapidamente' 2rooKs atB mesmo !e* uma observa$%o improvisada relacionada U observa$%o de Ze!!: (3 custo total de manter um programa amplamente utili*ado B tipicamente 40 porcento ou mais o custo de desenvolv-.lo' 4urpreendentemente este custo B muito a!etado pelo nYmero de usu:rios' +ais usu%rios acham mais erros.) Rminha -n!aseS' Fais usu:rios acham mais erros por"ue adicionar mais usu:rios adiciona mais maneiras di!erentes de testar o programa' Este e!eito B ampli!icado "uando os usu:rios s%o co.desenvolvedores' 1ada um aborda a tare!a de caracteri*a$%o de erro com um conjunto perceptivo ligeiramente di!erente e !erramenta anal/tica um 7ngulo di!erente do problema' 3 (e!eito Delphi) parece !uncionar precisamente por causa desta varia$%o' Ao conte#to espec/!ico da depura$%o a varia$%o tambBm tende a redu*ir o !eito da duplica$%o' Ent%o adicionar mais beta.testers pode n%o redu*ir a comple#idade de um erro (pro!undo) corrente do ponto de vista do desenvolvedor mas aumenta a probabilidade "ue a !erramenta de alguBm ir: de encontro ao problema de uma maneira tal "ue o problema ser: trivial para esta pessoa' &inus cobre suas apostas' 1aso ha"a erros sBrios as vers+es do Kernel do &inu# s%o numeradas de !orma "ue usu:rios em potencial podem !a*er a escolha de e#ecutar a Yltima vers%o designada (est:vel) ou correr o risco de encontrar erros para obter novas caracter/sticas' Esta tBcnica n%o B ainda !ormalmente imitada pela maioria dos hacKers usu:rios do &inu# mas talve* devesseX o !ato de "ue ambas as escolhas estejam dispon/veis !a* delas mais atraentes'

*. +uando ma ,o!a -.o / ma ,o!a0


8endo estudado o comportamento do &inus e !ormado uma teoria sobre como ele !oi bem sucedido eu !i* uma decis%o consciente para testar esta teoria em meu novo Rreconhecidamente muito menos comple#o e ambiciosoS projeto' Fas a primeira coisa "ue eu !i* !oi reorgani*ar e simpli!icar bastante o popclient' 0 implementa$%o do 1arl Iarris era muito atrativa mas e#ibia um tipo de comple#idade desnecess:ria comum a v:rios programadores em 1' Ele tratou o cdigo como centro das aten$+es e as estruturas de dados como suporte para o cdigo' 1omo resultado o cdigo era muito bonito mas o projeto da estrutura de dados era ad.hoc e um tanto !eio Rpelo menos pelos altos padr+es deste velho hacKer de &64DS' Eu tinha outro propsito para reescrever alBm de aper!ei$oar o cdigo e o projeto da estrutura de dados entretanto' Era evolu/.lo para algo "ue eu entenderia completamente' A%o B nada agrad:vel ser respons:vel por consertar erros em um programa "ue voc- n%o entende' Fais ou menos durante o primeiro m-s ent%o eu estava simplesmente seguindo as implica$+es do projeto b:sico do 1arl' 0 primeira mudan$a sBria "ue !i* !oi adicionar suporte ao 6F0D' Eu !i* isso reorgani*ando as rotinas de protocolos em um driver genBrico e tr-s tabelas de mBtodos Rpara D3D2 D3D5 e 6F0DS' Esta e as mudan$as anteriores ilustram o princ/pio geral "ue B bom para os programadores manterem em mente especialmente em linguagens como 1 "ue n%o implementam naturalmente tipagem din7mica: A. =strutura de dados inteligentes e c9digo burro trabalham muito melhor que ao contr%rio. 2rooKs 1ap/tulo 11: (Fostre.me seu \cdigo] e esconda suas \estruturas de dados] e eu poderei continuar misti!icado' Fostre.me suas \estruturas de dados] e eu provavelmente n%o necessitarei do seu \cdigo]X ele ser: bvio') De !ato ele disse (gr:!icos) e (tabelas)' Fas considerando trinta anos de terminologias/mudan$as culturais B praticamente o mesmo ponto' Aeste ponto R"uase 4etembro de 199> mais ou menos seis semanas desde o in/cioS eu comecei a pensar "ue uma mudan$a de nome deveria ser ade"uada .. a!inal de contas n%o era mais somente um cliente D3D' Fas eu hesitei por"ue ainda n%o havia ainda nada genuinamente novo ainda no projeto' Finha vers%o do popclient ainda teria "ue desenvolver uma identidade prpria' 6sto mudou radicalmente "uando o !etchmail aprendeu como reenviar mensagens recebidas para a porta 4F8D' Eu irei a este ponto em um momento' Fas primeiro: Eu disse acima "ue eu decidi usar este projeto para testar minha teoria sobre o "ue &inus 8orvalds !e* corretamente' 1omo Rvoc- pode perguntarS eu !i* istoC Desta !orma: 1' Eu liberei cedo e !re"=entemente R"uase nunca menos "ue uma ve* a cada de* diasX durante per/odos de desenvolvimento intenso uma ve* por diaS' 2' Eu aumentei minha lista de beta testers adicionando U ela todo mundo "ue me contatava sobre o !etchmail' 5' Eu mandei e#tensos anYncios U lista de beta testers toda ve* "ue eu liberava encorajando as pessoas a participar' 4' E eu ouvia meus beta testers "uestionando.os sobre decis+es de desenvolvimento e incitando.os toda ve* "ue eles mandavam consertos e respostas'

3 retorno destas medidas simples !oi imediato' Desde o in/cio do projeto eu obtive relatrios sobre erros de uma "ualidade "ue a maioria dos desenvolvedores morreria para ter muitas ve*es com timos consertos inclu/dos' Eu obtive cr/ticas severas obtive mensagens de !%s obtive sugest+es inteligentes de caracter/sticas' 3 "ue leva a: 1B. 1e voc$ tratar seus beta testers como seu recurso mais valioso& eles ir2o responder tornando-se seu mais valioso recurso. 9ma medida interessante do sucesso do !etchmail B o simples tamanho da lista de beta testers amigos do !etchmail' 0o escrever este te#to ela possu/a 249 membros e s%o adicionados dois ou tr-s por semana' De !ato con!orme eu reviso ao !inal de Faio de 199E a lista est: come$ando a perder membros depois do pico de apro#imadamente 500 pessoas por uma ra*%o interessante' Fuitas pessoas t-m me pedido para e#clu/.las da lista por"ue o !etchmail est: trabalhando t%o bem para elas "ue elas n%o precisam mais ver o tr:!ego da listaG 8alve* isto seja parte do ciclo de vida normal de um projeto maduro do estilo ba*ar'

1. 2opclient Tran!3orma4!e em 'etc5mail


3 verdadeiro ponto de mudan$a no projeto !oi "uando IarrJ Iochheiser me mandou o seu rascunho de cdigo para reenviar mensagens para a porta 4F8D da m:"uina cliente' Eu percebi "uase imediatamente "ue uma implementa$%o segura desta caracter/stica iria tornar todos os outros modos de envio perto do obsoleto' Dor muitas semanas eu !i"uei customi*ando o !etchmail de maneira incremental en"uanto percebia como o projeto de inter!ace estava aproveit:vel mas !eio .. n%o estava elegante e com muitas pe"uenas op$+es por toda parte' 0s op$+es para e#trair mensagens coletadas para um ar"uivo de mensagens ou sa/da padr%o particularmente me aborreciam mas eu n%o conseguia descobrir por "ue' 3 "ue eu vi "uando eu pensei sobre reenvio 4F8D !oi "ue o popclient estava tentando !a*er muitas coisas' Ele !oi projetado para ser tanto um agente transportador de correspond-ncia RF80S "uanto um agente local de entrega RFD0S' 1om reenvio 4F8D ele poderia retirar o FD0 e ser somente um F80 trans!erindo as correspond-ncias para outros programas para entrega local como o sendmail !a*' Dor "ue se envolver com toda a comple#idade de con!igurar um agente de entrega de correspond-ncia ou con!igurar locK.e.append em um ar"uivo de correio "uando a porta 2; B "uase garantida para estar l: em primeiro lugar em "ual"uer plata!orma com suporte para 81D/6DC Especialmente "uando isso signi!ica "ue o correio coletado B garantido parecer como um correio 4F8D iniciado pelo remetente normalmente o "ue de "ual"uer maneira B realmente o "ue "ueremos' I: v:rias li$+es a"ui' Drimeira esta idBia de reenvio por 4F8D !oi o primeiro grande retorno "ue eu obtive por tentar conscientemente emular os mBtodos do &inus' 9m usu:rio me deu esta idBia brilhante .. tudo "ue eu tive "ue !a*er !oi entender as implica$+es' 11. C melhor coisa depois de ter boas id7ias 7 reconhecer boas id7ias dos seus usu%rios. Cs ve6es a 5ltima 7 melhor. 10

E o "ue B interessante voc- ir: rapidamente descobrir "ue se voc- est: se achando completamente desacreditado sobre o "uanto voc- deve a outras pessoas o mundo inteiro ir: trat:.lo como se vocmesmo tivesse criado cada bit da inven$%o e est: somente sendo modesto sobre seu g-nio inato' As todos podemos ver o "uanto isso !uncionou para &inusG R?uando eu mostrei este documento na con!er-ncia de Derl em 0gosto de 199E &arrJ Tall estava na primeira !ila' ?uando eu li a Yltima linha acima ele gritou !ervorosamente em um estilo religioso nost:lgico (Diga diga irm%oG)' 8oda a audi-ncia riu por"ue eles sabiam "ue isso tambBm !uncionou para o criador do Derl'S 0ps poucas semanas e#ecutando o projeto no mesmo esp/rito eu comecei a ganhar um louvor semelhante n%o apenas dos meus usu:rios mas de outras pessoas "ue dei#aram as palavras escaparem' Eu guardei algumas destas mensagensX irei olhar para elas novamente algum dia se eu come$ar a "uestionar se a minha vida valeu a pena :.S' Fas h: duas li$+es mais !undamentais a"ui n%o pol/ticas "ue s%o gerais para todos os tipos de projeto' 12. (req<entemente& as soluDes mais impressionantes e inovadoras surgem ao se perceber que o seu conceito do problema estava errado. Eu estava tentando resolver o problema errado ao desenvolver continuamente o popclient como um F80/FD0 combinado com todos os tipos de modos de distribui$%o local' 3 projeto do !etchmail precisava ser repensado do in/cio como um puro F80 uma parte do caminho normal do correio da 6nternet "ue !ala 4F8D' ?uando voc- atinge uma parede ao desenvolver .. "uando voc- di!icilmente se encontra pensando em algo depois do pr#imo patch .. B !re"=entemente tempo para perguntar n%o se voc- tem a resposta certa mas se voc- est: perguntando a pergunta correta' 8alve* o problema precise ser re!ormulado' 2em eu re!ormulei meu problema' 1laramente a coisa certa a !a*er era R1S codi!icar o suporte para reenvio por 4F8D no driver genBrico R2S tornar isto o modo de!ault e R5S eventualmente des!a*er todos os outros modos de envio especialmente as op$+es de enviar.para.ar"uivo e enviar.para. sa/da.padr%o' Eu hesitei sobre o passo 5 por algum tempo temendo aborrecer os usu:rios de longa data do popclient dependentes dos mecanismos alternativos de envio' Em teoria eles poderiam imediatamente passar a usar ar"uivos '!or,ard ou seus e"uivalentes n%o.sendmail para obter os mesmos e!eitos' Aa pr:tica a transi$%o poderia ser con!usa' Fas "uando eu a !i* os bene!/cios provaram.se altos' 0s partes obscuras do cdigo do driver sumiram' 0 con!igura$%o !icou radicalmente mais simples .. n%o mais rastejar U volta atr:s do FD0 do sistema e da cai#a de correio do usu:rio n%o mais preocupa$+es sobre se o sistema operacional suportava locKing de ar"uivo' 0lBm disso a Ynica maneira de perder correio sumira' 4e voc- especi!icava envio para um ar"uivo e o disco estava cheio seu correio estaria perdido' 6sto n%o pode acontecer com o reenvio por 4F8D por"ue o receptor 4F8D n%o retornar: 3L a n%o ser "ue a mensagem possa ser enviada ou pelo menos reprogramada para um envio mais tarde' E tambBm a per!ormance aumentou Rembora voc- n%o perceberia isso somente com uma 11

e#ecu$%oS' 3utro bene!/cio n%o insigni!icante !oi "ue a p:gina do manual !icou muito mais simples' Fais tarde eu tive "ue recolocar envio por um FD0 local especi!icado pelo usu:rio para permitir o tratamento de algumas situa$+es obscuras envolvendo 4&6D din7mico' Fas eu encontrei uma maneira muito mais simples de !a*er isto' 0 moralC A%o hesite em jogar !ora caracter/sticas obsoletas "uando voc- puder !a*er isso sem perda de e!etividade' 0ntoine de 4aint.E#upBrJ R"ue !oi um aviador e projetista de avi+es "uando ele n%o estava sendo o autor de livros cl:ssicos in!antisS disse: 13. C perfei2o (em pro"etar) 7 alcanada n2o quando n2o h% mais nada a adicionar& mas quando n2o h% nada para "ogar fora.' ?uando o seu cdigo est: !icando t%o bom "uanto simples B "uando voc- sabe "ue est: correto' E no processo o projeto do !etchmail ad"uiriu uma identidade prpria di!erente do ancestral popclient' Era tempo para a mudan$a de nome' 3 novo projeto parecia muito mais como um irm%o do sendmail do "ue o velho popclient pareciaX ambos eram F80s mas aonde o sendmail passa e ent%o envia o novo popclient coleta e ent%o envia' Ent%o aps 2 meses eu mudei o nome para !etchmail'

6. 'etc5mail Cre!ce
&: estava eu com um projeto elegante e inovador um cdigo "ue eu sabia "ue !uncionava bem por"ue eu usava todos os dias e uma crescente lista de beta testers' E gradualmente eu percebia "ue eu n%o estava mais ocupado com uma trivial codi!ica$%o pessoal "ue porventura poderia se tornar Ytil para algumas pessoas' Eu tinha em minhas m%os um programa "ue todos os usu:rios de um sistema 9ni# com uma cone#%o de correio 4&6D/DDD realmente precisavam' 1om a caracter/stica de reenvio por 4F8D ele passou muito U !rente da competi$%o para potencialmente se tornar um (categorJ Killer) um destes programas cl:ssicos "ue preenchem seu nicho t%o completamente "ue as alternativas n%o s%o somente descartadas como tambBm es"uecidas' Eu penso "ue voc- n%o pode realmente almejar ou planejar um resultado como este' Hoc- tem "ue ser atra/do para isso por idBias de projeto t%o poderosas "ue posteriormente os resultados parecem inevit:veis naturais mesmo predestinados' 0 Ynica maneira de tentar idBias como esta B tendo muitas idBias .. ou tendo o julgamento de engenharia para levar as boas idBias das outras pessoas alBm do "ue estas "ue as tiveram pensariam "ue elas poderiam ir' 0ndre, 8anenbaum teve a idBia original de construir um 9ni# nativo simples para o 58> para uso como uma !erramenta de ensino' &inus 8orvalds levou o conceito do Fini# para alBm do "ue 0ndre, provavelmente pensou "ue poderia ir .. e cresceu para algo maravilhoso' Da mesma !orma Rembora em uma menor escalaS eu peguei algumas idBias de 1arl Iarris e IarrJ Iochheiser e dei um empurr%o' Aenhum de ns !oi WoriginalW no sentido rom7ntico "ue as pessoas pensam B um g-nio' Fas a maioria do desenvolvimento de so!t,are cient/!ico e de engenharia n%o B !eita por um g-nio original a mitologia hacKer ao contr:rio' 3s resultados !oram todos sempre muito precipitados .. de !ato o tipo de sucesso "ue "ual"uer hacKer est: sempre procurandoG E eles signi!icaram "ue eu teria "ue de!inir meus padr+es ainda mais altos' Dara !a*er o !etchmail t%o bom como eu ent%o achava "ue poderia se tornar eu teria "ue 12

escrever n%o somente para minhas prprias necessidades mas tambBm incluir e suportar caracter/sticas necess:rias para outros !ora do meu relacionamento' E !a*er isto mantendo o programa simples e robusto' 0 primeira e mais importante esmagadora caracter/stica "ue eu escrevi depois de perceber isto !oi o suporte a multidrop .. a habilidade de capturar correio de cai#as de correio "ue acumularam todas as mensagens para um grupo de usu:rios e ent%o destinar cada peda$o de correio para seus destinat:rios individuais' Eu decidi adicionar o suporte ao multidrop em parte por"ue alguns usu:rios estavam pedindo por isto mas principalmente por"ue eu pensei "ue isto iria retirar os erros do cdigo para o envio simples me !or$ando a manipular o endere$amento de um modo geral' E assim se provou ser' <a*er !uncionar a an:lise da @<1 822; me tomou um tempo consideravelmente longo n%o por"ue "ual"uer peda$o dele B di!/cil mas por"ue envolvia uma pilha de detalhes interdependentes e elaborados' Fas o endere$amento multidrop se tornou uma decis%o de projeto e#celente' 0"ui est: como eu soube: 10. 4ualquer ferramenta deve ser 5til da maneira esperada& mas uma ferramenta verdadeiramente EboaE leva ela pr9pria a usos que voc$ nunca esperou. 3 uso inesperado para o multidrop do !etchmail B e#ecutar mailing lists com a lista mantida e e#pans%o de apelidos !eita no lado do cliente da cone#%o 4&6D/DDD' 6sto signi!ica "ue alguBm e#ecutando uma m:"uina pessoal por uma conta 64D pode administrar uma mailing list sem acesso cont/nuo aos ar"uivos de apelidos do 64D' 3utra importante mudan$a solicitada pelos meus beta testers !oi suporte para opera$%o F6FE 8.bit' 6sto !oi muito !:cil de !a*er por"ue eu estava sendo cuidadoso mantendo o cdigo pronto para 8.bit' A%o por"ue eu antecipei a demanda para esta caracter/stica mas em obedi-ncia a outra regra: 13. 4uando escrevendo um software gatewa, de qualquer tipo& faa tudo para perturbar o con"unto de dados o menos poss/vel -- e EnuncaE "ogue fora informa2o a n2o ser que o destinat%rio force voc$ a isto> 4e eu n%o tivesse obedecido esta regra o suporte a F6FE 8.bit teria sido di!/cil e cheio de erros' 1omo estava tudo o "ue tive "ue !a*er !oi ler a @<1 1>;2 > e adicionar um pouco de lgica trivial para a gera$%o de cabe$alho' 0lguns usu:rios Europeus insistiram para "ue eu adicionasse uma op$%o para limitar o nYmero de mensagens recebidas por se$%o Rde maneira "ue eles poderiam controlar custos das suas caras redes de tele!oneS' Eu resisti por um longo tempo e ainda n%o estou inteiramente alegre sobre isto' Fas se voc- est: escrevendo para o mundo voc- tem "ue ouvir os seus clientes .. isto n%o muda somente por"ue eles n%o est%o pagando dinheiro a voc-'

7. Alguma! $i89e! a :ai! do 'etc5mail


0ntes de voltarmos ao assunto de engenharia de so!t,are em geral e#istem algumas li$+es a mais
; http://in!o'internet'isi'edu/in.notes/r!c/!iles/r!c822't#t > http://in!o'internet'isi'edu/in.notes/r!c/!iles/r!c1>;2't#t

15

da e#peri-ncia do !etchmail para ponderar' 0 sinta#e do ar"uivo rc inclui palavra.chaves WruidosasW opcionais "ue s%o inteiramente ignoradas pelo analisador' 0 sinta#e parecida com o 6ngl-s "ue elas permitem B consideravelmente mais intelig/vel "ue os concisos pares tradicionais palavra.chave.valor "ue voc- obtBm "uando as retira' Estas come$aram como um e#perimento posterior "uando eu percebi como as declara$+es do ar"uivo rc estava come$ando a lembrar uma minilinguagem imperativa' R[ por isto tambBm "ue eu mudei a palavra.chave original WserverW do popclient para WpollWS' Darecia para mim "ue tentar !a*er esta minilinguagem imperativa parecer mais como o 6ngl-s poderia torn:.la mais !:cil de ser usada' 0gora embora eu seja um convencido adepto da escola de projeto (!a$a isso uma linguagem) como e#empli!icado pelo Emacs e I8F& e muitos sistemas de banco de dados eu normalmente n%o sou um grande !% das sinta#es (English.liKe)' Drogramadores tradicionais tendem a serem a !avor de sinta#es de controle "ue s%o muito precisas e compactas e n%o contBm redund7ncia alguma' 6sto B um legado cultural de "uando os recursos computacionais eram caros ent%o os est:gios de an:lise tinham "ue ser t%o baratos e simples "uanto poss/veis' 3 6ngl-s com redund7ncia de apro#imadamente ;0^ parecia ser um modelo muito imprprio' Esta n%o B minha ra*%o para normalmente evitar sinta#es no estilo do 6ngl-sX eu menciono isto a"ui somente para arras:.la' 1om ciclos e nYcleos baratos concis%o n%o deve ser ela mesma um !im' Ioje em dia B mais importante para uma linguagem ser conveniente para humanos do "ue ser barata para o computador' I: entretanto boas ra*+es para ser cauteloso' 9ma B o custo da comple#idade do est:gio de an:lise .. voc- n%o "uer aument:.lo ao ponto onde B uma !onte signi!icativa de erros e con!us%o de usu:rios' 3utra B "ue tentar !a*er a sinta#e de uma linguagem English.liKe !re"=entemente demanda "ue o (6ngl-s) "ue B !alado seja seriamente propenso a ser !ora de !orma tanto como a semelhan$a super!icial com a linguagem natural B t%o con!usa como a sinta#e tradicional seria' RHoc- v- isso em v:rias linguagens chamadas de ("uarta gera$%o) e em linguagens de consulta de banco de dados comerciais'S 0 sinta#e de controle do !etchmail parece evitar estes problemas por"ue o dom/nio da linguagem B e#tremamente restrito' A%o B perto de uma linguagem de uso geralX as coisas "ue ela di* simplesmente n%o s%o muito complicadas ent%o h: pouco potencial para con!us%o em mover mentalmente entre um pe"ueno conjunto do 6ngl-s e a real linguagem de controle' Eu acho "ue h: uma li$%o mais abrangente a"ui: 18. 4uando sua linguagem n2o est% perto de um Turing completo& a5car sint%tico pode ser seu amigo. 3utra li$%o B sobre seguran$a por obscuridade' 0lguns usu:rios do !etchmail me pediram para mudar o so!t,are para guardar as senhas encriptadas no ar"uivo rc de maneira "ue bisbilhoteiros n%o poderiam casualmente v-.las' Eu n%o !i* isso por"ue isto n%o adiciona realmente prote$%o' ?ual"uer pessoa "ue ad"uira permiss+es para ler seu ar"uivo rc poder: e#ecutar o !etchmail como voc- de "ual"uer maneira .. e se B a sua senha o "ue eles procuram poderiam retirar o decodi!icador do prprio !etchmail para consegui.la'

14

8udo o "ue a encripta$%o de senha do ar"uivo '!etchmailrc !aria seria dar a !alsa impress%o de seguran$a para pessoas "ue n%o pensaram bem sobre este assunto' 0"ui a regra geral B: 1:. Fm sistema de segurana 7 t2o seguro quanto 7 secreto. =ste"a atento a pseudo-segredos.

;. 2r/4condi89e! -ece!!"ria! 2ara o E!tilo Bazar


3s primeiros leitores e audi-ncias para este documento seguidamente levantaram "uest+es sobre as prB.condi$+es para o desenvolvimento bem.sucedido do estilo ba*ar incluindo as "uali!ica$+es do l/der do projeto e o estado do cdigo ao tempo em "ue se torna pYblico e come$a a tentar construir uma comunidade de co.desenvolvedores' Est: claro "ue ninguBm pode codi!icar desde o in/cio no estilo ba*ar' 0lguBm pode testar achar erros e aper!ei$oar no estilo ba*ar mas seria muito di!/cil originar um projeto no estilo ba*ar' &inus n%o tentou isto' Eu tambBm n%o' 0 sua comunidade nascente de desenvolvedores precisa ter algo e#ecut:vel e pass/vel de testes para utili*ar' ?uando voc- come$a a constru$%o de uma comunidade o "ue voc- precisa ter capacidade de apresentar B uma promessa plaus/vel' 4eu programa n%o precisa !uncionar particularmente bem' Ele pode ser grosseiro cheio de erros incompleto e pobremente documentado' 3 "ue n%o pode dei#ar de !a*er B convencer co.desenvolvedores em potencial de "ue ele pode evoluir para algo realmente elegante em um !uturo pr#imo' 8anto o &inu# "uanto o !etchmail se tornaram pYblicos com projetos b:sicos !ortes e atraentes' Fuitas pessoas pensando sobre o modelo ba*ar como eu tenho apresentado t-m corretamente considerado isto como cr/tico ent%o conclu/ram a partir disso "ue um alto grau de intui$%o e intelig-ncia no l/der do projeto B indispens:vel' Fas &inus obteve seu plano do 9ni#' Eu obtive o meu inicialmente do ancestral do popclient Rembora iria posteriormente mudar bastante muito mais proporcionalmente !alando do "ue mudou o &inu#S' Ent%o B necess:rio realmente para o l/der/coordenador de um empenho no estilo ba*ar ter um talento e#cepcional para planejamento ou ele pode conseguir o mesmo e!eito coordenando o talento de planejamento de outras pessoasC Eu penso "ue n%o B cr/tico "ue o coordenador seja capa* de originar projetos de e#cepcional brilho mas B absolutamente cr/tico "ue o coordenador seja capa* de reconhecer boas id7ias de pro"etos de outras pessoas' 8anto os projetos do &inu# "uanto o do !etchmail mostram evid-ncias disso' &inus n%o sendo Rcomo previamente discutidoS um planejador espetacularmente original mostrou uma habilidade poderosa de reconhecer um bom projeto e integr:.lo no Kernel do &inu#' E eu j: descrevi como a idBia de projeto mais poderosa do !etchmail Rreenvio por 4F8DS veio de outra pessoa' 3s primeiros leitores deste documento me elogiaram sugerindo "ue eu sou propenso a subestimar a originalidade do planejamento de projetos no estilo ba*ar por"ue eu tenho muito disso em mim mesmo e portanto suponho isto' Dode haver alguma verdade nistoX projetar Rcomo oposto a codi!icar ou depurarS B certamente minha mais !orte habilidade' Fas o problema em ser inteligente e original no planejamento de so!t,are B "ue isto se torna um h:bito .. voc- come$a re!le#ivamente a !a*er coisas atraentes e complicadas "uando voc- deveria mant-.las robutas e simples' Eu tive projetos "ue !alharam por"ue eu cometi este erro mas eu 1;

administrei para "ue n%o acontecesse o mesmo com o !etchmail' Ent%o eu acredito "ue o projeto do !etchmail !oi um sucesso em parte por"ue eu impedi a minha tend-ncia a ser engenhosoX isto vai contra Rpelo menosS com o !ato de a originalidade em projetar ser essencial para projetos bem.sucedidos no estilo ba*ar' E considere o &inu#' 4uponha "ue &inus 8orvalds estivesse tentando levar a cabo inova$+es !undamentais no projeto de sistemas operacionais durante o desenvolvimentoX pareceria "ue o Kernel resultante seria t%o est:vel e bem. sucedido como BC 9m certo n/vel b:sico de habilidade de projetar e codi!icar B re"uerido claro mas eu suponho "ue praticamente "ual"uer um "ue pense seriamente em lan$ar um es!or$o no estilo ba*ar estar: acima do m/nimo necess:rio' 3 mercado interno da comunidade de so!t,are aberto por reputa$%o e#erce uma sutil press%o nas pessoas para "ue n%o lancem es!or$o de desenvolvimento "ue n%o sejam competentes para manter' 0tB agora isto parece ter !uncionado muito bem' I: outro tipo de habilidade "ue n%o B normalmente associada com o desenvolvimento de so!t,are "ue eu penso B t%o importante "uanto a engenhosidade em planejar projetos no estilo ba*ar .. e isto pode ser mais importante' 9m coorrdenador ou l/der de um projeto no estilo ba*ar deve ter boa habilidade de comunica$%o e relacionamento' 6sto deve parecer bvio' Dara construir uma comunidade de desenvolvimento voc- precisa atrair pessoas !a*er com "ue se interessem no "ue voc- est: !a*endo e mant-.las alegres sobre a "uantidade de trabalho "ue est%o !a*endo' 3 entusiasmo tBcnico constitui uma boa parte para atingir isto mas est: longe de ser toda histria' 0 personalidade "ue voc- projeta tambBm importa' A%o B uma coincid-ncia "ue &inus B um rapa* gentil "ue !a* com "ue as pessoas gostem dele e "ue o ajudem' A%o B uma coincid-ncia "ue eu seja um enBrgico e#trovertido "ue gosta de trabalhar com pessoas e tenha um pouco de porte e instinto de um cVmico' Dara !a*er o modelo ba*ar !uncionar isto ajuda enormemente se voc- tem pelo menos um pouco de habilidade para encantar as pessoas'

1<. O Conte=to Social do C>digo A%erto


Est: escrito: os melhores hacKs come$am como solu$+es pessoais para os problemas di:rios do autor e se espalham por"ue o problema se torna t/pico para uma grande classe de usu:rios' 6sto nos tra* novamente para a regra 1 recolocada talve* de uma maneira mais Ytil: 1?. !ara resolver um problema interessante& comece achando um problema que 7 interessante para voc$. 6sso !oi o "ue aconteceu com 1arl Iarris e o ancestral popclient e tambBm comigo e o !etchmail' Fas isso !oi entendido por um longo tempo' 3 ponto interessante o ponto "ue as histrias do &inu# e do !etchmail parecem demandar o nosso !oco B o pr#imo est:gio .. a evolu$%o do so!t,are na presen$a de uma comunidade grande e ativa de co.desenvolvedores' Em (8he FJthical Fan.Fonth) <red 2rooKs observou "ue o tempo de um programador n%o B acumulativoX adicionar desenvolvedores em um projeto atrasado de so!t,are !a* com "ue ele se torne mais atrasado' Ele e#pVs "ue a comple#idade e custos de comunica$%o de um projeto crescem com o "uadrado do nYmero de desenvolvedores en"uanto o trabalho !eito cresce somente linearmente' Esta a!irma$%o B desde ent%o conhecida como (0 &ei de 2rooKs) e B largamente considerada como correta' Fas se a &ei de 2rooKs !osse tudo a ser levado em considera$%o o &inu# seria imposs/vel' 1>

3 cl:ssico (8he DsJchologJ 3! 1omputer Drogramming) de Qerald Teinberg sustentou o "ue em retrospectiva ns podemos ver como uma corre$%o essencial ao 2rooKs' Em sua discuss%o sobre (programa$%o sem ego) Teinberg observou "ue nos lugares onde desenvolvedores n%o s%o territoriais sobre seu cdigo e encorajam outras pessoas a procurar por erros e melhorias potenciais nele as melhorias acontecem dramaticamente mais r:pidas "ue em "ual"uer outro lugar' 0 escolha da terminologia de Teinberg talve* tenha prevenido sua an:lise de ganhar a aceita$%o "ue merecia .. B engra$ado pensar em descrever os hacKers da 6nternet como (sem ego)' Fas acho "ue seu argumento parece mais mais convincente hoje do "ue nunca' 0 histria do 9ni# deveria ter sido preparada para ns do "ue ns estamos aprendendo com o &inu# Re o "ue eu tenho veri!icado e#perimentalmente em uma menor escala por copiar deliberadamente os mBtodos do &inusS' 6sto B embora codi!icar permane$a uma atividade essencialmente solit:ria os hacKs realmente bons advBm de captar a aten$%o e poder de mente de comunidades inteiras' 3 desenvolvedor "ue utili*a apenas a capacidade cerebral dele mesmo em um projeto !echado ir: !icar atr:s de desenvolvedores "ue saibam como criar um conte#to aberto e evolutivo no "ual a visuali*a$%o de erros e melhorias sejam !eitas por centenas de pessoas' Fas o mundo tradicional do 9ni# !oi impedido de seguir completamente este mBtodo por v:rios !atores' 0lguns deles !oram os aspectos legais de v:rias licen$as segredos de comBrcio e interesses comerciais' 3utro RtardioS !oi "ue a 6nternet ainda n%o estava boa o su!iciente' 0ntes de a 6nternet baratear havia algumas comunidades geogra!icamente pe"uenas aonde a cultura motivava a programa$%o (sem ego) de Teinberg e aonde um desenvolvedor poderia !acilmente atrair muitos co.desenvolvedores habilidosos' 2ell &abs o F68 06 &ab 91 2erKeleJ .. estes se tornaram a origem de inova$+es "ue s%o lend:rias e ainda !ortes' &inu# !oi o primeiro projeto a !a*er um es!or$o consciente e bem.sucedido a utili*ar o mundo inteiro como sua reserva de talentos' Eu n%o acho "ue seja uma coincid-ncia "ue o per/odo de gesta$%o do &inu# tenha coincidido com o nascimento da Torld Tide Teb e "ue o &inu# tenha dei#ado a sua in!7ncia durante o mesmo per/odo em 1995.1994 "ue viu a e#pans%o da indYstria de 64D e a e#plos%o do principal interesse da 6nternet' &inus !oi a primeira pessoa "ue aprendeu como jogar com as novas regras "ue a onipresente 6nternet !e* poss/vel' Embora uma 6nternet barata !osse uma condi$%o necess:ria para "ue o modelo do &inu# evolu/sse eu penso "ue n%o !oi uma condi$%o por si s su!iciente' 3utro !ator vital !oi o desenvolvimento de um estilo de lideran$a e conjunto de !ormalidades cooperativas "ue permitiria aos desenvolvedores atrair co.desenvolvedores e obter o m:#imo suporte do ambiente' Fas o "ue B este estilo de lideran$a e estas !ormalidadesC Eles n%o podem estar baseados em rela$+es de poder .. e mesmo "ue pudessem a lideran$aa por coer$%o n%o produ*iria os resultados "ue ns vemos' Teinberg cita a autobiogra!ia do anar"uista do sBculo 19 chamado DJotr 0le#eJvich LropotKin (Femrias de um @evolucionista) para demonstrar o e!eito neste assunto: (8endo sido criado em uma !am/lia possuidora de vassalos eu entrei a vida ativa como todos os jovens homens da minha idade com uma grande con!id-ncia na necessidade de comandar ordenar repreender punir e etc' Fas "uando cedo tive "ue condu*ir empreendimentos sBrios e lidar com homens \livres] e "uando cada erro levaria de uma ve* a sBrias conse"=-ncias eu comecei a apreciar a di!eren$a entre atuar segundo o princ/pio de comando e disciplina e atuar segundo o princ/pio da compreens%o comum' 3 primeiro !unciona de !orma admir:vel em uma parada militar mas de nada vale aonde a vida real B considerada e o objetivo pode ser atingido somente pelo 1E

es!or$o severo de muitos propsitos convergentes') 3 (es!or$o severo de muitos propsitos convergentes) B precisamente o "ue um projeto como o &inu# re"uer .. e o (princ/pio de comando) B e!etivamente imposs/vel de ser aplicado entre volunt:rios no para/so anar"uista "ue ns chamamos de 6nternet' Dara operar e competir e!etivamente hacKers "ue "uerem liderar projetos colaborativos t-m "ue aprender como recrutar e energi*ar comunidades e!ica*es com interesse no modo vagamente sugerido pelo (princ/pio de compreens%o) sugerido por LropotKin' Eles precisam aprender a &ei de &inus' 6nicialmente eu me re!eri ao (E!eito Delphi) como uma poss/vel e#plica$%o para a &ei de &inus' DorBm analogias mais poderosas aos sistemas adaptativos em biologia e economia tambBm se implicam !ortemente' 3 mundo do &inu# se comporta em v:rios aspectos como um mercado livre ou uma ecologia uma cole$%o de agentes autVnomos tentando ma#imi*ar um empreendimento "ue no processo produ* uma ordem espont7nea auto.evolutiva mais elaborada e e!iciente "ue "ual"uer "uantidade de planejamento central poderia ter alcan$ado' 0"ui ent%o B o lugar para procurar o (princ/pio da compreens%o)' 0 (!un$%o empreendedora) "ue os hacKers do &inu# est%o ma#imi*ando n%o B economia cl:ssica mas B a intang/vel satis!a$%o do seu prrprio ego e reputa$%o entre outros hacKers' R0lguBm pode chamar a sua motiva$%o de (altru/sta) mas isso ignora o !ato "ue altru/smo B em si mesmo uma !orma de satis!a$%o do ego para um altru/staS' 1ulturas volunt:rias "ue trabalham desta maneira n%o s%o realmente incomunsX uma outra "ue eu tenho participado h: tempos B os !%s de !ic$%o cient/!ica "ue ao contr:rio dos hacKers e#plicitamente reconhecem o (egoboo) Ro aumento da reputa$%o de alguBm entre os outros !%sS como o guia b:sico por tr:s da atividade volunt:ria' &inus por posicionar ele mesmo como o guia de um projeto em "ue o desenvolvimento B praticamente !eito por outros e por inspirar interesse no projeto atB "ue ele se tornasse auto. sustent:vel tem mostrado um intenso entendimento do (princ/pio da compreens%o comum) de LropotKin' Esta vis%o "uase.econVmica do mundo do &inu# nos permite ver como esta compreens%o B aplicada' As podemos ver o mBtodo do &inus como uma maneira de criar um mercado e!iciente no (egoboo) .. para ligar a autonomia de hacKers individuais t%o !irme "uanto poss/vel para di!icultar !ins "ue podem ser somente atingidos por uma coopera$%o sustentada' 1om o projeto do !etchmail eu tenho mostrado Rembora em uma menor escalaS "ue seus mBtodos podem ser duplicados com bons resultados' 8alve* eu tenha atB mesmo !eito de uma maneira um pouco mais consciente e sistem:tica do "ue ele' Fuitas pessoas Respecialmente a"uelas "ue politicamente desacreditam os mercados livresS poderiam esperar de uma cultura de ego/stas auto.direcionadores ser !ragmentada territorial desperdi$adora reservada e hostil' Fas esta e#pectativa B claramente des!eita pela Rpara dar s um e#emploS imensa variedade "ualidade e pro!undidade da documenta$%o do &inu#' [ notoriamente conhecido "ue os programadores detestam documentarX como ent%o os hacKers do &inu# geram tanto distoC Evidentemente o mercado livre do &inu# em egoboo trabalha melhor para produ*ir comportamentos virtuosos e direcionados a outros propsitos "ue os centros de documenta$%o massivamente !undados de produtores de so!t,are comercial' 8anto o projeto do !etchmail como o do Kernel do &inu# mostram "ue ao se recompensar propriamente o ego de muitos outros hacKers um desenvolvedor/coordenador !orte pode usar a 6nternet para capturar os bene!/cios de se ter v:rios co.desenvolvedores sem !a*er o projeto colapsar em uma con!us%o catica' Ent%o eu contra.proponho para a &ei de 2rooKs o seguinte:

18

1A. .ontanto que o coodenador do desenvolvimento tenha uma m/dia pelo menos t2o boa quanto a Gnternet& e saiba como liderar sem coer2o& muitas cabeas s2o inevitalmente melhores que uma. Eu acredito "ue o !uturo do so!t,are de cdigo aberto ir: pertencer gradativamente a pessoas "ue saibam como jogar o jogo do &inus pessoas "ue dei#am para tr:s a catedral e abra$am o ba*ar' 6sto n%o "uer di*er "ue uma vis%o individual e brilhante n%o ir: mais ter import7nciaX ao contr:rio eu acredito "ue o estado da arte do so!t,are de cdigo aberto ir: pertencer a pessoas "ue iniciem de uma vis%o individual e brilhante ent%o ampli!icando.a atravBs da constru$%o e!etiva de uma comunidade volunt:ria de interesse' E talve* n%o somente o !uturo do so!t,are de cdigo aberto' Aenhum desenvolvedor de cdigo !echado pode competir com o conjunto de talento "ue a comunidade do &inu# pode dar para resolver um problema' Fuito poucos podem atB mesmo ser capa*es de pagar as mais de du*entas pessoas "ue t-m contribu/do para o !etchmailG 8alve* no !inal a cultura de cdigo aberto ir: triun!ar n%o por"ue a coopera$%o B moralmente correta ou a (prote$%o) do so!t,are B moralmente errada Rassumindo "ue voc- acredita na Yltima o "ue n%o !a* tanto o &inus como euS mas simplesmente por"ue o mundo do so!t,are de cdigo !echado n%o pode vencer uma corrida evolucion:ria com as comunidades de cdigo aberto "ue podem colocar mais tempo h:bil ordens de magnitude acima em um problema'

11. Agradecimento!
Este documento !oi enri"uecido atravBs de conversas com um grande nYmero de pessoas "ue ajudaram a depur:.lo' 0gradecimentos particulares a Ze!! DutKJ MdutKJN,am'umd'eduO "ue sugeriu a !ormula$%o (depura$%o B paraleli*:vel) e ajudou a desenvolver a an:lise "ue se procedeu a isso' E tambBm a AancJ &ebovit* MnancJlNuniverse'dige#'netO pela sua sugest%o "ue eu imitei Teinberg ao citar LropotKin' 1r/ticas incisivas tambBm vieram de Zoan Eslinger M,ombatNKilimanjaro'engr'sgi'comO e FartJ <ran* MmartJNnet.linK'netO da lista de 8Bcnicas Qerais' 4ou grato aos membros do D&9Q o Qrupo de 9su:rios de &inu# da <iladBl!ia por permitir a primeira audi-ncia de teste para a primeira vers%o pYblica deste documento' <inalmente os coment:rios de &inus 8orvalds !oram importantes e seu apoio desde o in/cio !oi muito estimulante'

12. 2ara $eitura Adicional


Eu citei v:rias !rases do cl:ssico The +,thical +an-+onth de <redericK D' 2rooK por"ue em muitos aspectos suas considera$+es ainda precisam ser mais analisadas' Eu recomendo !ortemente a 2;_' edi$%o de 0nivers:rio de 0ddison.TesleJ R642A 0.201.85;9;.9S "ue adiciona seu documento Ho 1ilver )ullet' de 198>' 0 nova edi$%o B envolvida por uma inestim:vel retrospectiva de 20 anos atrasada na "ual 2rooKs admite !rancamente os poucos julgamentos no te#to original "ue n%o resistiram ao teste do tempo' 0chei "ue a retrospectiva deste documento estava substancialmente completa e !i"uei surpreso ao descobrir "ue 2rooKs atribui pr:ticas como o estilo ba*ar U Ficroso!tG RDe !ato entretanto esta atribui$%o se mostrou errada' Em 1998 ns entendemos dos Documentos Iallo,een E "ue a comunidade interna de desenvolvimento da Ficroso!t B estrati!icada com o tipo comum de acesso ao cdigo necess:rio para suportar o ba*ar muitas ve*es nem mesmo poss/vel'S
E http://,,,'opensource'org/hallo,een'html

19

The !s,cholog, Of .omputer !rogramming de Qerald F' Teinberg RAe, `orK Han Aostrand @einhold 19E1S introdu*iu o conceito um tanto mal nomeado de (programa$%o sem ego)' Embora ele n%o estivesse nem perto de ser a primeira pessoa a perceber a !utilidade do (princ/pio do comando) ele !oi provavelmente o primeiro a reconhecer e argumentar o ponto particular de liga$%o com o desenvolvimento de so!t,are' @ichard D' Qabriel contemplando a cultura 9ni# da era prB.&inu# relutantemente argumentou a !avor da superioridade do modelo primitivo do estilo ba*ar em seu documento ;ispI Jood Hews& )ad Hews& and Kow To Lin )ig de 1989' Embora obsoleto em alguns aspectos este ensaio ainda B muito cotado entre os !%s do &isp Rincluindo euS' 9m correspondente me lembrou "ue a se$%o entitulada (3 Dior B o Felhor) parece.se mais como uma antecipa$%o do &inu#' 3 documento est: dispon/vel na Torld Tide Teb em http://,,,'naggum'no/,orse.is.better'html' !eoplewareI !roductive !ro"ects and Teams RAe, `orKX Dorset Iouse 198EX 642A 0.952>55.0;. >S de De Farco e &ister B uma jia pouco apreciada na "ual !i"uei deliciado em ver <red 2rooKs cit:.la em sua retrospectiva' Embora pouco do "ue os autores t-m a di*er B diretamente aplic:vel Us comunidades do cdigo aberto do &inu# as idBias do autor sobre as condi$+es necess:rias para um trabalho criativo B incisivo e v:lido para "ual"uer um "ue tente importar um pouco das virtudes do modelo ba*ar para o conte#to comercial' <inalmente eu devo admitir "ue eu "uase chamei este documento de (0 1atedral e a agora) o Yltimo termo sendo o grego para um mercado aberto ou um lugar de encontro pYblico' 3s documentos (sistemas agricos) de FarK Filler e Eric Dre#ler descrevendo as propriedades emergentes de ecologias computacionais de mercado me ajudaram a me preparar a pensar claramente sobre !enVmenos an:logos na cultura do cdigo aberto "uando o &inu# es!regou o meu nari* neles cinco anos depois' Estes documentos est%o dispon/veis na Teb em http://,,,'agorics'com/agorpapers'html'

13. Ep?logo@ -et!cape Acata o BazarA


[ um sentimento estranho perceber "ue voc- est: ajudando a !a*er histriab Em 22 de Zaneiro de 1998 apro#imadamente sete meses depois "ue eu publi"uei pela primeira ve* este documento Aetscape 1ommunications 6nc' anunciou planos para liberar o cdigo do Aetscape 1ommunicator8' Eu n%o tive nenhuma idBia de "ue isso poderia acontecer atB o dia do anunciamento' Eric Iahn Hice Dresidente E#ecutivo e 3!icial 1he!e de 8ecnologia da Aetscape enviou uma mensagem para mim pouco tempo depois como se segue: (Em nome de todos da Aetscape eu "uero agradecer a voc- por ter nos ajudado chegar a este ponto em primeiro lugar' 4eus pensamentos e escritos !oram inspira$+es !undamentais para nossa decis%o') Aa semana seguinte eu voei atB 4ilicon HalleJ a pedido da Aetscape para uma con!er-ncia estratBgica de um dia Rem 4 de <evereiro de 1998S com alguns de seus e#ecutivos de alto escal%o e tBcnicos' As desenhamos juntos a estratBgia de lan$amento da Aetscape para o cdigo !onte e licenciamento e dei#amos mais alguns planos "ue ns esperamos ir: eventualmente ter impactos mais abrangentes e positivos na comunidade do cdigo aberto' En"uanto escrevo ainda B um pouco cedo demais para ser mais espec/!icoX porBm detalhes devem se tornar conhecidos em semanas'
8 http://,,,'netscape'com/ne,sre!/pr/ne,srelease;;8'html

20

Aetscape est: para nos !ornecer um real teste em larga escala do modelo ba*ar no mundo comercial' 0 cultura do cdigo aberto agora en!renta um riscoX se os planos da Aetscape n%o !uncionarem o conceito de cdigo aberto pode se tornar t%o desacreditado "ue o mundo comercial n%o ir: tocar nele de novo por uma dBcada' Dor outro lado isto tambBm B uma oportunidade espetacular' @ea$+es iniciais ao movimento em Tall 4treet e em outros lugares !oram cautelosamente positivas' As tambBm estamos tendo a chance para nos provar' 4e a Aetscape retomar uma substancial !atia do mercado atravBs deste movimento ela poder: iniciar uma revolu$%o tardia na indYstria de so!t,are' 3 pr#imo ano dever: ser muito instrutivo e interessante'

1#. Ber!.o e Ci!t>rico de :udan8a!


c6d: cathedral.ba*aar'sgml v 1'42 1998/11/22 04:01:20 esr E#p c Eu liberei a vers%o 1'1> no &inu# Longress em 21 de Faio de 199E' Eu adicionei a bibliogra!ia em E de Zulho de 199E na vers%o 1'20' Eu adicionei a anedota da Derl 1on!erence em 18 de Aovembro de 199E na vers%o 1'2E' Eu mudei de (so!t,are livre) para (cdigo aberto) em 9 de !evereiro de 1998 na vers%o 1'29' Eu adicionei (Ep/logo: Aetscape 0cata o 2a*arG) em 10 de <evereiro de 1998 na vers%o 1'51' Eu removi o gr:!ico de Daul Eggert sobre QD& vs' ba*ar em resposta aos argumentos coerentes de @F4 em 28 de Zulho de 1998' Eu adicionei uma corre$%o de 2rooKs baseado nos Documentos Iallo,een em 20 de Aovembro de 1998 na vers%o 1'40' 3utros n/veis de revis+es incorporaram pe"uenas corre$+es editoriais'

21

Você também pode gostar