Nel mio lavoro, eseguo la raccolta dei requisiti, l'analisi e la progettazione di soluzioni aziendali oltre alla codifica. Ci sono più sistemi e pacchetti software e ci si aspetta che gli sviluppatori lavorino su ognuno di essi, invece di essere assegnati ad apportare modifiche solo a 1 sistema oa pochi sistemi.
In che modo gli sviluppatori assicurano di aver acquisito tutti i requisiti necessari e risolto eventuali requisiti in conflitto?
Un esempio di questo tipo di scenario:
Bob lo sviluppatore è invitato a modificare il sistema di ticket dei problemi per un'ipotetica attività di riparazione di utilità. Si contraggono con una società di servizi pubblici per fornire questo servizio. Il vecchio sistema fornisce un meccanismo per un cliente esterno per creare un ticket che indica un problema con il servizio di utilità in un particolare indirizzo. Esiste un sistema di pianificazione e un sistema di fatturazione che dipende da questi dati. Il nuovo progetto di Bob è quello di modificare il sistema di posizionamento dei biglietti per consentire l'inserimento di più indirizzi da parte di un proprietario o di un altro cliente finale con proprietà multiple. Le fatture del sistema di fatturazione per biglietto, ma dovrebbero essere modificate in bolletta per indirizzo. Quali pratiche potrebbero aiutare Bob a scoprire che anche il sistema di fatturazione deve essere cambiato? In che modo Bob potrebbe scoprire quali altri sistemi della sua azienda potrebbero dover essere modificati per supportare le nuove modifiche \ modello di business? Diciamo che c'è una specifica documentata per ogni sistema coinvolto, ma ci sono molti sistemi e Bob non ha familiarità con tutti loro.
Fine dell'esempio.
Spesso ci troviamo in questo scenario e disponiamo di revisioni del design, ma la direzione attribuisce la responsabilità finale per qualsiasi difetto (processo aziendale o processo software) allo sviluppatore che sta facendo il disegno e il lavoro.
Alcune organizzazioni sembrano essere più brave di altre. In che modo riescono a rilevare e risolvere requisiti in conflitto o incompleti tra sistemi software?
Attualmente disponiamo di molte conoscenze tribali e solo pochi sviluppatori che comprendono l'intera catena aziendale e del software. Questo sembra altamente inefficace e porta a problemi a livello di requisiti.