Attualmente il ciclo di vita dello sviluppo del software seguito nella società IT a cui lavoro è:
-
Il "Business" funziona con un solution manager per creare un documento sui requisiti aziendali
-
Il gestore soluzioni lavora con il Program manager per creare una specifica funzionale
-
Il PM collabora con il responsabile dell'ingegneria per sviluppare un piano di rilascio e con il team di ingegneri per lo sviluppo di specifiche tecniche
-
Se ci sono dei chiarimenti richiesti, gli sviluppatori contattano il PM che contatta il solution manager che contatta l'azienda e al contrario introduce una latenza di quasi 24 ore e enormi catene di e-mail per qualsiasi chiarimento
-
Quando vengono fatte le specifiche tecniche, è passato quasi un mese avanti e indietro
-
Ora, 2 settimane passano allo sviluppo mentre il test scrive i casi di test
-
Il codice viene abbandonato formalmente per il test, il test inizia a generare errori. Anche se esiste una causa principale per 10 problemi diversi, ed è facilmente risolvibile, gli sviluppatori non sono autorizzati a fornire codice nuovo da testare per la prossima settimana. Dopo 2-3 gocce per testare il codice viene dato al team ops come una "goccia d'oro"
(2 mesi passati dall'inizio)
- Il team operativo ora distribuirà il codice in un ambiente di staging. Se è stabile per una settimana, sarà promosso a UAT e dopo 2 settimane sarà promosso a prod. Se ci sono errori trovati qui, bene, la richiesta di un visto richiede meno documenti
Questo intero processo viene seguito anche se un singolo report SSRS deve essere rilasciato.
In che modo altre aziende elaborano tali requisiti? Mi chiedo il motivo per cui l'azienda non può semplicemente abbandonare i requisiti agli sviluppatori, creare e implementare gli sviluppatori in UAT, esporli al business che solleva bug funzionali e dopo averli risolti a promuovere. (anche per cose più complesse)