• Nenhum resultado encontrado

4. MOVIMENTO DO SOFTWARE LIVRE

4.1 ECOSSISTEMA DO SOFTWARE LIVRE

4.1.1 PROCESSO DE DESENVOLVIMENTO DE SOFTWARES LIVRES

Tendo como fonte principal o desenvolvimento do Sistema Operacional Linux e sua própria experiência a frente do projeto Fetchmail, Raymond (1998) relata algumas lições e características do modelo de desenvolvimento de software livre, confrontando-o com o modelo de desenvolvimento de software proprietário. O autor introduz dois modelos de desenvolvimento contrastantes:

modelo catedral: Atribuído ao mundo dos softwares proprietários desenvolvidos por corporações onde seguem uma estrutura extremamente hierarquizada com limites bem definidos e ações bem ordenadas, semelhante a uma catedral calma e respeitosa;

modelo bazar: Atribuído ao mundo Linux onde os softwares são desenvolvidos por pessoas que colaboram através da internet e muitas vezes sequer se conhecem, dando a ideia de comunidade de co-desenvolvedores, assemelhando-se a um bazar, onde se encontram diferentes pessoas e as coisas se organizam e emergem em meio ao caos aparente.

O início da comunidade Linux e a gestação desse novo sistema operacional coincidem com o nascimento da internet e de acordo com Raymond (1998) não por acaso. Segundo o autor, Linus Torvalds foi a primeira pessoa que soube fazer uso da onipresente internet, afirmando que o “Linux foi o primeiro projeto a fazer um esforço consciente e bem-sucedido a utilizar o mundo inteiro como sua reserva de talentos.” (RAYMOND, 1998, p.11).

Com o surgimento do Linux ficou evidente o potencial da internet como um espaço que favorece ações colaborativas e cooperativas, inclusive causando inicialmente surpresa à comunidade de desenvolvedores da época.

Quem pensaria mesmo há cinco anos atrás que um sistema operacional de classe mundial poderia surgir como que por mágica pelo tempo livre de milhares de colaboradores espalhados por todo o planeta, conectados somente pelos tênues cordões da Internet? (RAYMOND, 1998, p.1)

Grande parte dos desenvolvedores da época, inclusive Raymond (1998,p.1), acreditava que grandes softwares, entre eles os sistemas operacionais, “necessitavam ser construídos como as catedrais, habilmente criados com cuidado por mágicos […] trabalhando em esplêndido isolamento, com nenhum beta para ser liberado antes de seu tempo”.

É sabido que este modelo não era uma novidade absoluta pois, como cita Silveira (2004), outros modelos cooperativos já existiam anteriormente, como por exemplo o principal dicionário de língua inglesa, o Oxford English Dictionary (OED), construído cooperativamente.

Em fins do século XIX, James Murray, o primeiro editor do OED, solicitou publicamente ajuda para completar o dicionário. Quase 400 pessoas lhe enviaram informações sobre palavras da língua inglesa e exemplos ilustrativos de seu uso. Hoje em dia o OED segue admitindo colaboradores. (SILVEIRA, 2004, p.12)

Apesar desses aspectos positivos do modelo bazar de desenvolvimento, é necessário esclarecer que “ninguém pode codificar desde o início no estilo bazar. Alguém pode testar, achar erros e aperfeiçoar no estilo bazar, mas seria muito difícil originar um projeto no estilo bazar.”(RAYMOND, 1998, p.10) .

Mesmo tendo como característica o desenvolvimento colaborativo, ressaltando a importância do coletivo, o modelo bazar não ignora a visão individual, julgando-a também de extrema importância para o início de uma comunidade.

Aponta Raymond (1998) que o estado da arte do desenvolvimento de softwares livres pertencerá àqueles que iniciem o desenvolvimento de uma ideia brilhante, partindo de uma visão individual, porém que se amplifica através da criação de uma comunidade voluntária de interesses, deixando claro a necessidade de iniciar uma comunidade a partir de algo tangível já existente, mesmo que cheio de erros e incompleto.

A Figura 2 apresenta dezenove lições que Raymond (1998) identificou analisando a comunidade Linux, liderada por Linux Torvads e sua experiência com o projeto Fetchmail.

Analisando o Movimento do Software Livre como um todo e as várias comunidades existentes, apesar de todas estarem em torno de um objeto comum que é o software livre, elas apresentam diferenças significativas. “Tais comunidades, por sua vez, embora convirjam em

inúmeros pontos, detém vários atributos que a elas são muito próprios configurando-se, assim, um cenário plural, democrático e, por certo, livre” (AGUIAR, 2009, p.15).

Existem vários pontos em que as comunidades se diferenciam, desde a flexibilidade com que tratam o trabalho, até a estrutura de suas organizações.

A ideia de “liberdade” também pode se mostrar diferente entre uma comunidade e outra. Enquanto para alguns é uma forma de liberdade ter em seu software uma interface gráfica mais amigável, para outros quanto mais próximo do código-fonte está o usuário, maior o grau de liberdade. (AGUIAR, 2009)

