Risposta più semplice. Smetterei di scrivere codice di qualsiasi tipo, fino a quando non avrà una specifica finale per quello che vuole ora.
Quindi devono dare la priorità a quell'elenco di funzionalità ecc., Per confermare quali elementi devono avere adesso e quali possono essere fatti in seguito ...
Usando le tue esperienze per determinare quale sia il tempo / costo di ogni funzione, e poi dire loro, se lo vogliono, ci vorrà x quantità di tempo e denaro.
Stai affrontando il grande crimine dell'ambito delle funzionalità, e continueranno continuamente ad aggiungere funzionalità, fino a quando nulla verrà mai fatto o fatto così male.
Dì loro una volta che avrai un elenco finale, che apporterai modifiche future, come preferiscono, ma devi concentrarti sui primi 15/20 che devono avere in questo momento.
Quindi, in base al tempo di completamento, di 'loro che dopo che questo sarà stato rilasciato, sarai aperto a discutere / fare brainstorming sulla prossima versione.
Una volta presa la decisione finale su cosa fare per la versione attuale, tutte le discussioni / idee / suggerimenti devono essere fermati al 100%.
Se ottiene idee all'infinito, digli di scriverle, nel loro elenco di funzionalità per la prossima versione, e di concentrarti sulla fornitura delle funzionalità più importanti che desiderano in questo momento.
Se continuano a perdere tempo, continua a cambiare idea. Quindi smetterei di lavorare sul progetto e di lavorare su altri progetti, fino a quando non avranno finalizzato le loro decisioni.
È difficile da fare, ma il creep di portata delle caratteristiche è così distruttivo di tempo, energia, motivazione e pensiero chiaro.