Código Aberto: Sustentando a Infraestrutura digital do mundo

Código Aberto: Sustentando a Infraestrutura digital do mundo

O mundo passou a depender do trabalho gratuito de milhões de desenvolvedores de software qualificados — os mantenedores de projetos de software livre de código aberto (FOSS). Mas o mundo não deu a eles uma gorjeta. Embora seja verdade que muitos mantenedores de código aberto são apaixonados e contribuem livremente para a causa, outros se sentem oprimidos ou aproveitados. "Continuamos a vivenciar desigualdade de mantenedor em código aberto", diz Kevin Crosby, diretor sênior de financiamento de código aberto no GitHub .

Para melhorar o status quo, precisamos de maior acesso à tecnologia, melhor treinamento, financiamento corporativo que reserve tempo para contribuir com o código aberto e investimento contínuo da comunidade, ele diz.

O Problema da Insustentabilidade do Código Aberto

O código aberto está em uma encruzilhada há algum tempo. Mas o problema é que as empresas geralmente não contribuem de volta para os pacotes que usam. "A insustentabilidade do sistema atual recebeu mais atenção, e com razão", diz Ann Schlemmer, CEO da Percona. "Há um argumento legítimo de que não está sendo feito o suficiente para proteger a infraestrutura de alguém se não estiver contribuindo para os projetos dos quais depende."

Estudos mostram que 90% das empresas dependem de código aberto , e metade das grandes empresas tem uma estratégia de código aberto , ou seja, uma abordagem formal para gerenciar seu uso de software de código aberto. Para seu crédito, muitas empresas estão empregando ou patrocinando mantenedores de código aberto. "A maioria dos principais mantenedores dos maiores projetos da Linux Foundation são funcionários em tempo integral de grandes empresas", diz Priyanka Sharma, diretora executiva da Cloud Native Computing Foundation (CNCF).

A CNCF é um braço da Linux Foundation que hospeda quase 200 projetos de código aberto.

No entanto, embora o código aberto pareça estar proliferando , muitos mantenedores individuais lutam para financiar seus esforços contínuos. As expectativas são altas, e as empresas geralmente exigem voluntários para corrigir bugs ou atualizar recursos gratuitamente. Para corrigir a desigualdade no FOSS , alguns sugeriram pagamentos semelhantes a SaaS, auxílio governamental ou maior suporte de corporações ou das principais fundações de código aberto.

"O ecossistema de código aberto se tornou indispensável para o desenvolvimento de software, mas também está sofrendo com seu próprio sucesso", diz Ruth Suehle, vice-presidente executiva da Apache Software Foundation. "O problema é como sustentamos esse ecossistema indispensável para manter não apenas seu sucesso para o bem de si mesmo, mas tudo o que se tornou dependente dele."

O Dilema da Equidade de Código Aberto

O problema central é que os colaboradores de código aberto não são pagos de forma justa. 60% dos mantenedores de código aberto são voluntários não remunerados, e apenas 13% ganham a vida como mantenedores profissionais de projetos, de acordo com o Relatório do Estado do Mantenedor de Código Aberto de 2023 .

"Vejo a barra ficando mais alta para projetos e contribuidores de código aberto", diz Seth Michael Larson, desenvolvedor de segurança residente na Python Software Foundation e mantenedor e contribuidor de muitos projetos de código aberto, especialmente no espaço HTTP e de rede para Python . Isso é particularmente verdadeiro para projetos críticos de middle-stack, diz Larson, que não oferecem problemas "fáceis" para os novatos começarem a trabalhar, resultando em menos contribuidores e esgotamento do mantenedor líder.

Essa desigualdade é ainda mais aprofundada pelo acesso desigual a tempo e recursos em todo o mundo, diz Jordan Harband, arquiteto principal de código aberto na HeroDevs e mantenedor de centenas de projetos JavaScript .

"Os mantenedores de código aberto em 2024 se encontram no lado perdedor de uma barganha injusta", diz Donald Fischer, cofundador e CEO da Tidelift. "A recompensa por criar um projeto altamente valioso e amplamente usado está sendo inundada por relatórios de bugs, solicitações de recursos e falsos positivos do scanner que precisam de avaliação", diz ele. Os desafios surgem da saturação do mercado, e apenas projetos de "primeira linha" com todas as armadilhas de produtos comerciais esperam se destacar, acrescenta Matt Butcher, fundador e CEO da Fermyon Technologies.

Caminhos para Sustentar o Código Aberto

Monetização Direta

Então, como retificamos essa lacuna? Um método sugerido é construir fluxos de receita em torno de um projeto principal. "O método mais sustentável para financiar e dar suporte a projetos de código aberto é por meio de alguma forma de suporte comercial", diz Kevin Crosby do GitHub. Para ele, "fluxos de receita" podem assumir a forma de suporte de consultoria premium, produção de projetos com recursos e software ou financiamento de nível empresarial.

