In che modo è possibile modellare requisiti aziendali altamente specifici, che non hanno precedenti nel sistema? Prendiamo ad esempio il seguente requisito:
When a purchase order contains N lines, is over X value in total and is being recorded against project Y, an email needs to be sent to persons A and B with the details
Questo requisito integra altri requisiti relativi agli ordini di acquisto, ma entra in una data molto successiva in risposta ad alcuni problemi in corso altrove nel settore.
Le persone A e B non fanno parte di alcun ruolo o gruppo nel sistema e non hanno alcuna responsabilità specifica; sono semplicemente le due persone che l'azienda ha nominato per ricevere queste e-mail in questo caso molto specifico. I progetti sono anche guidati dai dati, quindi il progetto Y non ha proprietà speciali per distinguerlo da qualsiasi altro progetto. L'unico modo per identificarlo è confrontare il suo identificatore con un numero magico.
Come si può procedere a modellare questo tipo di caso senza introdurre troppa complessità aggiuntiva? A questo punto posso pensare che ci siano un paio di opzioni.
-
Esegui i controlli e le azioni in linea con il codice esistente. Qui troviamo il punto corretto nel codice, controlla le condizioni nel requisito e invia le e-mail agli indirizzi codificati. Naturalmente questo è irto di problemi. Per lo meno smette di funzionare se una di queste persone lascia o cambia il suo indirizzo email. Nel peggiore dei casi, è necessario assicurarsi che tutti i test e i dati dei test siano consapevoli del fatto che vengono intraprese azioni aggiuntive per un determinato insieme di criteri.
-
Introduci un qualche tipo di sistema per gli eventi. Qui introduciamo un sistema di eventi, in modo che possiamo reagire ad alcuni eventi e soddisfare il requisito al di fuori del solito percorso di esecuzione. Questo suona come una soluzione più pulita rispetto all'opzione 1, ma il lavoro richiesto alla fine probabilmente è un po 'eccessivo per questo piccolo requisito. Detto questo, averlo a posto consente al sistema di gestire questo tipo di requisiti specifici in modo coerente e semplice in futuro.
Esistono altri (buoni / migliori) modi per gestire requisiti altamente specifici? Intendo dire altro che dire alle altre parti del business no!