By André Luis Schwerz, André Luiz Kawamoto and Rafael Liberato Roberto. Este trabalho foi licenciado com uma Licença Creative Commons - Atribuição 3.0 Não Adaptada.
André Luis Schwerz
André Luiz Satoshi Kawamoto
Rafael Liberato Roberto
de Eric S. Raymond
Fevereiro / 2012
Roteiro
• Eric Steven Raymond.
• Contexto histórico.
• A catedral e o bazar.
• Lições do estilo bazar.
• Críticas ao documento.
• Influência exercida.
2
Eric Steven Raymond
• Nascido em Boston, Massachusetts em 1957.
• Fez cursos de graduação e pós-graduação em matemática e filosofia na Universidade da Pennsylvania.
• Contribuiu com os projetos EMACS, Linux, GNU entre outros.
• Autor de A Catedral e o Bazar em 1997.
• Co-fundador do Open Source Initiative em 1998.
3
Contexto Histórico
Eric Raymond
apresenta “A
Catedral e o
Bazar” 4
Contexto Histórico
Richard
Stallman lança
o projeto GNU
Eric Raymond
apresenta “A
Catedral e o
Bazar” 5
Contexto Histórico
Richard
Stallman lança
o projeto GNU
Linus Torvalds
propõe a
criação do
Linux
Eric Raymond
apresenta “A
Catedral e o
Bazar” 6
Contexto Histórico
Richard
Stallman lança
o projeto GNU
Linus Torvalds
propõe a
criação do
Linux
Explosão da
Internet
Eric Raymond
apresenta “A
Catedral e o
Bazar” 7
Contexto Histórico
Richard
Stallman lança
o projeto GNU
Linus Torvalds
propõe a
criação do
Linux
Explosão da
Internet
Eric Raymond
apresenta “A
Catedral e o
Bazar”
Netscape
libera o
código-fonte
Eric Raymond e
outros lançam o
movimento de código
aberto
8
Contexto Histórico
Richard
Stallman lança
o projeto GNU
Linus Torvalds
propõe a
criação do
Linux
Explosão da
Internet
Eric Raymond
apresenta “A
Catedral e o
Bazar”
Netscape
libera o
código-fonte
Eric Raymond e
outros lançam o
movimento de código
aberto
Sourceforge
é lançado
OpenOffice
é lançado
Wikipedia é
lançada
9
A Catedral e o Bazar
• Linux Kongress (27 de maio de 1997, Alemanha).
• Parte do livro com o mesmo nome em 1999.
– Primeiro livro comercial sob a licença Open Publication License (Creative Commons).
10
A Catedral e o Bazar
11
CATEDRAL BAZAR
Ambiente fechado e altamente hierarquizada
Ambiente aberto , onde todos podem participar
Pequeno grupo de líderes e desenvolvedores
Número indefinido de líderes e desenvolvedores
Desenvolvimento centralizado
Somente versões estáveis e/ou beta
Modelo de desenvolvimento clássico
Desenvolvimento Cooperativo
Liberação de várias versões
Sem metodologia definida
A Catedral e o Bazar
12
Richard
Stallman lança
o projeto GNU
Linus Torvalds
propõe a
criação do
Linux
Explosão da
Internet
Eric Raymond
apresenta “A
Catedral e o
Bazar”
Inspiração. • Linux. • Experiência no
desenvolvimento de um software livre (1996)
LIÇÕES
13
Raymond assume o projeto do Popclient
Raymond decide testar o modelo
Bazar
Mudança do FetchPop para o
PopMail
Necessidade de um software para
gerenciamento de e-mail
Encontrando uma boa solução parcial
Mudança do FetchPop para o
Popclient
Alterou a estrutura de dados e adicionou
o suporte ao IMAP
Raymond divulga o projeto para a comunidade
Em 09-1996 - Suporte ao SMTP – Harry
Hochheiser
Troca de nome para FetchMail
Suporte a multidrop – necessidade de outros usuários
Suporte a MIME 8-Bit Lições adicionais
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Raymond assume o projeto do Popclient
Raymond decide testar o modelo
Bazar
Mudança do FetchPop para o
PopMail
Necessidade de um cliente de correio
eletrônico
Encontrando uma boa solução parcial
Mudança do FetchPop para o
Popclient
Alterou a estrutura de dados e adicionou
o suporte ao IMAP
Raymond divulga o projeto para a comunidade
Em 09-1996 - Suporte ao SMTP – Harry
Hochheiser
Troca de nome para FetchMail
Suporte a multidrop – necessidade de outros usuários
Suporte a MIME 8-Bit Lições adicionais
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
HIS
TÓ
RIA
LIÇ
ÕE
S
• Necessidade e vontade.
• Possível razão para a qualidade do software (Linux).
1 - Todo bom trabalho de software começa colocando o dedo na ferida de um programador.
14
Raymond assume o projeto do Popclient
Raymond decide testar o modelo
Bazar
Mudança do FetchPop para o
PopMail
Necessidade de um software para
gerenciamento de e-mail
Encontrando uma boa solução parcial
Mudança do FetchPop para o
Popclient
Alterou a estrutura de dados e adicionou
o suporte ao IMAP
Raymond divulga o projeto para a comunidade
Em 09-1996 - Suporte ao SMTP – Harry
Hochheiser
Troca de nome para FetchMail
Suporte a multidrop – necessidade de outros usuários
Suporte a MIME 8-Bit Lições adicionais
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
HIS
TÓ
RIA
LIÇ
ÕE
S
• Linus: Minix → Linux.
• Raymond: Fetchpop.
2 - Bons programadores sabem o que escrever. Grandes programadores sabem o que reescrever (e reusar).
15
HIS
TÓ
RIA
LIÇ
ÕE
S
3 - “Planeje jogar algo fora; você irá, de qualquer
maneira.” (Fred Brooks, “The Mythical Man-Month”, Capítulo 11).
• Popclient (Carl Harris)
• Compreensão do problema após a implementação da primeira solução.
• Recomeçar pelo menos uma vez.
Raymond assume o projeto do Popclient
Raymond decide testar o modelo
Bazar
Mudança do FetchPop para o
Popclient
Necessidade de um software para
gerenciamento de e-mail
Encontrando uma boa solução parcial
Alterou a estrutura de dados e adicionou
o suporte ao IMAP
Raymond divulga o projeto para a comunidade
Em 09-1996 - Suporte ao SMTP – Harry
Hochheiser
Troca de nome para FetchMail
Suporte a multidrop – necessidade de outros usuários
Suporte a MIME 8-Bit Lições adicionais
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
16
Raymond assume o projeto do Popclient
Raymond decide testar o modelo
Bazar
Necessidade de um software para
gerenciamento de e-mail
Software com características
mínimas
Alterou a estrutura de dados e adicionou
o suporte ao IMAP
Raymond divulga o projeto para a comunidade
Em 09-1996 - Suporte ao SMTP – Harry
Hochheiser
Troca de nome para FetchMail
Suporte a multidrop – necessidade de outros usuários
Suporte a MIME 8-Bit Lições adicionais
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
HIS
TÓ
RIA
LIÇ
ÕE
S
4 - Se você tem a atitude certa, problemas interessantes irão encontrá-lo.
• Raymond encontra um projeto abandonado.
• Consenso de que Raymond deveria assumir o projeto.
17
Raymond assume o projeto do Popclient
Raymond decide testar o modelo
Bazar
Necessidade de um software para
gerenciamento de e-mail
Software com características
mínimas
Alterou a estrutura de dados e adicionou
o suporte ao IMAP
Raymond divulga o projeto para a comunidade
Em 09-1996 - Suporte ao SMTP – Harry
Hochheiser
Troca de nome para FetchMail
Suporte a multidrop – necessidade de outros usuários
Suporte a MIME 8-Bit Lições adicionais
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
HIS
TÓ
RIA
LIÇ
ÕE
S
5 - Quando você perde o interesse em um programa, sua última obrigação é entregá-lo a um sucessor competente.
• Atitude de Carl Harris.
• Encontrar outra pessoa competente para continuar o desenvolvimento.
18
Raymond assume o projeto do Popclient
Raymond decide testar o modelo
Bazar
Necessidade de um software para
gerenciamento de e-mail
Software com características
mínimas
Alterou a estrutura de dados e adicionou
o suporte ao IMAP
Raymond divulga o projeto para a comunidade
Em 09-1996 - Suporte ao SMTP – Harry
Hochheiser
Troca de nome para FetchMail
Suporte a multidrop – necessidade de outros usuários
Suporte a MIME 8-Bit Lições adicionais
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
HIS
TÓ
RIA
LIÇ
ÕE
S
19
6 - Tratar seus usuários como colaboradores é o caminho mais fácil para uma melhora rápida do código e uma depuração eficaz.
• Usuários irão diagnosticar problemas, sugerir correções e ajudar com melhorias.
Raymond assume o projeto do Popclient
Necessidade de um software para
gerenciamento de e-mail
Software com características
mínimas
Alterou a estrutura de dados e adicionou
o suporte ao IMAP
Raymond divulga o projeto para a comunidade
Em 09-1996 - Suporte ao SMTP – Harry
Hochheiser
Troca de nome para FetchMail
Suporte a multidrop – necessidade de outros usuários
Suporte a MIME 8-Bit Lições adicionais
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
HIS
TÓ
RIA
LIÇ
ÕE
S
7 - Distribua logo e com frequência. E ouça seus clientes.
• Mantém os colaboradores estimulados e recompensados.
20
Raymond decide testar o modelo
Bazar
Raymond assume o projeto do Popclient
Necessidade de um software para
gerenciamento de e-mail
Software com características
mínimas
Alterou a estrutura de dados e adicionou
o suporte ao IMAP
Raymond divulga o projeto para a comunidade
Em 09-1996 - Suporte ao SMTP – Harry
Hochheiser
Troca de nome para FetchMail
Suporte a multidrop – necessidade de outros usuários
Suporte a MIME 8-Bit Lições adicionais
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
HIS
TÓ
RIA
LIÇ
ÕE
S
21
8 - Dada uma base grande o suficiente de beta-testers e colaboradores, quase todo problema será caracterizado rapidamente e a solução será óbvia para alguém.
• “Havendo olhos suficientes, todos os erros são óbvios.” (chamada de Lei de Linus por Raymond)
• Alguns encontram problemas, outros entendem e os resolvem.
• Catedral ≠ Bazar.
Raymond decide testar o modelo
Bazar
Raymond assume o projeto do Popclient
Raymond decide testar o modelo
Bazar
Necessidade de um software para
gerenciamento de e-mail
Software com características
mínimas
Alterou a estrutura de dados e adicionou o
suporte ao IMAP
Raymond divulga o projeto para a comunidade
Em 09-1996 - Suporte ao SMTP – Harry
Hochheiser
Troca de nome para FetchMail
Suporte a multidrop – necessidade de outros usuários
Suporte a MIME 8-Bit Lições adicionais
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
HIS
TÓ
RIA
LIÇ
ÕE
S
9 - Estrutura de dados inteligente e código burro trabalham muito melhor que o contrário.
• Dificuldade de entender código alheio.
• O entendimento da estrutura facilita a compreensão do código.
22
Raymond assume o projeto do Popclient
Raymond decide testar o modelo
Bazar
Necessidade de um software para
gerenciamento de e-mail
Software com características
mínimas
Raymond divulga o projeto para a comunidade
Suporte ao SMTP Troca de nome para
FetchMail
Suporte a multidrop – necessidade de outros usuários
Suporte a MIME 8-Bit Lições adicionais
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
HIS
TÓ
RIA
LIÇ
ÕE
S
23
10 - Se você tratar seus beta-testers como seu recurso mais valioso, eles irão responder tornando-se seu mais valioso recurso.
• Anunciar novas versões estimulando a participação das pessoas.
• Tamanho da lista de colaboradores do Popclient.
• Ciclo de vida de um projeto maduro no estilo bazar.
Raymond assume o projeto do Popclient
Raymond decide testar o modelo
Bazar
Necessidade de um software para
gerenciamento de e-mail
Software com características
mínimas
Raymond divulga o projeto para a comunidade
Suporte ao SMTP Troca de nome para
FetchMail
Suporte a multidrop – necessidade de outros usuários
Suporte a MIME 8-Bit Lições adicionais
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
HIS
TÓ
RIA
LIÇ
ÕE
S
11 - A melhor coisa depois de ter boas ideias é reconhecer boas ideias dos seus usuários.
• Entender as implicações de uma ideia brilhante de um usuário (SMTP de Harry Hoschheiser).
• Levar os “créditos” pela invenção.
24
Raymond assume o projeto do Popclient
Raymond decide testar o modelo
Bazar
Necessidade de um software para
gerenciamento de e-mail
Software com características
mínimas
Raymond divulga o projeto para a comunidade
Suporte ao SMTP Troca de nome para
FetchMail
Suporte a multidrop – necessidade de outros usuários
Suporte a MIME 8-Bit Lições adicionais
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
HIS
TÓ
RIA
LIÇ
ÕE
S
25
12 - Frequentemente, as soluções mais impressionantes e inovadoras surgem quando se percebe que o conceito do problema estava errado.
• Você está tratando o problema corretamente?
• Não hesite em jogar fora características obsoletas.
Raymond assume o projeto do Popclient
Raymond decide testar o modelo
Bazar
Necessidade de um software para
gerenciamento de e-mail
Software com características
mínimas
Raymond divulga o projeto para a comunidade
Suporte ao SMTP Troca de nome para
FetchMail
Suporte a multidrop – necessidade de outros usuários
Suporte a MIME 8-Bit Lições adicionais
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
HIS
TÓ
RIA
LIÇ
ÕE
S
26
13 - “A perfeição *em projetar+ não é alcançada quando não há mais nada a adicionar, mas quando não há nada para jogar fora.” (por Antoine de Saint-Exupéry)
• Amadurecimento do projeto.
• Hora de uma nova identidade.
Raymond assume o projeto do Popclient
Raymond decide testar o modelo
Bazar
Necessidade de um software para
gerenciamento de e-mail
Software com características
mínimas
Raymond divulga o projeto para a comunidade
Em 09-1996 - Suporte ao SMTP – Harry
Hochheiser
Suporte a multidrop – necessidade de outros
usuários
Suporte a MIME 8 Bits
Lições adicionais
1 2 3 4 5 6 7 8 9 10 11 12 14 15 16 17 18 19
HIS
TÓ
RIA
LIÇ
ÕE
S
27
14 - Qualquer ferramenta deve ser útil da maneira esperada, mas uma grande ferramenta conduz a usos inesperados.
• Considerar necessidades dos usuários.
• Suporte ao multidrop.
• FetchMail pode administrar uma lista de e-mails.
Raymond assume o projeto do Popclient
Raymond decide testar o modelo
Bazar
Necessidade de um software para
gerenciamento de e-mail
Software com características
mínimas
Raymond divulga o projeto para a comunidade
Em 09-1996 - Suporte ao SMTP – Harry
Hochheiser
Suporte a multidrop – necessidade de outros usuários
Suporte a MIME 8 Bits
Lições adicionais
1 2 3 4 5 6 7 8 9 10 11 12 14 15 16 17 18 19
HIS
TÓ
RIA
LIÇ
ÕE
S
28
15 - Faça de tudo para não alterar o fluxo de dados – e nunca jogue fora informação.
• Ser cuidadoso quanto a estrutura de dados.
– O código estava pronto para 8 bits.
Raymond assume o projeto do Popclient
Raymond decide testar o modelo
Bazar
Necessidade de um software para
gerenciamento de e-mail
Software com características
mínimas
Raymond divulga o projeto para a comunidade
Em 09-1996 - Suporte ao SMTP – Harry
Hochheiser
Suporte a multidrop – necessidade de outros usuários
Suporte a MIME 8 Bits
Lições adicionais
1 2 3 4 5 6 7 8 9 10 11 12 14 15 16 17 18 19
HIS
TÓ
RIA
LIÇ
ÕE
S
16 - Quando sua linguagem não está perto de um Turing completo, “açúcar sintático” pode ser seu amigo.
• É mais importante para uma linguagem ser conveniente para humanos do que ser barata para o computador.
29
Raymond assume o projeto do Popclient
Raymond decide testar o modelo
Bazar
Necessidade de um software para
gerenciamento de e-mail
Software com características
mínimas
Raymond divulga o projeto para a comunidade
Em 09-1996 - Suporte ao SMTP – Harry
Hochheiser
Suporte a multidrop – necessidade de outros usuários
Suporte a MIME 8 Bits
Lições adicionais
1 2 3 4 5 6 7 8 9 10 11 12 14 15 16 17 18 19
HIS
TÓ
RIA
LIÇ
ÕE
S
30
17 - Um sistema de segurança é tão seguro quanto seus segredos. Esteja atento a pseudo-segredos.
• Evite segurança por obscuridade.
Raymond assume o projeto do Popclient
Raymond decide testar o modelo
Bazar
Necessidade de um software para
gerenciamento de e-mail
Software com características
mínimas
Raymond divulga o projeto para a comunidade
Em 09-1996 - Suporte ao SMTP – Harry
Hochheiser
Suporte a multidrop – necessidade de outros usuários
Suporte a MIME 8 Bits
Lições adicionais
1 2 3 4 5 6 7 8 9 10 11 12 14 15 16 17 18 19
HIS
TÓ
RIA
LIÇ
ÕE
S
31
18 - Para resolver um problema interessante, comece achando um problema que é interessante para você.
• Necessidades pessoais do autor podem ser necessidades de muitas pessoas.
• Reafirmação da lição 1.
Raymond assume o projeto do Popclient
Raymond decide testar o modelo
Bazar
Necessidade de um software para
gerenciamento de e-mail
Software com características
mínimas
Raymond divulga o projeto para a comunidade
Em 09-1996 - Suporte ao SMTP – Harry
Hochheiser
Suporte a multidrop – necessidade de outros usuários
Suporte a MIME 8 Bits
Lições adicionais
1 2 3 4 5 6 7 8 9 10 11 12 14 15 16 17 18 19
HIS
TÓ
RIA
LIÇ
ÕE
S
32
19 - Desde que o coordenador de desenvolvimento tenha um meio pelo menos tão bom quanto a Internet e saiba liderar sem coerção, muitas cabeças são inevitavelmente melhores que uma.
• Lei de Brooks.
• Programação “sem ego”.
• Importância da Internet como meio de comunicação.
• Liderança.
Críticas
• Nikolai Bezroukov (1998):
– Lei de Brooks não se aplica ao desenvolvimento distribuído.
– “Havendo olhos suficientes, todos os erros são óbvios” (Lei de Linus).
– Linux: Bazar ou Catedral?
• Bazar não tão democrático.
• Núcleo utilizou o modelo catedral?
– O modelo de código aberto automaticamente leva aos melhores resultados?
33
Críticas
• Jonathan Eunice (1998):
– Crítica a taxonomia de Raymond.
• Como comparar uma cidade com um prédio?
– Uso da comunidade não é exclusividade do bazar.
– Adotar modelos e padrões de sucesso de ambas as comunidades.
34
Influência
• Netscape:
– 22 de janeiro de 1998.
– Netscape disponibilizou o código-fonte do Netscape Communicator 4.0.
– Teste real em larga escala do modelo bazar.
• Wikipedia:
– Colaboração em larga escala.
– “opened my eyes to the possibility of mass collaboration” (Jimmy Wales).
• Manifesto do movimento de código aberto.
35
Referências
• Eric S. Raymond, “The Cathedral and Bazaar”,1997. http://www.catb.org/~esr/writings/cathedral-bazaar/
• Nikolai Bezroukov, “A Second Look to the Cathedral and the Bazaar”, 1999.
http://www.softpanorama.org/Articles/a_second_look_at_the_cathedral_and_the_bazaar.shtml
• Jonathan Eunice, “Beyond the Cathedral, beyond the Bazaar”, 1998. http://www.illuminata.com/public/content/cathedral/intro.htm
36
By André Luis Schwerz, André Luiz Kawamoto and Rafael Liberato Roberto. Este trabalho foi licenciado com uma Licença Creative
Commons - Atribuição 3.0 Não Adaptada.
André Luis Schwerz
André Luiz Satoshi Kawamoto
Rafael Liberato Roberto
{andreluis, kawamoto, liberato}@utfpr.edu.br
UTFPR Câmpus Campo Mourão
Doutorado em Ciência da Computação
DINTER IME/USP-UTFPR
de Eric S. Raymond
Fevereiro / 2012