Conciliando Tecnologias de Produção, Gestão e Colaboração a Projetos de Software Livre
Projeto de Pesquisa realizado em parceria entre a PESC-COPPE/UFRJ e o PPGI-CCET/UNIRIO.
Também disponível no modo de apresentação.
Apesar do conceito de software livre ter sido cunhado na década de 80, somente recentemente a comunidade de pesquisa em Engenharia de Software tem dado atenção às características particulares dos processos de desenvolvimento através dos quais estes softwares são construídos.
O produto denominado software livre não traz em si algum tipo de ruptura tecnológica, mas traz uma nova forma de desenvolvimento e licenciamento de produtos de software que tem quebrado princípios dos modelos tradicionais. Grande parte da surpresa relacionada a esta quebra de paradigma está no caráter comunitário do processo de construção, interação e geração de resultados, sem precedentes na história do setor de software. Neste contexto, inexistem laços formais para participação nas comunidades de desenvolvimento e percebe-se um crescente fluxo de geração de novas comunidades e do processo de aprendizagem coletiva.
Conforme mencionado por Reis: "É curioso que possa ter sucesso mundial um modelo de desenvolvimento aparentemente fundamentado no trabalho de amadores e voluntários, coordenados de maneira pouco formal e com a utilização de ferramentas extremamente simples. Mais surpreendente é a percepção informal entre a comunidade e os meios de comunicação de que o software produzido por estes projetos tem qualidade”.
A compreensão do fenômeno de software livre vai além das discussões sobre disponibilidade de código fonte ou formas de financiamento. O papel da comunidade de colaboradores, as formas de colaboração e recompensa criam um contexto complexo e intrigante. Um dos manifestos de maior impacto relacionados à mudança de paradigma de desenvolvimento em comunidades de software livre trata de sua caracterização como um processo horizontal, coletivo, colaborativo e em rede, tendo a Internet como ponto chave de interação. Este modelo de trabalho, conhecido como o “modelo bazar”, proclama a descentralização do planejamento e execução do desenvolvimento por comunidades heterogêneas, como vínculos fracos entre seus membros e dotadas de informalidade.
Nestas comunidades, a colaboração se dá através de atividades de programação, identificação de falhas no produto, sugestão de melhorias, tradução de componentes, elaboração de documentação, divulgação e, em alguns casos, financiamento. O trabalho é em geral voluntário, onde a motivação individual para participação se dá por razões não econômicas, mas por recompensas de reconhecimento, prestígio e reputação. O engajamento voluntário confere às comunidades um caráter de alto compromisso com seu sucesso, o que pode explicar sua capacidade de produção que sobrepõe as dificuldades técnicas naturais do trabalho remoto e distribuído.
Um dos principais benefícios deste modo de trabalho coletivo está no fato da colaboração permitir a construção de produtos que não poderiam ser construídos por cada participante da comunidade isoladamente, dada sua complexidade ou custo. Em geral, o código gerado neste processo é de alta qualidade, pois há um número elevado de pessoas que estabelecem “massa crítica” sobre o mesmo, permitindo rápida correção de falhas. A flexibilidade da “bifurcação” de projetos e criação de versões específicas para cada usuário, através da customização do código livre, também são tidos como fatores motivadores para o incentivo a este modelo de produção.
O desenvolvimento de software livre tem se profissionalizado e vem se convertendo em um modelo de negócio. Empresas e organizações, sobretudo as governamentais, têm direcionado esforços na avaliação e utilização deste tipo de software para apoio aos seus processos organizacionais. Esta utilização reduz a evasão de recursos decorrente do pagamento de royalties para companhias desenvolvedoras de software no exterior.
A qualidade do produto de software livre tem sido, portanto, constantemente questionada bem como novas estruturas de interação entre as comunidades de desenvolvimento e seus usuários têm sido discutidas. Compreender o processo de produção nas comunidades de software livre e, principalmente, ampliar sua produtividade e a qualidade do produto gerado com a aplicação de metodologias e ferramentas que apóiem seus processos de trabalho surgem como desafios de pesquisa que motivam este projeto.
Diversos relatos apontam que os desafios enfrentados hoje pelas comunidades de software livre remontam aos problemas comuns enfrentados pela Engenharia de Software tradicional, tais como falhas na documentação, dificuldades no levantamento e especificação de requisitos para o produto, dificuldades no projeto de interfaces e avaliação de usabilidade e gerenciamento do trabalho. Segundo Taurion: “A conciliação dos processos (anárquicos?) propostos pelo método bazar com os conceitos de Engenharia de Software atuais devem gerar um dos mais intensos esforços de compreensão e desenvolvimento para os próximos anos”.
A compreensão deste processo de produção não pode ser encarada em uma única dimensão. De fato, ao se analisar o modelo de trabalho dos grupos de software livre, diversas dimensões de estudo diferenciam este modelo de produção do modelo industrial tradicional na indústria de software. O desafio deste projeto de cooperação está em buscar caminhos para ampliar as vantagens e a cultura de trabalho preconizado pelos processos de desenvolvimento de software livre através da compreensão de sua colaboração intrínseca, da proposta de ferramental de apoio à sua realização eficaz, tais como a construção de uma biblioteca de componentes adequada a este contexto e além disso a realização de experimentos que permitam avaliar a proposta . Tal desafio espera-se ser enfrentado com base no extenso histórico de pesquisa dos grupos envolvidos nas questões relacionadas ao apoio a atividades colaborativas, reutilização de software e experimentação em engenharia de software.

