Download pdf - A catedral e o bazar

Transcript
Page 1: A catedral e o bazar

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

Page 2: A catedral e o bazar

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

Page 3: A catedral e o bazar

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

Page 4: A catedral e o bazar

Contexto Histórico

Eric Raymond

apresenta “A

Catedral e o

Bazar” 4

Page 5: A catedral e o bazar

Contexto Histórico

Richard

Stallman lança

o projeto GNU

Eric Raymond

apresenta “A

Catedral e o

Bazar” 5

Page 6: A catedral e o bazar

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

Page 7: A catedral e o bazar

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

Page 8: A catedral e o bazar

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

Page 9: A catedral e o bazar

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

Page 10: A catedral e o bazar

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

Page 11: A catedral e o bazar

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

Page 12: A catedral e o bazar

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)

Page 13: A catedral e o bazar

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

Page 14: A catedral e o bazar

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

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

Page 15: A catedral e o bazar

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

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

Page 16: A catedral e o bazar

HIS

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

Page 17: A catedral e o 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

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

Page 18: A catedral e o 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

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

Page 19: A catedral e o 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

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.

Page 20: A catedral e o 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

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

Page 21: A catedral e o 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

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

Page 22: A catedral e o 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

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

Page 23: A catedral e o 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

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.

Page 24: A catedral e o 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

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

Page 25: A catedral e o 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

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.

Page 26: A catedral e o 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

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.

Page 27: A catedral e o 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

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

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.

Page 28: A catedral e o 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

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

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.

Page 29: A catedral e o 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

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

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

Page 30: A catedral e o 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

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

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.

Page 31: A catedral e o 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

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

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.

Page 32: A catedral e o 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

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

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.

Page 33: A catedral e o bazar

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

Page 34: A catedral e o bazar

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

Page 35: A catedral e o bazar

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

Page 36: A catedral e o bazar

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

Page 37: A catedral e o bazar

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