Una delle lezioni più importanti nello sviluppo è sapere quando è il momento di smettere.
Ciò che accade in genere è che uno sviluppatore aggiunge funzionalità. Ciò a sua volta ispira più idee. Quindi vengono aggiunte più funzionalità. Questo è, 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 che vuoi prendere è quella di smettere di pensare in termini di una versione / rilascio come un progetto "finito". Piuttosto, guarda allo sviluppo come un processo a lungo termine. Pensa alle pubblicazioni come pietre miliari lungo il percorso verso ciò che un giorno speri sarà il programma. Pertanto, una versione / rilascio è solo un'istantanea di dove ti trovi nel processo a lungo termine ... un'istantanea che è stata ben completata e testata.
Quello che puoi fare, sul lato pratico, è sederti e specificare la tua prossima versione. Non deve essere tremendamente accurato. Annota le 3-5 nuove principali 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 alla gui ) Lavora su quelle. Se ti vengono in mente altre idee, va bene ... prendi appunti e implementali nella seguente versione. Quando ottieni questi 3-5 articoli, la tua versione è pronta per la beta.
Quando avvio una nuova applicazione, in genere penso alla "visione" finale dell'app. Questo, per me, è quello che voglio nella versione 3 dell'app. Con quel benchmark, ho un'idea di ciò che renderà solida la versione 1 - solo le basi.
Sommario:
Ogni versione non deve essere la 'visione' finita del progetto. Solo una pietra miliare verso quella visione.