Quanto aos aspectos comuns existentes entre todas as comunidades, estão principalmente aqueles que se fazem presentes desde a gênese desse movimento.

Entre os aspectos em comum, pode-se citar o fato de todas se valerem de um modelo aberto e colaborativo, dinâmico e flexível, calcado na espontaneidade e na voluntariedade. Nesse meio, fazem-se presentes a cultura meritocrática e a produção em pares, elementos chave da cultura hacker (AGUIAR, 2009, p.15). Uma consequência marcante deste modelo de desenvolvimento diz respeito à relação entre usuários e desenvolvedores em uma comunidade de software livre. O software livre não possui donos, mas, sim, um ou mais autores.

O usuário de software livre também tem o direito de ser desenvolvedor, caso queira, ou mesmo colaborar com a comunidade de alguma outra forma, sendo chamado a ser um agente coautor dentro do projeto, não só se beneficiando do produto, mas, também, colaborando para que este produto possa ser aperfeiçoado. Esta colaboração não necessita ser algo que exija conhecimentos específicos e nem mesmo requer que a pessoa pertença oficialmente à comunidade com a qual pretende colaborar. Pelo contrário, “as comunidades deixam claro que uma atitude colaborativa exige muito menos [...] a melhor forma de ajudar é usando a distribuição e testando o sistema, o que é amplamente salientado nos sites de vários projetos” (MACHADO, 2009, p.23).

Por outro lado, uma característica presente hoje na comunidade Linux que foi herdada do Unix é que muitos usuários do sistema são também desenvolvedores o que auxilia na redução do tempo de depuração. “Com um pouco de estímulo, seus usuários irão diagnosticar problemas […]

e ajudar a melhorar o código mais rapidamente do que você poderia fazer sem ajuda.” (RAYMOND, 1998, p.3) .

Muitos projetos de softwares livres, desenvolvidos ao redor do mundo, são conhecidos pela sua alta qualidade. Raymond (1998) atribui isso à quantidade de pessoas pensando nos problemas e gestando novas ideias. O autor ainda aponta uma característica importante daqueles que são mediadores dessas comunidades: a habilidade em fazer com que as ideias dos membros da comunidade possam ir além do lugar onde os próprios membros achavam que podiam ir, como o ocorrido com o projeto fetchmail, considerado superior tecnicamente em relação aos outros softwares similares.

Nos projetos de desenvolvimento de software livre a liberação de versões ocorre de forma rápida e frequente de modo que os usuários (codesenvolvedores) se mantenham “estimulados pela perspectiva de estar tendo um pouco de ação satisfatória do ego, recompensados pela visão do constante (até mesmo diário) melhoramento do seu trabalho.” (RAYMOND, 1998, p.5) , afinal como afirma Raymond (1998, p.5) “… dados olhos suficientes, todos os erros são triviais”.

Fatores humanos como interesse, incentivo e entusiasmo dos participantes são importantes para o sucesso de uma comunidade de software livre, assim como a ação dos desenvolvedores para atrair novos co-desenvolvedores. Deve existir uma relação que não tenha por base o poder e mesmo que isso ocorra “a liderança por coerção não produziria os resultados que nós vemos.” (RAYMOND, 1998, p.11)

Dentre as comunidades de software livre, duas se destacam pela representabilidade no Brasil, além da abrangência mundial e os projetos na área educacional: o projeto Debian e a comunidade Ubuntu.

O projeto Debian tem como objetivo o desenvolvimento da distribuição Linux Debian, uma das mais conhecidas mundialmente. Já a comunidade Ubuntu tem como objetivo o desenvolvimento das distribuições Ubuntu, Xubuntu e Edubuntu.

Ambas as comunidades têm como objetivo tecno-científico, desenvolver distribuições linux. Para entender melhor o que é uma distribuição linux é importante o entendimento de dois outros termos: sistema operacional e kernel.

Segundo o Time de Documentação do Debian (2010a), sistema operacional é o conjunto de programas básicos e utilitários responsáveis por fazer o computador funcionar sendo que o núcleo deste sistema operacional é o kernel.

Ao mencionar o Linux como Sistema Operacional, faz-se menção ao chamado kernel, o núcleo do Sistema Operacional, que possui em si outros componentes agregados. Anualmente surgem novas versões deste kernel que, conforme apresenta Silveira (2004), podem ser empacotados de diversas formas pelas comunidades ou empresas. Chama-se de distribuição ou simplesmente distros cada forma diferente de se empacotar este núcleo. As distros são como tipos diferentes deste Linux, de acordo com seu objetivo e com os componentes que se deseja agregar a este núcleo comum a todas.

Conforme apresenta a Cartilha de Software Livre (2005, p.30) “Distribuições GNU/Linux são estruturas definidas através de uma metodologia que criam uma personalidade para este sistema operacional. São maneiras diferentes de agrupar o software necessário para se usar o sistema.”

Cada distribuição pode apresentar um fim específico ou uma necessidade específica, o mais importante na escolha de qual distribuição Linux utilizar é, justamente ter as necessidades atendidas. (CARTILHA DE SOFTWARE LIVRE, 2005).