Ah, una delle grandi domande della vita. Ci sono molti modi per rispondere a questa domanda e la risposta che funziona per te dipenderà interamente da:
- L'abilità e la professionalità del team di sviluppo
- La natura del lavoro di sviluppo
- In che modo i clienti interagiscono con il team di sviluppo
- Come viene finanziato il team di sviluppo
- Il carattere del gestore / proprietario dell'azienda responsabile del team di sviluppo
- Le ultime parole chiave di gestione sullo sviluppo del software
Ohh, chi sto prendendo in giro, la lista è infinita.
Lo sviluppo del software viene sempre fatto da qualche parte sullo spettro tra il caos completo e una metodologia di sviluppo definita che ha alcuni difetti, ma è come abbiamo deciso di farlo qui. La maggior parte degli sviluppatori ritiene che sia più vicino alla fine del caos e i manager pensano che segua la metodologia
I passaggi che hai descritto fanno parte di diverse metodologie, ma non sono appropriati per essere usati in altre situazioni. Prendiamo ad esempio l'azienda start-up che lancia audacemente un nuovo prodotto in un nuovo settore di mercato senza clienti esistenti. È molto difficile scrivere storie utente chiare e definitive quando ancora non sai chi saranno i tuoi clienti o cosa si aspettano che il tuo servizio faccia nel tipo di dettaglio necessario per farlo correttamente.
Altri ambienti, sono molto formali, questo è l'insieme di requisiti, che è ciò che consegnerai, e il mese scorso è quando lo avrai consegnato. (Altrimenti caratterizzati come software standard del settore - costa troppo per lo sviluppo, non fa quello che voleva il cliente finale, pieno di bug e consegnato anni dopo)
In realtà, la soluzione pratica è questa:
Ci sono una serie di approcci di processo che hanno punti di forza e di debolezza. Puoi scegliere tra questi approcci di quali aspetti rientrano nel business e i vincoli del team su come funziona il mondo intorno al team di sviluppo, e sviluppare di conseguenza.
Se il tuo cliente ha grandi esigenze, specifiche, ecc., allora è più probabile che tu stia sviluppando lungo un approccio a cascata.
Se il tuo cliente è focalizzato sui problemi, 'risolva questo problema per me' allora è molto più probabile che tu stia facendo uno sviluppo di prototipazione agile o rapido.