Mi experiencia es que hay que lograr un equilibrio.
En este momento, estoy trabajando (en el sentido de responder preguntas y proporcionar sugerencias de desarrollo, sin ver ningún código) con un desarrollador que está produciendo lo que parece ser un proyecto FOSS muy emocionante que utiliza el código que he escrito. El lanzamiento público se ha retrasado repetidamente debido a la realización de cambios en el diseño que harán que el proyecto sea mucho mejor a largo plazo, pero que requieren reescrituras significativas de código que ya se ha escrito y que ya estaba "funcionando". Mi opinión es que, si se hubiera realizado una versión funcional pero imperfecta tan pronto como hubiera algo que mostrar, las ideas para los cambios (y los parches reales) podrían haber surgido de la comunidad en general que está interesada en este proyecto y acelerarlo en lugar de tener los problemas surgen lentamente, uno a la vez, mientras el desarrollador piensa en ellos y solicita comentarios de diseño de mí y de otros miembros interesados de la comunidad. Desde este punto de vista, soy un gran defensor de "liberar temprano, liberar a menudo".
Por otro lado, los lanzamientos de baja calidad pueden hacer que un nuevo proyecto se vea mal incluso antes de que despegue. Algunas trampas que he visto incluyen:
- Esqueleto de árboles con definiciones de interfaz pero sin código.
- Código que no se compila correctamente para nadie más que el desarrollador.
- No hay instrucciones sobre cómo construir / ejecutar el programa.
- No hay documentación de qué aspectos se espera que funcionen.
- Descripción poco clara de lo que el programa hace o hará.
- Falta de cualquier demostración de utilidad.
Para el último punto, estoy pensando en cosas como:
- Compilador / intérprete que ni siquiera puede compilar / ejecutar un programa tipo hello-world.
- Emulador que al menos no puede ejecutar un programa de muestra de algún tipo o demostrar que está haciendo algo.
- Herramienta de procesamiento de imágenes que no puede hacer nada más que cargar y volver a guardar la imagen sin modificar.
- Juego con nada más que una pantalla de título.
Este tipo de problemas se presta a una imagen de "vaporware" que puede ser difícil de sacudir a menos que sea muy abierto sobre la falta de código de trabajo para empezar.
Finalmente, haga que sus números de versión tengan sentido. No llame a su proyecto "1.0" hasta que haga lo que los usuarios esperan que haga sin fallar. Siempre he tenido suerte con el uso de números de versión alrededor de "0.5" para el lanzamiento público inicial y desde allí, pero también he visto cosas como "0.1" o "0.10" que tienen sentido.