/  25
 
Aspectos do Trabalho Cooperativo noDesenvolvimento de
Software
Livre
 
Marcelo Sávio
IT Architect
http://www.linkedin.com/in/msavio
 
http://msavio.myplaxo.com/ 
 Rio de Janeiro - Janeiro de 2007
Resumo.
 
Software
livre é todo
software
 
cujo código fonte está disponibilizado publicamente, eseu
conteúdo pode ser livremente modificado e
redistribuído (e não sendo permitida aapropriação desse código). Uma conseqüência indireta desta liberdade é o aparecimento decomunidades de desenvolvimento que trabalham de forma descentralizada,
através da Internet,desenvolvendo e mantendo os diferentes projetos de
software
livre. Essas comunidades,que a primeira vista parecem estar desorganizadas, produzem
software
de qualidade, comalta produtividade e satisfação entre os seus desenvolvedores e usuários. O objetivo desteartigo é verificar os aspectos do Trabalho Cooperativo Suportado por Computador, CSCW(
Computer Supported Cooperative Work 
), que suportam o desenvolvimentodescentralizado de
software
livre, através do estudo de caso do desenvolvimento do sistemaoperacional Linux.
1 Introdução
Apesar da definição apresentada acima, ainda existem controvérsias em relação ao que sejaprecisamente considerado
software
livre. Isso se dá pelo fato de que se trata de um assuntomultifacetado, que contém questões relacionadas a assuntos como engenharia de
software
,propriedade intelectual, modelo econômico, política tecnológica, cooperação
1
, liderança emotivação. Uma olhada mais de perto em alguns projetos de
software
livre revela, ainda, umagrande diversidade de objetivos, formas de participação e técnicas de implementação.Ao analisar as atividades que suportam o desenvolvimento de
software
livre, do ponto devista do trabalho cooperativo suportado por computador, é possível identificar um desafiocomum a todos os projetos: a necessidade da criação e manutenção de um ambientesociotécnico onde os participantes possam, de forma cooperativa, construir soluções para osproblemas de interesse mútuo.As práticas do desenvolvimento de
software
livre são importantes para a pesquisa em CSCWpor dois motivos principais. Primeiro porque o desenvolvimento de
software
é tradicionalmenteum processo de coordenação intensiva que tem atraído pesquisadores de CSCW (KRAUT,1995; BUTTON, 1996) e segundo porque o processo de desenvolvimento de
software
livre éefetuado por participantes geograficamente dispersos, com a ajuda de tecnologias colaborativascomo o email, conversação on-line,
World Wide Web
e sistemas de controle de versão e degerenciamento de configuração, tecnologias que, por sua vez, têm sido um aspecto central naspesquisas de CSCW.
1
O conceito de cooperação é mais complexo que o de interação e de colaboração, pois além de pressupor ambosrequer relações de respeito mútuo e não hierárquicas entre os envolvidos, uma postura de tolerância e convivênciacom as diferenças e um processo de negociação constante. Percebemos que a diferença fundamental entre osconceitos de colaboração e cooperação reside no fato de que para haver colaboração o indivíduo deve interagir como outro existindo ajuda - mútua ou unilateral. Para existir cooperação deve haver interação, colaboração, mastambém objetivos comuns, atividades e ações conjuntas e coordenadas. (MAÇADA; TIJIBOY, 1998).
 
