Como lidar com o crescimento de um projeto de código aberto?

11

Estou envolvido em ajudar no suporte a um projeto de código aberto há um ou dois anos, e o projeto ganhou muita popularidade desde que comecei. O programa vê mais de 100.000 downloads por semana e é usado por mais de 60% das pessoas em seu campo principal, por isso estamos obviamente felizes com o fato de as pessoas gostarem tanto de usá-lo.

No entanto, o problema é que a base de desenvolvimento e suporte não cresceu tão rápido, e estamos começando a sofrer algumas dores de crescimento. O pequeno grupo de desenvolvedores (o principal desenvolvedor em particular) está ficando cada vez mais fraco, e os voluntários do suporte técnico estão começando a ficar esgotados.

Até agora, praticamente houve um monte de caras no IRC, escrevendo este programa e ajudando os usuários. Não há organização 501 (c) (3) ou LLC ou algo assim.

No momento, não temos um rastreador de bugs ou banco de dados de problemas muito formal (temos um fórum com uma categoria dedicada a relatórios de bugs), o que admito ser algo que poderíamos melhorar para obter mais desenvolvedores. Mas suponho que minha verdadeira pergunta é: como fazer a transição de um pequeno projeto pessoal para uma coisa real ? Como os garotos grandes como GIMP, FFmpeg, Blender etc. lidaram com essa transição?

Além disso, existe uma maneira de oferecer compensação com um projeto FOSS? Suponho que as doações ajudem, mas isso só vai tão longe ... parece estranho ganhar a vida com software livre, mas se o programa continuar melhorando, não vejo como podemos continuar sem compensar as pessoas para trabalho em tempo integral.

Basicamente, estamos tendo algumas dores de crescimento e nos sentindo "grandes demais para nossas calças". O que podemos fazer para gerenciar essa transição e não nos cansar de fazer muitas coisas ao mesmo tempo?

Ben Torell
fonte
7
Para começar, primeiro, com um rastreador de erros adequado, nenhum código aberto sobreviverá a menos que a equipe principal seja muito boa. Verifique também se a direção dos recursos é clara e não se arrasta.
ratchet freak
4
Se você não se importa de me perguntar, qual é o projeto?
21714 Robert
2
Eu hesito em nomear o projeto, em parte porque é um pouco assustador sair por aí e dizer às pessoas "Ei, não temos muita certeza do que estamos fazendo e precisamos de ajuda!" Além disso, não queria que este post fosse um anúncio de ajuda para o projeto. Tenho certeza de que algumas investigações superficiais da Internet o revelariam. : /
Ben Torell

Respostas:

13

O estágio em que o seu projeto está é realmente emocionante e crucial, é muito fácil travar e queimar (fora), mas é também onde você pode tomar algumas decisões cruciais que, se tudo funcionar, ajudarão a garantir a viabilidade a longo prazo.

Aqui estão algumas sugestões.

  • Leia o ótimo livro de Karl Fogel, Producing Open Source Software . Ele cobre a maioria dos principais problemas imediatos. Embora eu não concorde com tudo o que ele diz, isso é apenas opinião. Ele entende totalmente o mundo do código aberto.

  • Como o @Ross Patterson disse, é absolutamente necessário configurar um rastreador e uma lista de discussão ou algo semelhante para evitar o caos total. O que você está usando para controle de versão? Se você está no github, pode começar com o rastreador ou integrar-se ao Jira ou algo semelhante ou, se quiser, pode ir ao SourceForge por enquanto e usar a infraestrutura gratuita. Você não diz de onde as pessoas estão baixando, mas quer ter certeza de que está configurado de maneira confiável e com boa contagem de downloads.

  • Não há razão para que você não possa ganhar a vida com software livre, se é isso que você quer, muitas pessoas fazem isso, mas ele assume muitas formas diferentes. Você precisa decidir como deseja fazer isso antes de tomar as principais decisões organizacionais. Por exemplo, você pode e provavelmente deve criar uma corporação para manter a marca comercial e os direitos autorais, que também fornecerão alguma proteção legal, se necessário. No entanto, você precisará de um presidente ou tesoureiro. Que tipo de organização deve ser (sem fins lucrativos ou com fins lucrativos, LLC, cooperativa, parceria) realmente depende de seus objetivos e deve ser discutida com um bom advogado. Se você fosse aceito pela Software Freedom Conservacy, eles o ajudariam a descobrir isso e também ajudariam nas questões contábeis, fiscais e assim por diante. Existem também algumas outras incubadoras de software livre, comoSoftware de interesse público . Além disso, acho que o Outercurve é uma possibilidade.

  • Em termos de como você ganha a vida, isso vai depender muito da natureza do seu projeto. É também por isso que eu não pularia imediatamente para dizer que você precisa de um 501c3 (e você pode não conseguir ... consulte o projeto Yorba). O Blender se sustenta principalmente vendendo documentação. Outros projetos têm ecossistemas de pequenas empresas e / ou consultoria em torno deles e os desenvolvedores ganham a vida com isso. Outros projetos têm modelos de licenciamento duplo, então eles vendem versões suportadas (é por isso que o MySQL vendeu e pode ser vendido para a Sun e, é claro, existe o RedHat) e tem um release de comunidade separado. Outros, como o WordPress, têm a versão hospedada como modelo de negócios. Portanto, existem todos os tipos de opções e você precisa descobrir o que faz sentido para você e sua comunidade.

  • Escolha alguém agora para ser seu gerente de comunidade para começar. E leia o livro de Jono Bacon depois de terminar o de Fogel.

  • Decida agora em um roteiro que faça sentido para sua equipe principal; seja realista e não seja intimidado por pessoas que não estão contribuindo. O roteiro não significa apenas planos e recursos técnicos, é sobre onde você quer ir como um projeto.

  • Não tenha vergonha de falar com outros projetos que você admira ou que estão no mesmo espaço. Descubra o que funcionou e o que não funcionou para eles. Basta enviar um email. Além disso, você pode ir a alguns dos eventos gerais de código aberto e apenas conversar com outros projetos. No geral, as pessoas foss são bastante úteis.

