Una delle lezioni più importanti nello sviluppo è sapere quando è il momento di fermarsi.
In genere, uno sviluppatore aggiunge funzionalità. Questo a sua volta ispira più idee. Quindi vengono aggiunte ulteriori funzionalità. Cioè, come hai detto, uno dei modi in cui un progetto diventa vaporware. Lo sviluppatore non vede mai il progetto come 'finito', quindi non viene mai rilasciato.
L'abitudine a cui vuoi entrare è smettere di pensare in termini di versione / versione come progetto "finito". Piuttosto, considera lo sviluppo come un processo a lungo termine. Pensa alle versioni come traguardi lungo il percorso verso ciò che un giorno spererai che il programma sia. Quindi, una versione / versione è solo un'istantanea di dove ti trovi nel processo a lungo termine ... un'istantanea che è stata completata e testata.
Quello che puoi fare, dal punto di vista pratico, è sederti e provare la tua prossima versione. Non deve essere terribilmente accurato. Annota i 3-5 nuovi principali pezzi di funzionalità che ritieni essenziali per la prossima versione. ( il numero effettivo di funzionalità può variare a seconda del tipo di app, senza contare le correzioni di bug o le modifiche minori della scheda grafica ) Lavora su quelle. Se trovi altre idee, va bene ... basta prendere appunti e implementarle nella seguente versione. Quando ricevi 3-5 elementi, la tua versione è pronta per la versione beta.
Quando avvio una nuova applicazione, di solito penso alla "visione" finale dell'app. Questo, per me, è quello che voglio nella versione 3 dell'app. Con quel punto di riferimento, ho un'idea di cosa renderà solida la versione 1 - solo le basi.
Riepilogo:
Ogni versione non deve essere la "visione" finale del progetto. Solo una pietra miliare verso quella visione.