Minha experiência é que há um equilíbrio a ser alcançado.
No momento, estou trabalhando (no sentido de responder perguntas e fornecer sugestões de desenvolvimento, sem ver nenhum código) com um desenvolvedor que está produzindo o que parece ser um projeto FOSS muito emocionante que utiliza o código que eu escrevi. O lançamento público foi repetidamente atrasado pelas realizações de alterações no design que tornarão o projeto muito melhor a longo prazo, mas que exigem reescritas significativas de código que já foram escritas e que já estavam "funcionando". Minha opinião é que, se um lançamento imperfeito, mas imperfeito, tivesse sido feito assim que houvesse algo a ser mostrado, as idéias para mudanças (e correções reais) poderiam ter surgido da comunidade em geral que estava interessada neste projeto, acelerando-o para a frente em vez de ter os problemas aparecem lentamente, um de cada vez, enquanto o desenvolvedor pensa neles e pede feedback de design de mim e de outros membros interessados da comunidade. Portanto, desse ponto de vista, sou muito defensor da "liberação antecipada, liberação frequente".
Por outro lado, lançamentos de baixa qualidade podem fazer com que um novo projeto pareça ruim antes mesmo de decolar. Algumas armadilhas que eu já vi incluem:
- Árvores de esqueleto com definições de interface, mas sem código.
- Código que não é compilado com êxito para ninguém além do desenvolvedor.
- Nenhuma instrução sobre como criar / executar o programa.
- Nenhuma documentação de quais aspectos podem funcionar.
- Descrição pouco clara do que o programa faz ou fará.
- Falta de qualquer demonstração de utilidade.
Para o último ponto, estou pensando em coisas como:
- Compilador / intérprete que não pode nem compilar / executar um programa do tipo hello-world.
- Emulador que não pode pelo menos executar um programa de amostra de algum tipo ou demonstrar que está fazendo alguma coisa.
- Ferramenta de processamento de imagem que não pode fazer nada além de carregar e salvar novamente a imagem não modificada.
- Jogo com nada além de uma tela de título.
Esse tipo de problema leva a uma imagem de "vaporware" que pode ser difícil de abalar, a menos que você esteja muito aberto sobre a falta de código de trabalho para começar.
Por fim, faça sentido os números de versão. Não chame seu projeto de "1.0" até que ele faça o que os usuários esperam que ele faça sem travar. Eu sempre tive sorte com o uso de números de versão em torno de "0,5" para o lançamento público inicial e a partir daí, mas também vi coisas como "0,1" ou "0,10" que fazem sentido.