Comunidades online de desenvolvimento de softwares livres em muito se beneficiam com a contribuição de novatos, visto que pessoas novas sempre trazem contribuições para um grupo, sejam elas perspectivas diferentes ou até soluções inovadoras. “Todos que contribuem para os projetos um dia foram novatos, e tiveram que realizar sua primeira contribuição. Os novatos são potenciais peças de reposição para membros que deixam o projeto e mais mão de obra para o projeto”, comenta Igor Steinmacher, doutor pelo IME (Instituto de Matemática e Estatística da USP). Igor defendeu sua tese sobre as barreiras que novatos enfrentam ao adentrar as comunidades de desenvolvimento de softwares livres este ano, sob orientação do professor Marco Aurélio Gerosa.
O pesquisador, que também é professor pela UTFPR (Universidade Tecnológica Federal do Paraná), estudou sobre o assunto no grupo de pesquisas LAPESSC (Laboratório de Pesquisas em Engenharia de Software e Sistemas Colaborativos), associado ao IME onde participam doutorandos, mestrandos e professores da USP e de outras instituições de ensino. “Esse assunto despertou interesse em uma disciplina no início de meu doutorado no IME, em que os alunos precisavam colaborar significativamente para algum projeto de software livre. Notei que todos os alunos estavam relatando problemas durante o processo de entrada e contribuição. Conversei com meu orientador e decidimos trilhar esse caminho de estudar a problemática dos desenvolvedores novatos em Software Livre“, relata.
Metodologia da pesquisa
As barreiras enfrentadas pelos desenvolvedores novatos em software livre precisam ser identificadas para que, posteriormente, pesquisadores e a própria comunidade criem ferramentas para integrar mais contribuidores em seus projetos. Na pesquisa de Igor, a metodologia utilizada para localizar esses obstáculos foi a observação e feedback de alunos que tentaram contribuir com algum projeto em software livre, além de questionários, entrevistas com experientes e novatos em projetos e revisão às literaturas.
As entrevistas foram feitas com 36 pessoas: 12 experientes; 16 novatos bem sucedidos; 5 novatos que haviam desistido de contribuir durante o período das entrevistas; 3 novatos que estavam no processo de contribuir pela primeira vez. “Como tínhamos um riquíssimo conjunto de dados obtidos de nossas coletas, optamos por utilizar alguns procedimentos da Grounded Theory (codificação aberta e codificação axial) para analisar nossos dados por meio de comparações sucessivas dos dados”, explica Igor.
Deixe-me ajudar!
Após a conclusão de sua pesquisa, Igor observou que as principais barreiras encontradas pelos novatos pode ser divididas em 6 categorias expostas na ilustração abaixo:
Categorias e subcategorias de barreiras encontradas. Crédito: Igor Steinmacher
A recepção da comunidade pode ser uma barreira aos novatos pois, muitas vezes, os desenvolvedores mais experientes são rudes ou não incluem os aprendizes à comunidade ou, ainda mesmo, acreditam que os novatos deveriam saber mais sobre o projeto antes de entrar em contato. Essas atitudes podem assustar e acanhar os desenvolvedores inexperientes. A característica dos novatos também pode ser um empecilho, pois, em algumas situações, os aprendizes não possuem conhecimentos técnicos necessários, não são proativos ou não conseguem manusear a língua inglesa (geralmente a língua padrão de comunidades de softwares livre). O desconhecimento do processo de contribuição por parte dos aprendizes também é outro obstáculo a ser enfrentado, visto que a comunidade não oferece um guia adequado que demonstre como essa contribuição pode ser feita. “Por estarem explorando um ambiente totalmente novo, os novatos precisam de algumas 'placas' e ' mapas' que ao menos os guiem pelo caminho próximo do esperado”, comenta Igor.
Além disso, há problemas relacionados à documentação oferecida pela comunidade. Ou seja, às vezes, a comunidade de softwares livre mantém documentos desses softwares em desenvolvimento desatualizados, o que acaba confundido os novatos.
Ademais os problemas sociais citados, existem também barreiras técnicas, como as dificuldades em compilar e executar o projeto, entender o código e a arquitetura do sistema e o envio das alterações de código feitas ao projeto.
Contudo, Igor faz uma ressalva: “Acreditamos que existam barreiras que sejam necessárias e que possam estar lá para filtrar os novatos. Essas barreiras atuariam como um processo de recrutamento, em que os menos aptos não passam para a próxima fase”. Isso ocorre porque, ao passo que aprendizes são desejados por algumas comunidades, em outras, são vistos com restrições. Porém, este não é o foco da pesquisa. Futuramente, a identificação das barreiras entre negativas ou positivas pode colaborar com essa questão em particular.
Em sua pesquisa, Igor desenvolveu um portal de apoio aos novatos em suas primeiras colaborações em projetos de software livre. Conhecido por FLOSS Coach, o portal não apresenta nenhuma informação nova ou ferramente inusitada, “todas as informações e estratégias apresentadas ali já existiam nos projetos ou foram fornecidas durantes as entrevista e foram organizadas dentro do portal”, explica Igor. “Ali, o novato encontra dados sobre as habilidades necessárias para desenvolver os projetos, o passo-a-passo para a contribuição, a localização de recursos como repositório de código fonte, gerenciador de tarefas e lista de e-mails, uma lista de tarefas adequadas e dicas de como se portar frente à comunidade”.
O modelo das barreiras descobertas foi avaliado pelo FLOSS Coach. “Realizamos um estudo com mais de 60 estudantes, que tentaram contribuir com projetos de software livre. Esse estudo mostrou que o FLOSS Coach auxilia os novatos, guiando-os em seus primeiros passos e tornando-os mais confiantes para contribuir com os projetos”, diz Igor. Contudo, apesar do auxílio da ferramenta em reduzir algumas barreiras, outras seguem em aberto, como problemas problemas de configuração de ambiente local e entendimento do código, por exemplo.
Atualmente, o FLOSS Coach possui informações para um pequeno conjunto de softwares em desenvolvimento, sendo cada uma específica para um projeto em questão. Para o futuro, “o objetivo é minerar automaticamente um número maior de projetos para beneficiar mais novatos e projetos de software livre”, conta.
Projetos futuros
Para o futuro, o grupo de pesquisa possui novas ideias como: definir um modelo que exemplifique o quão amigável um projeto é aos novatos; analisar as barreiras enfrentadas pelas mulheres ao adentrar projetos de software livre; uso de estratégias de gamification (uso de elementos de jogos) como motivador e suporte aos aprendizes; análise de programas de bolsas temporárias como mecanismos de retenção de novos colaboradores, entre outros.
O estudo do grupo de pesquisa e o realizado por Igor são bastantes positivos no que tange ao futuro de novatos que adentram como colaboradores nas comunidades. “Uma recepção agradável pode fazer o novato se sentir acolhido e parte da comunidade. Isso pode motivá-los, além de torná-los mais confortáveis caso precisem voltar a pedir ajuda da comunidade”, explica Igor. “Por outro lado, má recepção pode assustar esses aprendizes e afastá-los definitivamente da comunidade”.
O portal FLOSScoach está disponível na web e todos podem acessá-lo aqui. A quantidade de projetos de software livre disponíveis deve ser expandida em breve.