1.1 Histórico Resumido do Software Livre (e do Linux)
Software
Livre é um conceito antigo, embora ainda não tivesse este nome específico desde oinício. Até a década de 70, o valor de um computador estava contido essencialmente no
hardware
, que tinha um custo muito alto. A maioria dos fabricantes fornecia, junto com o
hardware
vendido, o código fonte de seus sistemas operacionais e aplicativos. Embora aslicenças não explicitassem claramente a liberdade, a redistribuição do
software
era vista comopositiva, e quase todo o
software
era fornecido com o seu código fonte (STALLMAN, 1999).Os fabricantes até estimulavam, como forma de diminuir os custos de suporte, ocompartilhamento de informações e melhorias de
software
produzidas entre seus usuários
2
.Assim o
software
era, em geral, desenvolvido de forma cooperativa e aberta em diversasuniversidades e empresas. O sistema operacional UNIX, nos seus anos iniciais, foi um exemplodesta época (MCKUSICK, 1999), assim como o desenvolvimento da Internet foi inteiramentebaseado no uso e compartilhamento de programas de código fonte aberto em escala mundial.No início da década de 80 o cenário mudou, quando ganhou força o licenciamento restritivo,que não permitia a redistribuição do
software
fornecido e este passou a significar basicamente omódulo executável, suprimindo o acesso à maioria dos códigos-fonte. Esta mudança de cenáriofez com que, em 1984, (STALLMAN, 1999) criasse a
Free Software Foundation
(FSF
3
). Afilosofia do
software
livre se baseia em uma definição de liberdade. Por causa da ambigüidadeem inglês da palavra "
 free
", tornou-se necessário esclarecer que
 free software
não se refere aopreço, mas à liberdade dos usuários de executar, copiar, distribuir, estudar, modificar e melhoraro
software
. Mais precisamente, referem-se a quatro tipos de liberdades:
1.
 
A liberdade de executar programas para qualquer propósito.2.
 
A liberdade de estudar como o programa funciona e adaptá-lo às suas necessidades (o acesso aocódigo fonte é essencial para isso).3.
 
A liberdade para redistribuir cópias do programa de modo que outros se beneficiem.4.
 
A liberdade de melhorar o programa e distribuir o seu aperfeiçoamento para o público, de modo quetoda a comunidade se beneficie (novamente o código fonte é necessário).
O primeiro projeto da FSF foi o de promover o desenvolvimento de um novo sistemaoperacional, completamente livre. Para garantir esta liberdade, criou em 1989 um novo modelode licenciamento de
software
, a
General Public License
(GPL), descrita no Anexo 1.O novo sistema operacional que seria desenvolvido, e que teria o objetivo de ser compatívelcom UNIX, foi chamado de GNU
4
(um acrônimo recursivo que significa
GNU is Not UNIX 
). Odesafio não se restringia apenas à criação do núcleo do sistema em si (chamado HURD e queainda não está pronto até hoje), mas também de uma coleção de aplicativos, ferramentas ebibliotecas que permitissem sua plena utilização, sem perder a compatibilidade com o UNIXoriginal.A cultura em torno do movimento de
software
livre, de certa forma, está ligada à cultura emtorno do UNIX, já que os principais representantes do movimento foram usuários desse sistema,que tinha uma natureza aberta e uma filosofia própria, sumarizada por Gancarz (1995) comosendo composta dos seguintes pontos:
1.
 
Pequeno é belo;2.
 
Faça cada programa perfazer bem apenas uma tarefa apenas;3.
 
Construa um protótipo assim que possível;4.
 
Escolha portabilidade sobre eficiência;5.
 
Armazene dados numéricos em arquivos texto;6.
 
Faça reuso do
software
para sua vantagem;7.
 
Use scripts
shell
para aumentar portabilidade e reuso;8.
 
Evite interfaces restritivas com o usuário;9.
 
Faça cada programa ser um filtro de dados para que possa ser usado em conjunto com outros.
2
Havia um grande
compartilhamento de software entre os participantes dos grupos de usuários, como o SHARE(para usuários de sistemas IBM) e o DECUS (para usuários de sistemas DEC).
 
3
http://www.fsf.org/ 
4
http://www.gnu.org/ 
 
