Ich habe die Erfahrung gemacht, dass ein Gleichgewicht erreicht werden muss.
Im Moment arbeite ich (im Sinne der Beantwortung von Fragen und der Bereitstellung von Entwicklungsvorschlägen, ohne Code zu sehen) mit einem Entwickler, der ein sehr aufregendes FOSS-Projekt erstellt, das den von mir geschriebenen Code verwendet. Die Veröffentlichung wurde wiederholt verzögert, da Konstruktionsänderungen vorgenommen wurden, die das Projekt auf lange Sicht verbessern werden, jedoch erhebliche Änderungen des Codes erforderlich machen, der bereits geschrieben wurde und bereits "funktionierte". Wäre eine funktionierende, aber unvollständige Veröffentlichung gemacht worden, sobald es etwas zu zeigen gab, könnten Ideen für Änderungen (und aktuelle Patches) von der breiteren Community, die an diesem Projekt interessiert ist, kommen und es eher beschleunigen als haben die Probleme tauchen nacheinander langsam auf, Wie der Entwickler darüber nachdenkt und um Feedback zum Design von mir und anderen interessierten Mitgliedern der Community bittet. Von diesem Standpunkt aus bin ich also ein großer Befürworter von "Früh freigeben, oft freigeben".
Auf der anderen Seite können Releases mit geringer Qualität dazu führen, dass ein neues Projekt schlecht aussieht, bevor es überhaupt in Betrieb genommen wird. Einige Fallstricke, die ich gesehen habe, sind:
- Gerüstbäume mit Schnittstellendefinitionen, aber ohne Code.
- Code, der nur für den Entwickler erfolgreich kompiliert werden kann.
- Keine Anweisungen zum Erstellen / Ausführen des Programms.
- Keine Dokumentation darüber, welche Aspekte voraussichtlich funktionieren.
- Unklare Beschreibung dessen, was das Programm überhaupt tut oder tun wird.
- Fehlender Nachweis der Nützlichkeit.
Zum Schluss denke ich an Dinge wie:
- Compiler / Interpreter, der nicht einmal ein Hallo-Welt-Programm kompilieren / ausführen kann.
- Emulator, der zumindest kein Beispielprogramm ausführen oder auf andere Weise demonstrieren kann, dass er etwas tut.
- Bildverarbeitungs-Tool, das nur das Laden und Speichern des unveränderten Bildes ermöglicht.
- Spiel mit nichts als einem Titelbildschirm.
Diese Art von Problemen führt zu einem "Vaporware" -Image, das schwer zu verwackeln ist, es sei denn, Sie sind sehr offen für den Mangel an Arbeitscode.
Schließlich machen Ihre Versionsnummern Sinn. Nennen Sie Ihr Projekt nicht "1.0", bis es das tut, was die Benutzer ohne Absturz erwarten. Ich hatte schon immer Glück damit, Versionsnummern um "0.5" für die erste Veröffentlichung zu verwenden, aber ich habe auch Dinge wie "0.1" oder "0.10" gesehen, die Sinn machen.