Boa sorte, é uma coisa emocionante estar nesta fase.

Elin
fonte
Obrigado! O código já está hospedado no Github (que também é onde os lançamentos estão hospedados), mas realmente não gostamos do rastreador de problemas do Github ... um dos caras da equipe tem experiência com o Mantis, então acho que vamos usar naquela. Também ouço você sobre o roteiro ... no mínimo, ter um roteiro público será bom apenas para indicar aos usuários que clamam por recursos específicos, para que possamos dizer a eles quando esses recursos chegarão em relação a outros recursos. Eu estava explorando o Outercurve hoje à noite e vou conferir os outros também, assim como os livros. Obrigado pelo incentivo!
Ben Torell
1
@BenTorell Eu digo a qualquer um que pergunte: "Todo rastreador de bugs é péssimo, a única pergunta é: 'Qual deles é menos ruim em relação aos seus processos?'".
Ross Patterson
Ross está totalmente certo. Eu realmente não gosto do rastreador do Github por várias razões, mas principalmente pela falta de ACL real. Concordo em encontrar um que corresponda aos seus processos. Muitos rastreadores não funcionam tão bem em projetos voluntários, porque eles fazem todos os tipos de suposições que fazem sentido em ambientes comerciais, mesmo no vocabulário que eles usam. Obviamente, falar sobre o que seus processos realmente são é um bom exercício. Não tente usar um rastreador para fazer alterações irreais em seus processos. As coisas são realmente diferentes quando são todos voluntários.
Elin
3

As realmente grandes meninos criados todos os mecanismos que você sabe sobre - eles correm farms de servidores grandes, eles correm (às vezes escrita) rastreadores de bugs e sistemas de construção, etc. Eles têm, frequentemente, 501 (c) 3 fundações que detêm os direitos autorais, etc. Eles receba grandes doações corporativas e as empresas emprestam a eles desenvolvedores etc. Você sabe, coisas GRANDES.

Os meninos não tão grandes recebem muita ajuda de outros lugares. O Software Freedom Conservancy , por exemplo, ajudará projetos de tamanho médio a acertar seus fundamentos legais e facilitará doações. Atualmente, existem muitas opções para hospedagem de código e rastreamento de erros - diabos, qualquer pessoa pode obter um site do GitHub. E você descobrirá que muitas empresas de software de pequeno a médio porte doarão licenças para seus produtos proprietários para dar suporte a projetos de código aberto organizados - especialmente quando, de alguma forma, eles se alinham aos seus negócios.

Ross Patterson
fonte
3
Não estou tentando ser pedante e tenho 100% de certeza de que você não quis dizer isso de maneira negativa, mas realmente não ajuda a aumentar a participação no código aberto para se referir às pessoas envolvidas como meninos. Apenas algo para se pensar; Eu sei que é uma frase que as pessoas usam.
Elin
@Elin Apenas respondendo à pergunta: "Como os garotos grandes como GIMP, FFmpeg, Blender, etc. lidaram com essa transição?"
Ross Patterson
Ah, e +1 no comentário - precisamos ser lembrados periodicamente. Esse negócio é muito centrado no sexo masculino.
Ross Patterson
Obrigado e sim, eu não notei essa referência no post original.
Elin
Sim, eu estava apenas usando "garotos grandes" como uma frase ... Acho que não pensei nisso dessa maneira, mas posso entender o que você quer dizer. Obrigado pelo conselho! Minha principal prioridade agora é criar um rastreador de problemas real que os colaboradores possam ler e, com sorte, selecionar um problema para resolver (no momento, tudo o que temos é um quadro confuso do Trello). Como eu disse ao @Elin, estou me inclinando para o Mantis, em vez do sistema de problemas do Github. Suponho que precisamos apenas de algo neste momento.
Ben Torell