A catedral e o bazar

Preview:

DESCRIPTION

Apresentação sobre o texto A Catedral e o Bazar (The Cathedral and the Bazaar)

Citation preview

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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