Dito isso, embora alguns mantenedores tenham tentado monetizar seus projetos , os resultados não foram todos sustentáveis. Em alguns casos, essas tentativas levaram a uma reação negativa da comunidade de desenvolvedores . "Os mantenedores não se beneficiam facilmente da monetização de seus projetos", diz Thomas Johnson, cofundador e CTO da Multiplayer. "Isso só está piorando e forçou os mantenedores a considerar licenças alternativas de código aberto para resistir."

Suporte Corporativo

Embora a monetização possa ajudar, outra alternativa é o financiamento corporativo direto, que pode fornecer suporte contínuo sem alterar as licenças do projeto ou cobrar pelo acesso. Oportunidades como GitHub Sponsors ou GitHub Accelerator podem ajudar a criar um fluxo consistente de dinheiro para os mantenedores. Outras plataformas de financiamento, como Patreon e Open Collective , têm sido ativamente usadas para fornecer um orçamento aos mantenedores. "Fazer contribuições financeiras diretas para os projetos permitirá que os desenvolvedores do projeto se concentrem no código e removam o estresse da insegurança financeira", diz Schlemmer, da Percona.

Em termos de patrocínio corporativo, já vimos vitórias positivas. Por exemplo, o GitHub Sponsors já direcionou US$ 40 milhões para mantenedores de código aberto — 4.200 organizações, incluindo AWS, American Express, Shopify e Mercedes Benz, já investiram em suas dependências de código aberto, diz Crosby do GitHub. Outra iniciativa liderada por empresas é o Open Source Pledge , onde as empresas participantes prometem dar a cada desenvolvedor de código aberto US$ 2.000 por ano.

Um ponto-chave é que os fluxos de receita de código aberto devem ser contínuos em vez de pagamentos únicos. "A melhor maneira de garantir que os projetos de código aberto permaneçam saudáveis ​​e seguros é pagar aos mantenedores uma renda estável em troca de garantir que seus projetos sejam mantidos adequadamente e sigam práticas seguras de desenvolvimento de software", diz Fischer, da Tidelift.

Ainda assim, provedores de nuvem são conhecidos por fazer uso de projetos de código aberto para atividades de geração de receita sem compartilhar lucros com os mantenedores. Como tal, alguns sugerem um acordo de compartilhamento de receita daqui para frente. "Empresas que geram receita de projetos de código aberto devem compartilhar com os mantenedores do projeto", diz Johnson, da Multiplayer.

Contribuições de Código

Outra forma de auxílio é consolidar contribuições de código aberto dentro de funções específicas. Isso pode equivaler a patrocinar funções de "desenvolvedor residente", empregar mantenedores de código aberto em tempo integral ou alocar tempo aprovado para desenvolvimento de código aberto no trabalho. "A maioria dos colaboradores e mantenedores do CNCF (aproximadamente 95%) são afiliados a organizações, e a maioria é contratada por sua perspicácia em código aberto", diz Priyanka Sharma do CNCF.

Muitas empresas já pagam funcionários por contribuições de código aberto no trabalho. E algumas fazem disso uma prioridade estratégica máxima. Um exemplo é a Adobe. "Desde 2015, a Adobe contribuiu com código aberto para 46 tecnologias que a CNCF hospeda", diz Sharma. De forma encorajadora, um relatório da Tidelift descobriu que quase metade das organizações tem políticas que regem as contribuições dos funcionários para o código aberto. Desses grupos, a maioria permite contribuições para projetos que a organização usa.

Este é precisamente o tipo de suporte que os projetos de código aberto exigem para ter sucesso. "Os usuários do projeto devem se comprometer a contribuir consistentemente, seja financeiramente ou com contribuições em espécie", diz Schlemmer, da Percona. "As empresas precisam orçar patrocínios para aqueles projetos que se alinham com seus objetivos." Ela diz que esse tipo de estabilidade corporativa garantirá que os projetos mantenham qualidade, segurança e inovação.

Empresas Intermediárias

Mantenedores de código aberto com conhecimento profundo podem ser os mais qualificados para fazer atualizações, mas eles geralmente não têm tempo ou recursos para implementar correções. Como tal, também há um argumento para terceiros ajudarem a fornecer os meios necessários. Empresas intermediárias podem atuar como agentes, ajudando os mantenedores a preencher a lacuna entre as demandas corporativas e o trabalho de código aberto.

Por exemplo, a Tidelift paga mantenedores de código aberto para implementar práticas de desenvolvimento seguro padrão da indústria, garantindo que seus clientes possam usar esses pacotes com mais confiança. Este modelo eliminou com sucesso uma vulnerabilidade de execução remota de código (RCE) em jackson-databind , melhorou as práticas de segurança para urllib3 , um cliente HTTP popular para Python, e habilitou a autenticação de dois fatores (2FA) para minimist , um pacote JavaScript popular.

"A melhor maneira de financiar o código aberto não é especificamente a caridade", diz Alex Clark, um mantenedor de código aberto e criador do Pillow, um pacote popular de processamento de imagens para Python. Em vez disso, Clark acredita que o mercado precisa de empresas, como a Tidelift, para ficar entre a demanda e os desenvolvedores para pagar os mantenedores com a renda dos serviços que eles vendem.

