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.