Embora seja verdade que muitos mantenedores de código aberto são apaixonados e contribuem voluntariamente para a causa, também existem desenvolvedores que se sentem maltratados ou aproveitados.
“As desigualdades contra os mantenedores continuam a ocorrer no código aberto”, disse Kevin Crosby, chefe de financiamento de código aberto do GitHub. Para melhorar a situação, precisamos de acesso mais amplo à tecnologia, melhor educação e mais tempo para contribuir com o código aberto. que são necessários financiamento corporativo e investimento comunitário contínuo.
O código aberto está em uma encruzilhada há algum tempo. O problema é que as empresas utilizam o pacote e não devolvem a contribuição dessa parte. “Cresce a preocupação com a insustentabilidade do nosso sistema atual”, disse Ann Schlemmer, CEO da Percona. Claro, deveríamos prestar mais atenção. “Se as empresas apenas confiarem em projectos mas não contribuírem, não serão feitos esforços suficientes para proteger a infra-estrutura”, destacou.
Estudos mostram que 90% das empresas utilizam código aberto, e metade das grandes empresas têm uma estratégia de código aberto, ou uma abordagem formal para gerir a utilização de software de código aberto. Em minha defesa, muitas empresas contratam ou patrocinam mantenedores de código aberto. “A maioria dos principais mantenedores dos grandes projetos da Linux Foundation são funcionários em tempo integral de grandes empresas”, disse Priyanka Sharma, diretora da Cloud Native Computing Foundation (CNCF). CNCF é uma organização afiliada à Linux Foundation e hospeda aproximadamente 200 projetos de código aberto.
Embora o código aberto pareça ser amplamente utilizado, muitos mantenedores privados estão tendo dificuldade em levantar os fundos necessários para sustentar os seus esforços. As expectativas são altas e as empresas costumam pedir voluntários para corrigir bugs ou atualizar recursos gratuitamente. Para resolver este problema de injustiça no software livre, alguns propuseram um método de pagamento semelhante ao SaaS, apoio governamental ou maior apoio de empresas ou grandes fundações de código aberto.
“Ecossistemas de código aberto tornaram-se essenciais para o desenvolvimento de software, mas seu sucesso traz desafios”, disse Ruth Suell, vice-presidente da Apache Software Foundation. “O desafio é como sustentar este ecossistema vital, não apenas para o sucesso do ecossistema de código aberto em si, mas para tudo o que dele depende.”
O dilema do código aberto sobre justiça
O principal problema é que os contribuidores de código aberto não recebem uma compensação financeira justa. De acordo com o relatório de 2023 sobre o estado dos mantenedores de código aberto, 60% dos mantenedores de código aberto são voluntários que trabalham de graça e apenas 13% ganham a vida como mantenedores de projetos.
“A barreira para projetos e contribuidores de código aberto está cada vez mais alta”, diz Michael Larson, desenvolvedor de segurança da Python Software Foundation e mantenedor e contribuidor de muitos projetos de código aberto, especialmente nas áreas de HTTP e redes relacionadas ao Python. Larson destacou que esse fenômeno é especialmente perceptível em projetos importantes de middle stack. Ao não fornecer os tipos de questões “fáceis” com as quais os iniciantes podem se envolver facilmente, o resultado é menos colaboradores e esgotamento dos mantenedores líderes.
Jordan Haband, principal arquiteto de código aberto da HeroDevs e mantenedor de centenas de projetos JavaScript, disse que o acesso ao tempo e aos recursos é desigual em todo o mundo, o que agrava essas desigualdades.
“A partir de 2024, os mantenedores do código aberto estão sofrendo injustiças”, disse Donald Fisher, cofundador da Tidelift. “A recompensa por criar um projeto muito valioso e amplamente utilizado está sendo enterrada em relatórios de bugs, solicitações de recursos e falsos positivos de scanner que precisam ser revisados.” Matt Butcher, fundador e CEO da Fermyon Technologies, acrescentou que surgem problemas com a saturação do mercado, e apenas projetos de “primeiro nível” com todas as características de um produto comercial podem esperar se destacar.
Maneiras de manter o código aberto
Monetização direta
O que podemos fazer para colmatar esta lacuna? Uma abordagem sugerida é criar fluxos de receitas em torno de projetos-chave. “A maneira mais sustentável de financiar um projeto de código aberto é através de alguma forma de suporte comercial”, disse Kevin Crosby do GitHub. Os “fluxos de receita” aos quais Crosby se refere podem assumir a forma de suporte de consultoria premium, comercialização de projetos com recursos e software ou financiamento de nível empresarial.
Alguns mantenedores tentaram monetizar seus projetos, mas os resultados nem sempre foram bons e, em alguns casos, tais tentativas geraram reações negativas por parte da comunidade de desenvolvedores. “Não é fácil para os mantenedores lucrar com a monetização do projeto”, disse Thomas Johnson, cofundador e CTO do Multiplayer. “À medida que a situação piora, os mantenedores têm que considerar outras licenças de código aberto.”
suporte corporativo
Embora a monetização possa ajudar, outra alternativa é o financiamento empresarial direto. Nesse caso, podemos fornecer suporte contínuo sem cobrar pelo acesso ou alterações na licença do seu projeto. Oportunidades como GitHub Sponsors e GitHub Accelerator podem ajudar os mantenedores a obter receitas em dinheiro consistentes. Além disso, plataformas de financiamento como Patreon e Open Collective também são usadas ativamente para fornecer orçamentos aos mantenedores. “Fazer uma contribuição financeira direta para um projeto permite que os desenvolvedores do projeto se concentrem no código sem o estresse da instabilidade financeira”, disse Schlemmer da Percona.
Já existem resultados positivos no setor de patrocínios corporativos. Por exemplo, os patrocinadores do GitHub doaram US$ 40 milhões para mantenedores de código aberto. Crosby, do GitHub, disse que 4.200 organizações, incluindo AWS, American Express, Shopify e Mercedes-Benz, já investiram no código aberto do qual dependem. Outra iniciativa liderada por empresas, o Open Source Pledge, compromete as empresas participantes a fornecer US$ 2.000 anualmente para desenvolvedores de código aberto.
O importante é que os fluxos de receitas de código aberto sejam contínuos e não isolados. “A melhor maneira de garantir que os projetos de código aberto permaneçam saudáveis e seguros é continuar a financiar os mantenedores em troca de garantir que os projetos sejam gerenciados adequadamente e sigam práticas seguras de desenvolvimento de software”, disse Fisher da Tidelift.
No entanto, como se sabe, as empresas de nuvem utilizam projetos de código aberto para atividades geradoras de lucro, mas não compartilham os lucros com os mantenedores. Por esta razão, alguns dizem que um acordo de participação nos lucros será necessário no futuro. “As empresas que ganham dinheiro com projetos de código aberto devem compartilhar essa receita com os mantenedores do projeto”, disse Johnson, do Multiplayer.
contribuição de código
Outra forma de apoio é incorporar contribuições de código aberto em funções específicas. Isso poderia assumir a forma de patrocinar uma função de “desenvolvedor residente”, contratar um mantenedor de código aberto em tempo integral ou alocar tempo aprovado para o desenvolvimento de código aberto. “A maioria dos contribuidores e mantenedores do CNCF (cerca de 95%) são afiliados à organização e a maioria é contratada por sua proficiência em código aberto”, disse Priyanka Sharma do CNCF.
Muitas empresas já recompensam os funcionários por contribuições de código aberto no trabalho. Alguns estão até fazendo disso um elemento importante de sua estratégia. Adobe, por exemplo. “A Adobe contribui com código-fonte aberto para 46 tecnologias hospedadas pela CNCF desde 2015”, disse Sharma. O relatório Tidelift é encorajador, constatando que quase metade das organizações têm políticas que regem as contribuições de código aberto por parte dos funcionários. Nestes grupos, a maioria das organizações permite contribuições para projetos que a organização utiliza.
Este é o tipo de suporte que os projetos de código aberto precisam para ter sucesso. Schlemmer da Percona disse: “Os usuários do projeto devem continuar a contribuir, seja através de contribuições monetárias ou em espécie. “As empresas precisam orçamentar patrocínios para esses projetos que estejam alinhados com seus objetivos corporativos”, disse ele. “Esse tipo de estabilidade corporativa permite que os projetos mantenham a qualidade, a segurança e a inovação”.
Considerando apenas os riscos de segurança de código aberto, as empresas deveriam naturalmente se esforçar mais para contribuir e proteger projetos de missão crítica. “Semelhante à avaliação da viabilidade comercial de um fornecedor, as empresas que participam em projetos de código aberto precisam compreender a sustentabilidade do projeto”, disse Schlemmer.
corretora
As atualizações são melhor realizadas por mantenedores de código aberto com conhecimento profundo, mas muitas vezes não têm tempo ou recursos para implementar correções. O argumento aqui é que um terceiro pode ajudar a fornecer os meios necessários. As corretoras podem atuar como agentes e ajudar os mantenedores a preencher a lacuna entre os requisitos empresariais e o trabalho de código aberto.
Por exemplo, o Tidelift recompensa os mantenedores de código aberto por praticarem práticas de desenvolvimento seguro padrão do setor, para que os clientes possam usar esses pacotes com mais confiança. Este modelo eliminou com sucesso uma vulnerabilidade de execução remota de código (RCE) no jackson-databind, melhorou a segurança no urllib3, um cliente HTTP popular para Python, e implementou a autenticação de dois fatores (2FA) no minimist, um pacote JavaScript popular.
Alex Clark, mantenedor de código aberto e criador do Pillow, disse que a caridade não é a melhor maneira de financiar o código aberto. Clark disse que o mercado precisa de empresas como a Tidelift, que fiquem entre a demanda e os desenvolvedores, pagando aos mantenedores por meio da receita dos serviços que vendem.
fundação de código aberto
Fundações sem fins lucrativos como Linux Foundation, CNCF, Apache Software Foundation e Eclipse Foundation fornecem recursos e bolsas de estudo para ajudar a sustentar projetos de código aberto. “Para muitos projetos, o modelo de base tem sido eficaz como veículo de apoio e financiamento”, disse Suel, da Apache Software Foundation.
As fundações também podem ajudar indiretamente, fornecendo orientação, reconhecimento, apoio comunitário e métricas que ajudam os empresários a quantificar o impacto dos seus projetos e investimentos diretos. “As fundações são uma grande parte do apoio ao projeto, além do simples financiamento”, disse Brian Prophet, gerente sênior de comunicações comunitárias no Escritório do Programa Open Source da Red Hat. “Na Red Hat, apoiar diversas fundações no ecossistema de software livre e de código aberto é uma forma de garantir que o maior número possível de projetos permaneça saudável e vibrante.”
O mantenedor do código aberto, Seth Michael Larson, disse que a melhor maneira de apoiar o código aberto é “pagar fundações sem fins lucrativos em tempo integral para trabalhar em uma ampla gama de diferentes partes do ecossistema”. Larson disse que isso permite preencher lacunas em segurança, processo, documentação, liberação e governança sem tirar o incentivo de continuar contribuindo durante seu tempo pessoal.
Mas Suel disse que muitos grandes projetos de código aberto não querem ser alojados na fundação por vários motivos. Também precisamos de encontrar formas de os apoiar, disse Suel, acrescentando que vários projectos, incluindo o SustainOSS, tentaram resolver este problema nos últimos anos.
apoio público
Outra opção, e a mais progressista, é reconhecer o software de código aberto como um bem público e apoiar este ecossistema através de financiamento público em vez de apoio individual ou empresarial. “O que precisamos agora é de regulamentações cuidadosamente elaboradas que envolvam as partes interessadas certas dos principais governos do mundo”, disse o mantenedor Jordan Harband.
O Sovereign Tech Fund da Alemanha já está a avançar nesta direção, angariando cerca de 10 milhões de euros (10,9 milhões de dólares) todos os anos para investir em cerca de 30 projetos. O Fundo de Tecnologia Aberta do governo dos EUA é um caso semelhante, e o governo britânico também propôs a criação de um fundo semelhante.
“O Fundo Soberano de Tecnologia da Alemanha é o melhor exemplo de fornecimento de algum nível de financiamento público direto para mantenedores de código aberto com objetivos sociais mais amplos em mente”, disse Haband. “Este é todo o propósito do governo. “Você está financiando uma área onde as empresas não estão olhando o futuro o suficiente para justificar o financiamento”, disse ele.
De acordo com Serkan Horat, um pesquisador e desenvolvedor independente especializado em software de código aberto, os fatores que atualmente limitam as contribuições das empresas são questões econômicas, como a tragédia dos bens comuns e o problema do carona. “Quando se trata de recursos partilhados, eles não sabem com quanto contribuir”, disse Horat. Horat propôs redirecionar os impostos sobre vendas de assinaturas de código fechado para financiar projetos públicos de código aberto importantes.
Embora as opiniões possam divergir quanto aos detalhes, muitos concordam que a infraestrutura de código aberto deveria receber financiamento público. “O governo deveria financiar a manutenção do software livre em nome dos contribuintes”, escreveu Matthew Hodgson para a Fundação Matrix.org. O Livro Branco do Fundo Europeu para as Infraestruturas Públicas Digitais vai mais longe, argumentando que o apoio público é “o único modelo de negócio sustentável” para serviços e ferramentas que demonstram a capacidade de proporcionar valor público.
Financiamento para o software do qual o mundo depende
Estudos mostram que, se o código-fonte aberto não estivesse disponível gratuitamente, custaria US$ 8,8 trilhões para criá-lo do zero. Mas, surpreendentemente, a maioria dos desenvolvedores não espera apoio financeiro direto para as suas contribuições. O estudo da Developer Nation do primeiro trimestre de 2024 da SlashData descobriu que a motivação mais comum para contribuir para projetos de software de código aberto de propriedade de empresas ou fornecedores era “aprender a codificar melhor”.
Dada a dependência mundial do código aberto, esta visão poderá necessitar de ser reavaliada. “O software de código aberto é usado em tudo, desde telefones Android até supercomputadores e Netflix”, disse Sharma da CNCF. “Mas a maioria das pessoas não sabe disso, por isso não podem responsabilizar as empresas.” A falta de sensibilização e de apoio pode não só levar à injustiça, mas também ameaçar a manutenção desta importante tábua de salvação.
Na verdade, vários projetos importantes fracassaram. “Os mantenedores descrevem o trabalho como árduo, solitário e sem compensação financeira”, diz Fisher do Tide Drift. Além dos dilemas éticos, o esgotamento pode levar a vulnerabilidades não resolvidas ou riscos de engenharia social. O backdoor XZ é um exemplo.
Como apoiar o código aberto é a questão do nosso tempo. Algumas pessoas pensam que o patrocínio empresarial é a resposta, mas outros procuram outras formas de sustentabilidade. “Não existe uma solução única para todos”, disse o Profeta da Red Hat. “Precisamos fazer mais para descobrir quais projetos são realmente necessários”, disse ele.
Considerando a universalidade do código aberto, a coordenação do apoio através de financiamento público parece ser a visão mais provável a longo prazo. No entanto, estas iniciativas lideradas pelo governo ainda estão na sua fase inicial. Para que este ecossistema sobreviva até que as iniciativas públicas atinjam a maturidade, será necessária uma combinação de patrocínio empresarial, gestão de fundações e sensibilização pública.
[email protected]