Dalla mia esperienza, non avrei speso un singolo minuto di sviluppo. Neanche un piccolo pezzo di codice. In questa fase, in cui il cliente non sa cosa vuole, è molto importante fare un buon lavoro di consulenza . È importante per loro quanto lo è per te.
Dietro ogni progetto, c'è un bisogno (a volte non è ovvio) relativo al business del cliente. Quindi, per chiarire bisogno , devi prima imparare il business il più possibile. Quindi sarai in grado di guidare il cliente verso una soluzione funzionale.
Durante l'apprendimento, fai attenzione al momento di differenziare ha bisogno e desidera . Quale esigenza del cliente potrebbe o non potrebbe essere uguale a quella richiesta dal cliente?
Durante l'analisi, se il cliente non prende decisioni, prendile tu stesso. Come consulente il tuo compito è dare consigli e condurre il processo.
Come ha sottolineato @Ewan, è più facile per i clienti prendere decisioni se c'è qualche scelta da fare. Offrire diverse alternative (esponendo i loro pro / contro), rende più facile il processo decisionale. Creare prototipi è un buon modo per fornire una panoramica di ciò che hai in mente per loro. Il cliente avrà il primo contatto (e sentimenti) su come stanno andando le cose.
Facendo questo esercizio di "creatività" vedrai rapidamente le luci e le ombre del progetto prima che diventino un problema.
Cerca di ottenere il maggior numero di feedback possibile dall'utente finale . Così tante volte la persona che chiamiamo "il cliente", non è chi utilizzerà il sistema . In tale situazione, riceverai un feedback migliore dal vero utente finale. Ti forniranno preziosi consigli su ciò di cui hanno bisogno. Identificare bene chi può fornire le giuste risposte alle tue domande ti aiuterà a soddisfare le aspettative del cliente.
Una volta che hai raccolto una buona serie di requisiti, inseriscili nel prototipo. Metodologie agili come SCRUM funzionano bene in questa fase. Fare sprint sul prototipo.
I prototipi verranno scartati / modificati lungo gli sprint. Puoi anche "guidare" il cliente a quello che fa per te. ;-). Alla ricerca di un accordo win-win.
Cerco di impedire ai manager di avviare lo sviluppo prima che i requisiti ben definito e misurabili siano stati firmati. In caso contrario, a partire da requisiti non definiti è destinato a fallire male. Un sacco di soldi e tempo saranno sprecati (senza alcuna garanzia di recuperarli) perché qualcuno ha deciso di implementare "il caos". Il caos e l'incertezza in cui vive il nostro cliente tanto amato e confuso.
È scioccante vedere le aziende i cui dipendenti fanno il loro lavoro ma non sono in grado di spiegare (ragionevolmente) a come .
È scioccante anche vedere quanti Project Manager non si preoccupano di questo problema, dicono semplicemente "si a tutti" o "iniziamo e vedremo cosa succede".
Infine, @Ewan ha nuovamente indicato il punto più importante.
Get the customer to sign off on the ones they want and implement.
Non dimenticare di definire chiaramente quali requisiti e condizioni devono essere soddisfatti per poter dire che il progetto è stato eseguito . Le condizioni di accettazione
Non c'è bisogno di dire perché.