3. Modelos de desenvolvimento de software: a Catedral e o Bazar

BROOKS (1995) afirma que a adição de desenvolvedores a um projeto atrasado apenas irá atrasá-lo ainda mais, em função do aumento exponencial da complexidade e da comunicação, enquanto a quantidade de trabalho aumenta linearmente. RAYMOND (1999) observa que, se a afirmação de Brooks fosse integralmente real, o Linux seria inviável. Adiante, em sua argumentação, Raymond cita o trabalho de Gerald Weinberg, especialmente sua discussão sobre “programação sem ego”, observando que quando os desenvolvedores não são possessivos com relação ao seu código e encorajam outras pessoas a procurarem por problemas e melhorias em potencial, o avanço do software se dá dramaticamente mais rápido do que de qualquer outra forma.

A partir disto, da análise do desenvolvimento do Linux e de sua própria experiência como hacker, Raymond descreve dois estilos de desenvolvimento: a Catedral e o Bazar.
Nesta metáfora a Catedral corresponde a um processo de desenvolvimento unilateral comparado a de um pastor que entrega sua mensagem aos fiéis sem que esta seja contestada. O Bazar, por outro lado, corresponde a um ambiente amplo de negociação e troca de idéias, onde os comerciantes competem entre si e ouvem seus potenciais compradores que influenciam diretamente no conjunto de mercadorias que desejam comprar.

A Figura 1 ilustra esta metáfora aplicada ao desenvolvimento de software.


Figura 1 – Estilos de desenvolvimento Catedral e Bazar (FABERLUDENS)

No lado esquerdo da ilustração está o modelo Catedral onde uma equipe de desenvolvedores entrega um programa compilado, ou seja, sem disponibilizar o seu código fonte, aos usuários. A indisponibilidade do código fonte impede a colaboração externa à equipe. À direita está o modelo Bazar, no qual notam-se imediatamente duas diferenças fundamentais:

  • o código fonte é disponibilizado para que outros desenvolvedores (hackers) possam conhecê-lo e modificá-lo;
  • há um processo de realimentação do qual tanto os desenvolvedores quanto os usuários participam (através de listas ou fóruns de discussão, ambientes colaborativos e outros), contribuindo para a melhoria contínua do programa desenvolvido.

A popularização do Linux e de outros softwares livres acabou por mostrar o poder do modelo Bazar e muitas empresas passaram a utilizá-lo em maior ou menor grau. Alguns produtos de software migraram do controle de empresas de tecnologia para comunidades de desenvolvimento. Dois exemplos bastante significativos são o navegador web Firefox, originado do Netscape que pertencia à empresa AOL, e o conjunto de aplicações para escritório OpenOffice, que resultou da abertura do código do StarOffice pela Sun Microsystems.

O contrário também acontece. Produtos originados de comunidades de desenvolvimento têm hoje papel importante dentro de grandes empresas. O servidor web da IBM tem por base o software livre Apache e o Google é grande usuário e contribuidor de projetos livres como a linguagem Python.
A necessidade de um controle das contribuições recebidas e a utilização de software livre de forma crescente em um ambiente profissional e empresarial levou as comunidades de desenvolvimento à utilização de uma série de práticas de organização e controle, visando garantir a qualidade dos produtos desenvolvidos. Na próxima Seção serão abordadas algumas práticas adotadas por comunidade de desenvolvimento elencadas neste artigo.



Design: Dobro Comunicação. Desenvolvimento: Brod Tecnologia. Powered by Drupal