Lavoro per un'azienda di sviluppo software in cui il lavoro di sviluppo è stato affidato a noi. Il team on shore gestisce l'assistenza e parla direttamente con i clienti. Non parliamo mai direttamente con i clienti, parliamo solo di persone del team on shore, che parlano direttamente con i clienti.
Quando i requisiti arrivano, il team on shore parla con i clienti e crea i documenti dei requisiti e ci informa. Realizziamo documenti di progettazione dopo aver studiato i requisiti (seguiamo il modello tradizionale a cascata).
Ma c'è un problema nell'intero processo: nessuno nel team off-shore o on-shore capisce completamente la funzionalità dell'applicazione. Sappiamo solo che si tratta di una grande e complessa app Web che gestisce l'elaborazione complessa degli ordini, la gestione dei cataloghi, la gestione delle campagne e altre attività. Lottiamo con il documento di progettazione poiché i requisiti non sarebbero chiari. Quindi entra in una serie di domande / risposte avanti e indietro tra il team on shore, il team offshore e i clienti. Spesso ci viene detto di comprendere la funzionalità dal codice. Ma di solito non è fattibile in quanto la base di codice è enorme e anche la comprensione di una semplice voce di menu richiede giorni se non settimane. Abbiamo provato a dire ai clienti di darci il trasferimento delle conoscenzesull'applicazione ma senza risultati. Il nostro responsabile spesso ci dice di iniziare a scrivere codice anche se il documento di progettazione non è completo o i requisiti non sono chiari. Inizieremo codificando la parte dei requisiti che sembra chiara e aspetteremo il resto.
Questo di solito ritarderebbe la distribuzione di un mese. In casi estremi avremmo errori molto bassi nello sviluppo e nella produzione, ma i clienti direbbero che non è quello che hanno chiesto. Ciò darebbe inizio a un gioco di colpa e a una serie di richieste di modifica e finiremmo per sviluppare qualcosa di molto diverso.
La mia domanda è: come faresti a lavorare allo sviluppo se non conosci completamente la funzionalità dell'app?
AGGIORNARE
La metodologia di sviluppo non è davvero la mia scelta e non sono il capo del mio team. È così che è iniziato. Ho cercato di dire alla gente i vantaggi di Agile ma senza risultati. Inoltre, non credo che il mio team abbia la mentalità necessaria per lavorare in un ambiente agile.