Como contribuir com projetos de código aberto sem precisar entender de programação
Open source é muito mais sobre colaboração do que sobre código
Na área de desenvolvimento, especialmente para a web, o movimento de código aberto é altamente difundido e incentivado. Software Open Source (de Código Aberto) são sistemas que disponibilizam acesso ao código fonte para que pessoas da comunidade possam contribuir, manter, corrigir, derivar e redistribuir, contanto que mantenham suas derivações como sendo open source. Um dos locais mais notáveis para encontrarmos projetos open source para contribuir é o Github.
Quem está começando na área de tecnologia ou tem envolvimento com projetos de desenvolvimento de software mesmo sem ser profissional de tecnologia pode achar que não teria como contribuir com projetos open source por ter pouco ou nenhum conhecimento em programação.
E aí é que está um grande engano perpetuado na nossa área de tecnologia. Primeiro porque o software não é apenas a parte do código. Conceitualmente, um software é composto de instruções (código), dados e documentação. Sim, a documentação é parte de um software.
Portanto, escrever uma especificação, documentar um projeto, revisar uma documentação, estruturar uma wiki, tudo isso contribuir para o bom desenvolvimento de um software.
O Felipe Fialho vai além e mostra como open source está relacionado também com outras atividades do universo do desenvolvimento que não dependem de conhecimento em programação, mas da intenção de disseminar conhecimento:
Neste artigo, resolvi focar em algumas dicas para quem quer contribuir com projetos open source, mesmo sem tanta experiência com programação, baseado principalmente na minha participação no Hacktoberfest de 2018 e também em outros projetos.
“Mas, Talita, você não é front-end? Espera, você também não se formou em computação?” Eu já trabalhei durante muitos anos diretamente com desenvolvimento, até mesmo com back-end. Sempre trabalhei também fazendo a parte de design e, então, chegou um momento em que eu resolvi me dedicar mais à UX (Experiência do Usuário) e análise de requisitos. Estou desde janeiro de 2018 sem trabalhar efetivamente com front-end, tirando um freela que fiz há alguns meses. Ou seja, estava bem enferrujada na parte de desenvolvimento, pois sabemos que a área de front-end evolui muito rápido.
Mas eu queria participar do Hacktoberfest para contribuir com projetos. Não, não era só para ganhar a camiseta, rs. Era principalmente para me motivar a sair da inércia e vencer essa limitação que estava na minha cabeça de que eu não teria como contribuir com projetos open source sem ser programando.
E conforme fui explorando diversos projetos no Github, vi que muitos precisavam de contribuições que não dependiam de código e quase ninguém se habilitava a contribuir por estar focando nos desafios mais técnicos. Então aqui vão algumas dicas com base na minha experiência para que você que é iniciante ou que atua com redação/copywriting, design, análise de requisitos, tradução, entre outras área, possa entrar neste mundo de open source.
Contribua com conteúdo
Nem todo projeto listado no Github se trata de um software, uma ferramenta, biblioteca ou algoritmo. Há muitos projetos interessantes que tratam de fazer compilados sobre artigos de um determinado tópico ou lista de tutoriais sobre determinada tecnologia. Alguns exemplos: o Papers We Love (artigos científicos), Awesome Courses (com lista de cursos online) e Canais de Youtube e Podcasts BR sobre ciência.
Estes projetos irão exigir um pouco de conhecimento em markdown, uma notação simplificada usada para estruturar textos, mas não exigem nada de programação. E, caso você não conheça markdown, pode contribuir com o seu conteúdo através de issues (questões/chamados).
Durante o Hacktoberfest, eu contribui com os projetos Awesome A11y e Top People To Follow in Web Accessibility adicionando links de artigos, materiais e profissionais relacionados à acessibilidade e pretendo continuar contribuindo, pois percebi como isto realmente faz a diferença e ajuda a manter este tipo de projeto ativo.
Documente
Muitas vezes, as pessoas que desenvolveram uma ferramenta não têm tempo de documentar adequadamente. Elas até podem ter alguns documentos ou comentários de código, mas nada muito estruturado para deixar a página inicial do projeto bem formatada para quem está conhecendo a ferramenta. Pode ser também que a pessoa não saiba muito bem como organizar isso.
Se você usou ou entende o que aquela ferramenta está fazendo, se tem maior habilidade para documentar, ajude a criar a documentação do projeto, por mais simples que seja. Pense: “como eu gostaria que isso fosse explicado? Quais as dificuldades que eu enfrentei para testar esta ferramenta que poderiam ter sido sanadas se estivessem na documentação? O que uma pessoa precisa saber para começar a usar essa ferramenta?”
Com isso, novamente você precisará somente do conhecimento em markdown na maioria dos casos ou pode abrir issues para ajudar a equipe do projeto a estruturar a documentação.
Outra ideia é ajudar a criar a Wiki de um projeto, que pode gerar uma documentação mais bem estruturada com seções e páginas.
Revise documentações
Há casos em que a documentação de um projeto pode estar desatualizada, incompleta ou precisa de uma reestruturada. Novamente, as pessoas que cuidam do projeto nem sempre conseguem manter a documentação em dia por uma série de motivos, mas quem usa o projeto guiando-se pela documentação pode perceber estas inconsistências.
Ajude a revisar a documentação, alerte a equipe do projeto através de uma issue, faça alterações, revise a parte ortográfica e gramatical se você tiver o conhecimento para isso. Estas contribuições são muito valiosas.
Teste
Nós precisamos muito de garantia de qualidade (QA) em projetos de software. Valorizem QAs! Se já há dificuldade em ter QAs nas empresas, imagine em projetos open source independentes?
Muitos projetos contam com testes automatizados, o que é ótimo, mas que devem ser complementados com uma inspeção manual. Como ser humano, nós temos habilidades incríveis de poder quebrar um software testando cenários não imaginados pela equipe de desenvolvimento mas plausíveis de acontecer quando uma pessoa usa o sistema.
Portanto, ajude com a parte de testes, principalmente se for uma ferramenta que tenha interface gráfica: verifique se links estão todos funcionando, se o layout está consistente, se os formulários estão validando as informações corretamente, se há alguma funcionalidade se comportando de forma inesperada, etc. Registre todos estes apontamentos como issues, não esquecendo de documentar como reproduzir as falhas encontradas, isto será muito útil para que a equipe planeje as próximas entregas.
Traduza
A área de tecnologia é embasada em inglês e você precisa ter conhecimento do idioma. Mas isto não pode ser um impeditivo para que você tenha acesso a conteúdo da área. Por isso, também é importante termos conteúdo em nossa língua nativa. As traduções ajudam quem está começando na área, não marginaliza pessoas que ainda estão aprendendo inglês (ou outro idioma) e facilita a compreensão por reduzir esforço cognitivo.
Se você encontrou um conteúdo interessante em um idioma estrangeiro que você domina, ajude a traduzir. Se junte com outras pessoas que possam ajudar com a tradução e que possam viabilizar a publicação das versões traduzidas caso você não tenha o conhecimento técnico para fazer.
Um projeto incrível nessa vertente é o DevTranslate, criado pela Larissa Mourullo. Foi inspirado no DevTranslate que me juntei com os devs Ayrton Fidélis e Gabriel Bastos para traduzir o MaintainableCSS do Adam Silver, criando o CSS Sustentável.
Meu Hacktoberfest de 2018: correções pontuais de código, ajuda em projetos de listagem e uma barreira vencida
Além do Awesome A11y e Top People To Follow in Web Accessibility, eu fiz também contribuições de código que para mim pareciam pequenas, mas para as pessoas do projeto foram significativas. Eu basicamente fiz contribuições em markdown e em HTML puro, achando que estava fazendo pouco por não estar programando em JavaScript ou fazendo algo complexo com CSS.
O que importa não é a quantidade de linhas da sua contribuição, a linguagem utilizada, a complexidade técnica do problema: o que importa é o quanto esta contribuição agregou para a equipe do projeto.
E eu completei o desafio! Pretendo continuar a contribuir com mais projetos :)
Open-source é mais sobre colaboração do que código
Por fim, contribuir com open source vai muito além de programação, bits e bytes. A cultura open source valoriza muito a colaboração entre pessoas, a construção conjunta de ferramentas que podem fazer nosso dia-a-dia melhor. Ela também é pautada em transparência, em não reter as informações só para nós. Todo mundo sempre tem algo que pode contribuir. Toda pessoas sabe de algo a mais do que as outras e pode ensinar. Open Source é sobre compartilhar o que você sabe para ajudar as pessoas.