Chi sono gli esperti del dominio?

4

Nel Domain-Driven Design si parla molto degli esperti del dominio. Sono quelli che conoscono il dominio e che dovrebbero essere in contatto con lo sviluppatore per costruire il linguaggio ubiquitario e quindi il modello di dominio.

L'unico problema che ho è che da un punto di vista pratico non so chi siano gli esperti di dominio: sono gli utenti finali? Sono le persone che chiedono lo sviluppo del software? Sono persone a caso che si occupano del problema risolto dal software?

Da un punto di vista pratico, chi sono gli esperti del dominio e dove dovrei cercarli quando costruisci un software?

    
posta user1620696 07.01.2017 - 17:26
fonte

3 risposte

10

Che cos'è un esperto di dominio?

Quando sviluppi software utilizzando Domain Driven Design , l'obiettivo principale dovrebbe essere il modello di dominio, ovvero il dominio in cui verrà utilizzato il software.

Facciamo l'esempio di un software di contabilità. Il dominio è la contabilità e per costruire il tuo modello di dominio, devi identificare gli oggetti del dominio (ad esempio conti, debito, credito, registrazioni, libro mastro, ...) e le regole che li governano (ad esempio "in un post, la somma di tutti i debiti devono sempre essere uguali alla somma di tutti i crediti ", o" una volta effettuata una registrazione in un libro mastro, non ti è mai permesso cancellarla ", o" per ogni pubblicazione, ci deve essere una traccia di controllo di chi ha pubblicato quando ").

Per sviluppare il tuo modello (e il tuo software attorno ad esso), devi ottenere la conoscenza del dominio . Questa conoscenza potrebbe essere estratta dalle fonti disponibili (libri, manuali di procedure commerciali, ...), ma per farlo bene , hai bisogno di un esperto di dominio (a volte chiamato a soggetto esperto di materia ).

Quali sono gli esperti del dominio?

Nell'esempio di contabilità, l'esperto di dominio sarebbe probabilmente un contabile. Lui / lei potrebbe probabilmente essere o diventare un futuro utente del sistema (alcuni lo chiamano " utente chiave "). Ma in altri casi, potrebbe essere un esperto di business che non utilizzerà mai il sistema (ad esempio un ingegnere di produzione conosce perfettamente la linea di produzione e il processo di produzione, mentre i futuri utenti saranno gli operatori di produzione).

Ricorda che non tutti gli utenti saranno esperti di domini. Un esperto di dominio deve avere una certa autorità sul suo dominio, in modo da poter verificare con lui / lei la validità del modello di dominio progettato.

Ultimo ma non meno importante, per molti sistemi potresti aver bisogno di diversi esperti di dominio per coprire l'intero spettro del dominio, perché nessuno può sapere tutto (ad esempio per un ERP ci vogliono esperti di dominio di tutta la società: vendite , approvvigionamento, contabilità, produzione, magazzino, ...).

Dove trovare gli esperti di business?

È difficile dare una risposta universale. Posso solo dirti cosa ha funzionato per me: penso che il modo migliore per trovarli sia chiedere al cliente il tuo futuro sistema.

Chiedi un esperto che possa descrivere cosa deve fare il sistema, chi può spiegare come funziona l'azienda nel campo considerato e chi potrebbe rispondere alle domande più complesse che potresti avere sull'argomento.

Chiedere a qualcuno che ha l'autorità di approvare gli orientamenti e le scelte su come il software si adatta alle esigenze del dominio.

Letture aggiuntive:

risposta data 07.01.2017 - 19:30
fonte
1

Per me una formazione accademica adeguata e una notevole esperienza lavorativa sul campo. Altri lavoratori vengono da loro per un consiglio. Non sono solo esperti per autorità.

Hai anche bisogno che qualcuno capisca la differenza tra un requisito e un design. Per la maggior parte dei programmatori è naturale, ma si ottengono utenti che non possono realmente astrarre dalla progettazione ai requisiti. Non possono parlare di dati, relazioni dati e regole aziendali senza parlare di un pulsante.

Per un prodotto in casa, poi qualcuno da withing. Per un prodotto commerciale generale, alcuni che hanno lavorato in più di una società.

    
risposta data 07.01.2017 - 21:42
fonte
0

Esperienza personale:

Per me, gli esperti di dominio sono le persone che useranno gli strumenti che costruisco.

Non possono progettare uno strumento o un linguaggio specifico del dominio - questa è un'abilità che non hanno. (Potrebbero pensare di poterlo fare, ma non possono farlo. Non sanno come generalizzare.)

Devo chiedere loro cosa fanno. (Questo si chiamava "ingegneria della conoscenza" :) È ancora meglio se posso provare facendo cosa fanno.

(Molti programmatori di questi siti sembrano pensare che abbiano solo bisogno di sapere come programmare, ed è solo questione di sapere cosa fare. Sbagliato! Devi entrare nella testa dell'utente. Nel mio caso questo ha comportato la rimozione di molti corsi di matematica di lunga data.)

Quindi realizzo un prototipo di uno strumento / linguaggio e lo spieghi a loro, o fagli provare. Mi dicono cosa c'è che non va e facciamo tutto di nuovo. Verso la terza prova, è uno strumento piuttosto utile.

Ci sono molte "metodologie" là fuori, come "cascata" e "agile". Per me, quello che funziona meglio è "prototipazione rapida".

    
risposta data 07.01.2017 - 19:55
fonte