Em 1991, Torvalds (1999) então estudante da Universidade de Helsinki (Finlândia), iniciou odesenvolvimento do Linux, um núcleo de sistema operacional compatível com o UNIX, a partirdo reuso de códigos e idéias do Minix, um pequeno sistema operacional de uso acadêmicocriado por Tanenbaum (1987). A partir da primeira versão, Torvalds convidou, via
newsgroups
 da Internet, outros desenvolvedores a contribuírem nessa empreitada. Houve bastante adesão e,de forma surpreendentemente rápida, a codificação e a manutenção constantes neste núcleo, ofizeram evoluir para se tornar um
software
com funcionalidades similares às dos núcleos dossistemas UNIX do mercado (SCHENK, 2001). O Linux, ao longo do seu desenvolvimento,utilizou (e ainda utiliza) muitas ferramentas do Projeto GNU da FSF e por esta razão o sistemahoje também é chamado de GNU/Linux.O licenciamento através da GPL e a utilização da Internet como o canal principal decomunicação e desenvolvimento transformaram o Linux no mais importante exemplo de
software
livre desenvolvido de forma aberta e descentralizada.Raymond (1999) rotulou os modelos de desenvolvimento de
software
e chamou de “Bazar”esse modelo descentralizado e cooperativo, em contraposição ao “Catedral”, modelo tradicionalno qual o desenvolvimento é realizado de forma fechada e pouco cooperativa. Ele reforçou estaperspectiva através da afirmação de que o Linux é um contra-exemplo da “Lei de Brooks”, umalei clássica da Engenharia de
Software
, que diz o seguinte:
“...o tempo de um programador não é acumulativo, pois ao adicionar desenvolvedores em um projetoatrasado de
software
faz com que ele se torne mais atrasado ainda e que a complexidade e os custosde comunicação de um projeto crescem com o quadrado do número de desenvolvedores, enquanto otrabalho feito cresce somente linearmente” (BROOKS, 1995).
Outra característica do modelo Bazar, importante para a qualidade do objeto produzido, é teruma grande base de usuários com acesso ao código fonte, pois segundo Raymond (1999) “Seexposto a um número suficiente de olhos, todos os
bugs
são superficiais”, pois a depuração deerros é uma atividade paralelizável e será resolvida mais rapidamente quanto maior for a base deusuários participantes.O tamanho e a agilidade de um projeto de
software
livre, não são as únicas qualidades que odistinguem de um modelo “Catedral”. Outra importante diferença está em sua organizaçãointerna, particularmente na ausência de uma coordenação global sob uma autoridade central epela inexistência de um planejamento de projeto do tipo “
Top-Down
”. Aliás, em
software
livrenormalmente a estratégia vem depois do desenvolvimento e a ação antes do planejamento(TAURION, 2004).A partir de 1988 o
software
livre se tornou notícia cada vez mais freqüente na imprensa,quando a Netscape abriu o código do seu principal produto, o
Communicator 
e também quandoempresas de grande porte como IBM e Oracle começaram dar suporte ao Linux e ao Apache.Esse ano também ficou marcado como o ano que a Microsoft reconheceu, pela primeira vez, oLinux como competidor importante (OSI, 1988).Muitas vezes o termo
software
livre (
 free software
) se confunde com
software
aberto (
opensource
). Isso passou a acontecer principalmente após a criação da
Open Source Initiative
(OSI
5
),em 1988. Diferentemente da FSF, que suporta somente o uso de suas próprias licenças, a OSInão tem licenças próprias, mas certifica todas as dezenas licenças existentes no mercado(inclusive as da FSF) dentro de seus próprios parâmetros de
software
aberto. A OSI é umaentidade conciliadora, que garante às empresas que praticam o modelo comercial dedesenvolvimento de
software
, uma porta de entrada no movimento de
software
aberto semnecessariamente adotar as licenças da FSF, representando assim uma espécie de alternativaintermediária. Desta forma, todo
software
livre é, por definição, aberto, porém nem todo
software
aberto é livre.
5
http://www.opensource.org/ 

Share & Embed

More from this user

Add a Comment

Characters: ...