Lista de verificação para iniciar um projeto de código aberto [fechado]

51

Iniciar um projeto de código aberto não é apenas lançar o código-fonte em algum repositório público e, em seguida, ficar satisfeito com isso. Você deve ter documentação técnica (além do usuário), informações sobre como contribuir, etc.

Se criar uma lista de verificação sobre coisas importantes a serem feitas, o que você incluiria nela?

Anto
fonte
11
+1 boa pergunta. Posso recomendar: gawande.com/the-checklist-manifesto
JeffO
2
Eu recomendo o livro de Karl Fogel (um dos autores originais do subversion) Producing Open Source Software - como executar um projeto bem-sucedido de software livre É um livro da O'Reilly.
Michael
A produção de software de código aberto de Karl Fogel deve ajudá-lo com isso. O livro está disponível inteiramente online.
Coyote21

Respostas:

34

A coisa mais importante é:

  • use você mesmo o projeto e coloque-o em um estado útil em que você goste de usá-lo. verifique se o projeto funciona e é útil.

As coisas que eu colocaria nas prioridades iniciais são:

  • tem um simples "o que é isso?" site com links para algum fórum de discussão (por email ou bate-papo) e para o repositório de código-fonte
  • verifique se o código compila e geralmente funciona, não cometa correções em andamento ou meia-bunda no ramo principal que quebram as coisas, porque o trabalho de outras pessoas seria interrompido
  • coloque um arquivo de licença no repositório de códigos com uma licença conhecida e marque o proprietário dos direitos autorais (provavelmente você ou sua empresa). não omita a licença, crie uma licença ou use uma licença obscura.
  • tenha instruções sobre como contribuir, digamos em um arquivo HACKING ou inclua no seu README. Isso deve incluir para onde enviar patches, como formatar patches, regras de indentação de código, quaisquer outras convenções importantes do projeto
  • tem instruções sobre como relatar um bug
  • seja útil na lista de e-mail ou em qualquer fórum

Depois dessas prioridades, eu diria:

  • documentação (isso economiza o trabalho na lista de e-mails ... fazer um FAQ a partir de suas postagens na lista é um começo simples)
  • tente fazer as coisas de uma maneira "normal" (não invente seu próprio sistema de construção ou use um sistema estranho, não use recuo de 1 espaço, não seja irritantemente peculiar em geral porque isso adiciona curva de aprendizado)
  • promova seu projeto. marketing marketing marketing. Você precisa de alguns blogs, sites de notícias e coisas do tipo para cobrir você e, quando as pessoas aparecerem interessadas, é necessário conversar com elas e garantir que elas funcionem e examinar seus patches. Talvez mencione seu projeto nos fóruns de projetos relacionados.
  • revise e aceite sempre os patches o mais rápido possível. Imediatamente é perfeito. Mais de alguns dias e você está perdendo muitas pessoas.
  • responda sempre ao e-mail sobre o projeto o mais rápido possível.
  • crie uma atmosfera acolhedora / positiva / divertida. não seja um idiota. diga por favor e obrigado e distribua elogios. afugentar qualquer imbecil que aparecer e começar a envenenar a comunidade. tente conhecer pessoas pessoalmente quando puder e forme laços.
Havoc P
fonte
E quanto a possíveis problemas legais? Como garantir que a implementação não contenha inadvertidamente um algoritmo patenteado?
Den
Infelizmente, não é possível determinar isso. Dado um pedaço de código, não há como saber quais termos de pesquisa você precisaria para localizar a (s) patente (s) relevante (s), que é uma das razões pelas quais as patentes de software são um problema. Às vezes, você sabe que existe uma patente que se aplica, mas nunca ouvi falar de uma maneira de ter certeza de que não uma patente que se aplique. Difícil de provar um negativo. As patentes são um tópico grande o suficiente para que elas provavelmente devam ser suas próprias perguntas ...
Havoc P
17

Para iniciantes, abaixe a barreira de entrada , isso significa:

  • facilite a instalação,
  • facilite a modificação,
  • facilite a localização do seu projeto,
  • basta facilitar tudo o que você gostaria de fazer.

Quão?

  • Responda a todas as perguntas que você puder pensar em sua documentação,
  • Crie um sistema de compilação fácil de usar,
  • Limpe seu código, ninguém gosta de trabalhar no código de espaguete,
  • Faça algo que as pessoas precisam.
dan_waterworth
fonte