Follow us Follow us Rss Feed
login

Métodos ágeis aplicados a Software Livre

 

Nos últimos anos, dois movimentos ganharam muita força no contexto de desenvolvimento de software. De um lado, os chamados métodos ágeis deixaram de ser técnicas alternativas para se tornarem a primeira opção em termos de metodologia de desenvolvimento em muitas empresas. Do outro, programas com licenças livres ou abertas voltaram a competir diretamente com programas proprietários na preferência de usuários de todos os níveis. Os contextos de sucesso de cada um desses movimentos indicam, a princípio, uma enorme diferença entre os problemas atacados e as soluções encontradas pelas comunidades. De fato, um estudo realizado num evento de métodos ágeis brasileiro mostrou que essa comunidade não tem uma participação muito forte em comunidades de software livre.

No entanto, uma análise mais cuidadosa das soluções apresentadas pelas duas comunidades leva a crer que a expansão desses movimentos os aproxima mais do que os contextos indicavam. Essa aproximação aliada ao pequeno envolvimento de desenvolvedores de métodos ágeis nas comunidades de software livre apontam para a existência de alguns empecilhos na mescla dos membros dessas comunidades. Esta projeto de mestrado procura identificar os empecilhos e propor formas de contorná-los ou eliminá-los.

Para isso, foi realizado um estudo das soluções encontradas em projetos de software livre sob o prisma dos métodos ágeis. Este estudo mostra que muitos dos princípios defendidos pelo Manifesto Ágil (http://agilemanifesto.org/) são guias para as técnicas de desenvolvimento encontradas de forma comum em projetos de software livre de sucesso. O papel de commiter, por exemplo, permite realizar uma revisão de todo código que é integrado ao repositório principal do projeto de forma não intrusiva no desenvolvimento realizado pelos contribuídores. Com isso, projetos de software livre mostram uma atenção contínua à qualidade do código e da arquitetura do projeto com uma visão geral dos acontecimentos.

No que diz respeito aos métodos ágeis de desenvolvimento de software, com a crescente adoção de seus valores e princípios, problemas em contextos que fogem do ideal descrito envolvem equipes distribuídas, desenvolvimento sem a presença constante do cliente e desenvolvimento de aplicações cujas falhas podem ter efeitos mais graves. Nesses contextos, algumas práticas originalmente propostas precisam de adaptações. A prática da programação em par, por exemplo, é uma cuja ausência pode ser minimizada pela adoção do sistema de commiter para realizar uma revisão do código de forma a manter a qualidade e visão geral do sistema.

Existem diversas outras práticas para as quais análises semelhantes foram realizadas de forma a identificar possíveis adaptações de acordo com o contexto do projeto. Essas análises mostraram que, em alguns casos, falta um apoio ferramental que permita ou facilite a adaptação de uma determinada prática num contexto distribuído. Para identificar as ferramentas mais desejadas em cada uma das comunidades foram elaborados dois questionários. Cada um dos questionários foi direcionado a uma das comunidades e procurou identificar os principais problemas sentidos pelos membros daquela comunidade.

Com os resultados desses questionários, foi possível identificar os principais problemas enfrentados pelos participantes em cada um dos contextos que lhe é familiar. Esses problemas aliados com as ferramentas sugeridas para resolvê-los levam a uma adaptação de métodos ágeis voltada para um contexto de software livre. Este trabalho termina apresentando essa adaptação sob o prisma do modelo de maturidade para desenvolvimento open source sugerido pelo projeto QualiPSo (http://www.qualipso.org) como uma possível implementação que se adeque às exigências traçadas. Na tentativa de encaixar a sugestão no modelo surgiram algumas dificuldades que apontam possíveis problemas ou pontos de melhoria no trabalho realizado.

Este projeto de pesquisa foi o tema de mestrado de Hugo Corbucci e o texto completo da dissertação pode ser encontrado em: http://grenoble.ime.usp.br/~gold/orientados/