de Eric S. Raymond
André Luis Schwerz
André Luiz Satoshi Kawamoto
Rafael Liberato Roberto
Fevereiro / 2012
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.
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ósgraduaçã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
Netscape
libera o
código-fonte
Eric Raymond e
outros lançam o
movimento de código
aberto
Eric Raymond
apresenta “A
Catedral e o
Bazar”
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
Wikipedia é
lançada
OpenOffice
é lançado
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
CATEDRAL
Ambiente fechado e
altamente hierarquizada
Pequeno grupo de líderes e
desenvolvedores
Desenvolvimento centralizado
Somente versões estáveis
e/ou beta
Modelo de desenvolvimento
clássico
BAZAR
Ambiente aberto , onde todos
podem participar
Número indefinido de líderes
e desenvolvedores
Desenvolvimento Cooperativo
Liberação de várias versões
Sem metodologia definida
11
A Catedral e o Bazar
Richard
Stallman lança
o projeto GNU
Explosão da
Internet
Inspiração.
• Linux.
• Experiência no
desenvolvimento de um
software livre (1996)
Linus Torvalds
propõe a
criação do
Linux
Eric Raymond
apresenta “A
Catedral e o
Bazar”
12
Necessidade de um
software para
gerenciamento de
e-mail
Encontrando uma
boa solução parcial
1
2
Mudança do
FetchPop para o
PopMail
Popclient
Raymond as
projeto do P
3
4
LIÇÕES
13
HISTÓRIA
Necessidade de um
cliente de correio
eletrônico
Encontrando uma
boa solução parcial
1
2
Mudança do
FetchPop para o
PopMail
Popclient
Ra
pro
3
1 - Todo bom trabalho de software começa colocando
o dedo na ferida de um programador.
LIÇÕES
• Necessidade e vontade.
• Possível razão para a qualidade do software (Linux).
14
HISTÓRIA
Necessidade de um
software para
gerenciamento de
e-mail
Encontrando uma
boa solução parcial
1
2
Mudança do
FetchPop para o
PopMail
Popclient
Ra
pro
3
LIÇÕES
2 - Bons programadores sabem o que escrever.
Grandes programadores sabem o que reescrever (e
reusar).
• Linus: Minix → Linux.
• Raymond: Fetchpop.
15
HISTÓRIA
Necessidade de um
software para
gerenciamento de
e-mail
Encontrando uma
boa solução parcial
1
2
Mudança do
FetchPop para o
Popclient
Ra
pro
3
3 - “Planeje jogar algo fora; você irá, de qualquer
maneira.” (Fred Brooks, “The Mythical Man-Month”, Capítulo 11).
LIÇÕES
• Popclient (Carl Harris)
• Compreensão do problema após a implementação da
primeira solução.
• Recomeçar pelo menos uma vez.
16
HISTÓRIA
Raymond assume o
projeto do Popclient
4
5
Raymond decide
testar o modelo
Bazar
6
7
8
Alterou a estrutura
de dados e adicionou
o suporte ao IMAP
Raym
p
c
9
4 - Se você tem a atitude certa, problemas
interessantes irão encontrá-lo.
LIÇÕES
• Raymond encontra um projeto abandonado.
• Consenso de que Raymond deveria assumir o projeto.
17
HISTÓRIA
Raymond assume o
projeto do Popclient
4
5
Raymond decide
testar o modelo
Bazar
6
7
8
Alterou a estrutura
de dados e adicionou
o suporte ao IMAP
Raym
p
c
9
LIÇÕES
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
HISTÓRIA
Raymond assume o
projeto do Popclient
4
5
Raymond decide
testar o modelo
Bazar
6
7
8
Alterou a estrutura
de dados e adicionou
o suporte ao IMAP
Raym
p
c
9
LIÇÕES
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.
19
HISTÓRIA
Raymond assume o
projeto do Popclient
4
5
Raymond decide
testar o modelo
Bazar
6
7
Alterou a estrutura
de dados e adicionou
o suporte ao IMAP
8
Raym
p
c
9
LIÇÕES
7 - Distribua logo e com frequência. E ouça seus
clientes.
• Mantém os colaboradores estimulados e
recompensados.
20
HISTÓRIA
Raymond assume o
projeto do Popclient
4
5
Raymond decide
testar o modelo
Bazar
6
7
8
Alterou a estrutura
de dados e adicionou
o suporte ao IMAP
Raym
p
c
9
LIÇÕES
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.
21
HISTÓRIA
Raymond assume o
projeto do Popclient
4
5
Raymond decide
testar o modelo
Bazar
6
7
Alterou a estrutura de
dados e adicionou o
suporte ao IMAP
8
Raym
p
c
9
9 - Estrutura de dados inteligente e código burro
trabalham muito melhor que o contrário.
LIÇÕES
• Dificuldade de entender código alheio.
• O entendimento da estrutura facilita a compreensão
do código.
22
HISTÓRIA
Raymond divulga o
projeto para a
comunidade
10
Suporte ao SMTP
11
12
Su
–
Troca de nome para
FetchMail
13
LIÇÕES
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.
23
HISTÓRIA
Raymond divulga o
projeto para a
comunidade
10
Suporte ao SMTP
11
12
Su
–
Troca de nome para
FetchMail
13
LIÇÕES
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
HISTÓRIA
Raymond divulga o
projeto para a
comunidade
10
Suporte ao SMTP
11
Su
–
Troca de nome para
FetchMail
12
13
LIÇÕES
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.
25
HISTÓRIA
Raymond divulga o
projeto para a
comunidade
10
Suporte ao SMTP
11
12
Su
–
Troca de nome para
FetchMail
13
LIÇÕES
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.
26
HISTÓRIA
Suporte a multidrop –
necessidade de outros
usuários
Suporte a MIME
8 Bits
14
Lições adicionais
15
16
17
18
19
LIÇÕES
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.
27
HISTÓRIA
Suporte a multidrop
– necessidade de
outros usuários
14
Suporte a MIME
8 Bits
15
Lições adicionais
16
17
18
19
LIÇÕES
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.
28
HISTÓRIA
Suporte a multidrop
– necessidade de
outros usuários
14
Suporte a MIME
8 Bits
15
Lições adicionais
16
17
18
19
LIÇÕES
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
HISTÓRIA
Suporte a multidrop
– necessidade de
outros usuários
14
Suporte a MIME
8 Bits
15
Lições adicionais
16
17
18
19
LIÇÕES
17 - Um sistema de segurança é tão seguro quanto
seus segredos. Esteja atento a pseudo-segredos.
• Evite segurança por obscuridade.
30
HISTÓRIA
Suporte a multidrop
– necessidade de
outros usuários
Suporte a MIME
8 Bits
14
15
Lições adicionais
16
17
18
19
LIÇÕES
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.
31
HISTÓRIA
Suporte a multidrop
– necessidade de
outros usuários
14
Suporte a MIME
8 Bits
15
Lições adicionais
16
17
18
19
LIÇÕES
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.
32
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
de Eric S. Raymond
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
Fevereiro / 2012
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.
Download

A Catedral e o Bazar