Fundações de Código Aberto

Fundações sem fins lucrativos como a Linux Foundation, a CNCF, a Apache Software Foundation e a Eclipse Foundation fornecem recursos e bolsas de estudo para ajudar a sustentar projetos de código aberto. "Para muitos projetos, o modelo de fundação funcionou bem como um meio de suporte e financiamento", diz Suehle, da Apache Software Foundation.

As fundações também podem ajudar de maneiras mais indiretas, como mentoria, reconhecimento e suporte da comunidade, e fornecendo métricas para ajudar os proprietários de negócios a quantificar o impacto dos projetos e investimentos diretos. "As fundações ocupam uma grande parte do suporte do projeto além do financiamento direto", diz Brian Proffitt, gerente sênior de alcance comunitário no Open Source Program Office da Red Hat. "Para a Red Hat, dar suporte às muitas fundações diversas no ecossistema de software livre e de código aberto é uma das maneiras pelas quais podemos garantir que o máximo possível de projetos possa permanecer saudável e vibrante", diz ele.

Como o mantenedor de código aberto Seth Michael Larson vê, o melhor método para dar suporte ao código aberto é "pagar funcionários em tempo integral em fundações sem fins lucrativos para trabalhar em várias áreas do ecossistema com um escopo amplo". Isso poderia ajudar a preencher as lacunas em torno de segurança, processo, documentação, lançamentos e governança, ele diz, sem tirar os incentivos para que as pessoas continuem contribuindo em seu próprio tempo.

No entanto, muitos projetos críticos de código aberto não desejam ser abrigados em uma fundação, diz Suehle, por vários motivos. Precisamos encontrar maneiras de apoiá-los também, ela diz, acrescentando que vários projetos tentaram abordar essa questão ao longo dos anos, como o SustainOSS .

Ajuda Pública

Outra opção, e talvez a mais visionária, é reconhecer que o software de código aberto é um bem público e financiar o ecossistema por meio de dinheiro público em vez de suporte individual ou corporativo. "O que é necessário agora são regulamentações bem consideradas envolvendo as partes interessadas adequadas dos principais governos mundiais", diz o mantenedor Jordan Harband.

O Fundo Soberano de Tecnologia da Alemanha já está caminhando nessa direção, tendo acumulado cerca de € 10 milhões por ano (US$ 10,9 milhões) para investir em aproximadamente 30 projetos. Outros exemplos incluem o Fundo de Tecnologia Aberta do governo dos EUA e a proposta do governo do Reino Unido de estabelecer um fundo semelhante .

"O Fundo Soberano de Tecnologia da Alemanha é o melhor exemplo que posso pensar de dinheiro público sendo fornecido mais ou menos diretamente para mantenedores de código aberto com objetivos sociais mais amplos em mente", diz Harband. "Este é todo o propósito do governo — financiar as coisas que as empresas não têm visão de futuro o suficiente para justificar o financiamento."

De acordo com Serkan Holat, um pesquisador e desenvolvedor independente especializado em software de código aberto, problemas econômicos como a tragédia dos comuns e o problema do carona atualmente limitam as contribuições das empresas. "Se houver um recurso compartilhado, elas nunca saberão quanto contribuir de volta", diz Holat. Ele sugere um imposto de vendas dedicado sobre assinaturas de código fechado a ser redirecionado para financiar projetos críticos de código aberto público.

Muitos outros concordam que a infraestrutura de código aberto deve ser financiada publicamente, embora possam discordar sobre os detalhes. "A manutenção do FOSS deve ser financiada pelos governos em nome do contribuinte", escreve Matthew Hodgson para a The Matrix.org Foundation. Um White Paper do European Public Digital Infrastructure Fund chega a dizer que o suporte público pode ser "o único modelo de negócio viável" para serviços e ferramentas que demonstram a capacidade de entregar valor público.

Conteúdo Relacionado

O Rails 8 sempre foi um divisor de águas...
Os aplicativos da Web são uma pedra fundamental da...
Os desenvolvedores Java enfrentam uma variedade de erros relacionados...
Com várias décadas de experiência, adoro criar aplicativos corporativos...
A escalabilidade é um fator crítico quando se trata...
Ao trabalhar em um projeto de código aberto no...
A Inteligência Artificial (IA) tem se tornado cada vez...
A maioria das organizações enfrenta desafios ao se adaptar...
Quando nós, desenvolvedores, encontramos alguns bugs em nossos logs,...
A cibersegurança é um tópico cada vez mais importante...
A experiência do desenvolvedor (DX) é um tópico cada...
Ao relatar estatísticas resumidas para resultados de testes de...
Explorando as Engrenagens do Kernel Semântico Falei um pouco...
A arquitetura de software evoluiu drasticamente nas últimas décadas,...
Como você previne alucinações de grandes modelos de linguagem...
O conceito de "jardim digital" tem ganhado cada vez...
Retour au blog

Laisser un commentaire

Veuillez noter que les commentaires doivent être approuvés avant d'être publiés.