Projeto pró-contribuição: uma proposta de estrutura para as comunidades brasileiras de software livre

Muito se tem falado pelos “corredores” das comunidades de software livre a respeito da falta de contribuição dos brasileiros, principalmente com codificação. Um acontecimento marcante para a comunidade do Estado do Rio de Janeiro foi em 2009, quando Jon “Maddog” Hall veio ao FSLDC e disse “vocês já tem fazem bastante divulgação – agora vocês precisam escrever código”.

De fato, se observarmos bem, as contribuições brasileiras para a maioria dos projetos livres são sempre em:

  1. Divulgação;
  2. Tradução do software e da documentação;
  3. Solução de dúvidas;
Apesar de serem importantes contribuições, elas não ajudam tanto para evolução do software. Além disso, acabamos não tirando proveito da melhor coisa que o software livre nos provê: controle sobre o que ele faz. Desta forma, acho que existem dois pontos importantes que podemos melhorar:
  1. Reporte de bugs;
  2. Codificação;

A barreira do idioma

Apesar de estar na moda criticar os brasileiros por não contribuírem, na minha opinião, a maior barreira que existe para os nossos conterrâneos contribuírem em projetos livre é o idioma. Por mais que a maioria dos desenvolvedores de software saibam ler inglês (afinal, a maioria das nossas fontes de consulta está neste idioma), escrever em inglês é muito mais difícil. Isto acaba afastando as pessoas não só da codificação, mas até mesmo usuários comuns de reportarem bugs!

Acho que as comunidades brasileiras tem um papel fundamental para melhorar esta situação, mas, infelizmente, a maioria delas atualmente funciona apenas como “proxies” e filtrando o que pessoalmente não consideram válido.

Por isso comecei a pensar em como poderíamos transpassar esta barreira e com a ajuda das comunidades brasileiras. Cheguei a uma estrutura que gostaria de compartilhar com vocês para que possa ser melhorado e aplicado num projeto real.

Importante: Não espere por uma ideia do outro mundo, pois as ideias que vou apresentar são bem simples :)

Facilitando o reporte de bugs

Antes de mais nada, precisamos entender o ciclo de vida de um bug reportado:

  1. Reporte: quando o usuário notifica ao projeto que percebeu um comportamento errôneo;
  2. Triagem: uma equipe exclusiva que verifica os bugs reportados para ver se eles são válidos, se estão duplicados e se estão com todas as informações necessárias;
  3. Correção: após a triagem, o desenvolvedor terá todas as informações para fazer a correção;

O papel que eu acho que a comunidade brasileira deveria fazer aqui é de participar da equipe de triagem. O usuário brasileiro poderia reportar o bug em português e a equipe de triagem iria fazer a tradução do bug para que qualquer desenvolvedor possa corrigí-lo.

O importante aqui é ter uma forma simples para o usuário sinalizar que ele está reportando em português. O ideal é que a própria ferramenta tenha esta opção ou que possa ser enviado automaticamente dados de idioma do sistema (ou navegador) do usuário. Caso isto não seja possível, deve ser documentado de forma clara como ele deve informar o idioma que está escrevendo.

Facilitando a codificação

Para facilitar a introdução de novos codificadores não fluentes em inglês é interessante que se tenha uma tradução da documentação para desenvolvedores tão boa quanto a tradução da documentação para usuários. Claro que isto não é uma barreira tão grande, já que nós desenvolvedores já estamos acostumados com documentação em inglês, mas qualquer ajuda é bem vinda.

Mais importante do que isto, a comunidade brasileira deve ter uma lista de desenvolvimento própria! Esta lista teriam discussões em português para que as dúvidas possam ser tiradas por todos. Como eu disse, escrever em inglês não é para todos (mesmo para quem lê neste idioma) e uma lista brasileira ajudaria muito a inserir novos desenvolvedores.

No entanto, a primeira providência que deve ser tomada é: as comunidades brasileiras precisam ter desenvolvedores! Caso contrário, quem vai traduzir a documentação técnica? Quem vai responder as dúvidas na lista de discussão? Além disso, existe o efeito cascata – quanto mais codificadores, mais gente vai querer codificar!

Próximos passos

Vou tentar implementar isto em algum projeto e, por consequência, fazer melhorias. Quem quiser contribuir nos comentários, ideias e críticas construtivas são bem vindas.

Eu sou desenvolvedor de software, mas atualmente não codifico para nenhum software livre. Então, assim pretendo começar a contribuir com código, além de criar uma estrutura que torne fácil para qualquer outra pessoa contribuir também, independente do nível de proficiência em inglês.