A contribuição de código aberto é uma das habilidades mais procuradas hoje em tecnologia. As pessoas perceberam os benefícios do uso de tecnologias de código aberto e as recompensas de fazer parte desses projetos.
O desenvolvimento de código aberto é uma abordagem baseada no compartilhamento de código-fonte e na melhoria colaborativa.
Existem milhares de projetos de código aberto na internet. Os projetos de código aberto podem ser aplicativos de mídia social, software de gerenciamento de projetos e documentação técnica. Então, como você escolhe o caminho certo?
O que procurar em um projeto de código aberto
Um equívoco sobre projetos de código aberto é que você precisa contribuir com código. Embora o código seja essencial, outras áreas, como documentação, gerenciamento de projetos e defesa da comunidade, podem incluir contribuições de código aberto.
Qualquer pessoa que tenha trabalhado em projetos de código aberto falará sobre o poder de tais projetos. Os benefícios incluem inovação, qualificação e relacionamentos produtivos que impactam sua carreira.
Considere as seguintes características para determinar se um código-fonte aberto vale o seu tempo.
1. Tem Licença?
Todo projeto de código aberto tem uma licença, normalmente uma licença permissiva ou copyleft. Uma licença permissiva é comum em projetos de código aberto. Ele não restringe ninguém de usar, distribuir ou vender uma versão modificada do software.
A maioria dos projetos de código aberto tem uma licença permissiva, como MIT, BSD ou Apache 2.0. A licença MIT compartilha e distribui software gratuitamente e não tem garantia:
As licenças copyleft, como General Public License, Mozilla Public License e Affero General Public License vêm com outras restrições.
Uma licença permissiva permite que os colaboradores alterem e distribuam software de código aberto. Isso significa que os desenvolvedores podem modificar o código-fonte para produzir um novo software e usá-lo ou distribuí-lo sem restrições. A versão modificada estará sob a mesma licença do software original.
No entanto, as versões modificadas não terão o mesmo nome da versão original para facilitar a identificação entre as duas. A licença também deve incluir todas as pessoas e não discriminar ninguém.
Qualquer pessoa que receba o software redistribuído deve ter os mesmos direitos na licença que os proprietários do código original.
Uma licença gratuita não restringe o software a um determinado canal de distribuição ou tecnologia. Software e dependências distribuídos juntamente com software de código aberto não precisam necessariamente ser de código aberto. As tecnologias de código fechado e outras pagas usam software de código aberto sem restrições.
2. O código-fonte é compartilhado?
Todos os projetos de código aberto possuem uma licença que permite o compartilhamento gratuito do código-fonte. Os direitos também se estendem ao código compilado a partir das contribuições. O projeto deve disponibilizar seu código-fonte para todas as partes, sem restrições.
Quando o código-fonte não estiver disponível em plataformas públicas, ele deverá estar disponível mediante solicitação. Qualquer projeto que não compartilhe seu código-fonte não é um projeto de código aberto.
Porém, a licença pode restringir a redistribuição do código-fonte e permitir apenas a redistribuição de sua forma modificada. O código modificado pode ter um nome ou versão diferente para diferenciá-lo do projeto original.
3. O projeto possui diretrizes para colaboradores?
Todo projeto de código aberto deve ter um guia de contribuidores. Você provavelmente o encontrará na pasta raiz do projeto, geralmente denominada CONTRIBUTORS ou CONTRIBUTORS.md. Um guia de contribuidores contém instruções simples sobre como contribuir com o projeto.
O guia mostra aos novos contribuidores como bifurcar, levantar um problema e enviar suas contribuições para o repositório upstream. Os guias do colaborador ajudam a mostrar aos colaboradores como o projeto funciona para reduzir os conflitos entre as ramificações durante a mesclagem.
Aqui está um exemplo de diretrizes de contribuidor do projeto de código aberto AsyncAPI em GitHub:
4. Tem uma comunidade ativa?
A inovação é uma das razões pelas quais os projetos de código aberto se tornaram tão populares. O código aberto reúne comunidades talentosas e entusiastas para gerar ideias que promovem a inovação.
Uma comunidade forte garante comunicação, colaboração e marketing claros para o produto. Comunidades ativas de código aberto produzem melhores resultados e escalam inovações mais rapidamente do que projetos individuais.
Para determinar se uma comunidade está ativa, observe seus canais sociais. Comece monitorando suas atividades nas redes sociais, contas Discord ou Slack. Trabalhar em uma comunidade ativa com fluxo livre de informações e recursos é melhor.
Comunidades ativas em código aberto aceleram a inovação de três maneiras. As comunidades respondem às tendências atuais da tecnologia, têm ciclos de lançamento frequentes e uma ampla redistribuição do software.
Um exemplo de projeto de código aberto com uma comunidade fantástica é o framework Javascript do Facebook, React.
O React cresceu para a versão 18 em nove anos, enquanto um framework semelhante Vue.js ainda está na versão 3. Ambos os frameworks têm menos de dez anos. A vibrante comunidade do React ofusca outras estruturas JavaScript populares, como o Angular.
É divertido trabalhar em projetos de código aberto com comunidades ativas. Além disso, você nunca ficará para trás nas tendências e atualizações de tecnologia. Encontrando o melhores comunidades de tecnologia do Discord é uma excelente adição ao seu portfólio de código aberto.
5. Os mantenedores são ativos e atenciosos?
Em um projeto de código aberto, os mantenedores são colaboradores com permissão para modificar os arquivos no repositório de um projeto. Os mantenedores são responsáveis pelo projeto e garantem que as contribuições feitas ao projeto estejam alinhadas com seus objetivos.
Em um bom projeto de código aberto, os mantenedores são os mais ativos. Eles serão responsáveis pelos canais da comunidade, conduzirão as discussões e responderão às perguntas dos colaboradores. Os mantenedores fornecem atualizações e incentivam a colaboração na comunidade.
Para determinar se um projeto tem mantenedores ativos, consulte seus repositórios remotos, como o GitHub. Mantenedores ativos se comunicam bem. Eles respondem a solicitações pull, configuram problemas e respondem a perguntas de contribuidores.
Identifique os mantenedores ativos verificando com que frequência eles respondem às perguntas postadas nos canais sociais. Qualquer repositório com três meses de lacuna de comunicação não é um projeto adequado.
Características de um bom projeto de código aberto
Embora muitas outras características definam um projeto de código aberto adequado, as mais importantes são o tipo de licença, a natureza das comunidades, o código-fonte e os mantenedores ativos.
Projetos de código aberto com as características acima inspiram inovação, dimensionamento e marketing de projetos de classe mundial. Além disso, grandes comunidades de código aberto acompanham as tendências tecnológicas e incentivam a colaboração e a diversidade.
É provável que você tenha usado pelo menos um produto de software aberto em sua vida. Por que não começar por aí? Use as características mencionadas neste artigo para garantir que você obtenha o melhor projeto que complemente suas habilidades e necessidades.