Alkampfer's Place

Il blog di Gian Maria Ricci
posts - 659, comments - 871, trackbacks - 80

My Links

News

Gian Maria Ricci Mvp Logo CCSVI in Multiple Sclerosis

English Blog

Tag Cloud

Article Categories

Archives

Post Categories

Image Galleries

I miei siti

Siti utili

Dominio del problema / dominio della soluzione

Durante l’analisi spesso la confusione tra i due domini causa problemi, questo perché spesso chi fa l’analista non è un vero analista, (nel peggiore dei casi è uno sviluppatore) e quindi tende sempre a vedere la soluzione prima del problema.

Il buon analista invece conosce la distinzione e durante la raccolta dei requisiti non cade nella trappola di “sbirciare alla possibile soluzione”. Prendiamo un esempio: l’utente o comunque la persona che stiamo intervistando per l’elicitazione dei requisiti dice:

“Quando inserisco un Nuovo Candidato voglio avere una combo per scegliere il valore di XXX”.

Prendere questo come requisito è probabilmente sbagliato, sia perché si parla già di interfaccia utente, ma soprattutto può incorrere in problemi dovuti ad un’analisi insufficiente. Supponiamo infatti che XXX sia “il comune di residenza”…. in questo caso avremmo una combo con tutti i comuni italiani.. una situazione tipicamente difficile da gestire nella UI e sicuramente non usabile.

L’analista dovrebbe quindi chiedere alla persona il perché stia parlando proprio di una combo, questo perché la Combo fa parte del dominio della soluzione, quindi è necessario capire il vero requisito che si nasconde in questa possibile soluzione. Il vantaggio è che in questo modo capiamo realmente le ragioni che portano alla “combo”.

nel vecchio sistema avevamo una casella di testo e perdevamo un sacco di tempo per errori di digitazione,una combo impedisce di mettere valori non validi per cui non avremo più gente che abita a Molano :)

Ora siamo più vicini al vero requisito, che potrebbe essere

L’inserimento del comune di residenza deve essere effettuato tramite la scelta tra X valori possibili e non tramite inserimento libero, perché questo ha creato problemi con il vecchio sistema.

Ora l’analista deve andare più a fondo e chiedere ad esempio: dato che è possibile che ci siano nuovi comuni che vengono creati nel tempo, o comunque supponendo che la lista comuni sia errata, non è proprio possibile per l’utente inserire un valore libero? Si potrebbe magari scoprire che in realtà quello che si vuole è solamente un avvertimento che dica all’utente “Il comune XXX non è presente nell’archivio, verificare errori di digitazione”, ma che sia comunque possibile poi andare avanti. A questo punto il requisito diventa

E’ necessario che prima dell’inserimento dei dati a sistema sia fatto un errore per il controllo di eventuali errori di digitazione per campi specifici.

A questo punto possiamo spostarci nel dominio della soluzione e trovare una soluzione migliore della combobox inizialmente citata, come ad esempio una texbox Ajax che alla digitazione di tre lettere presenta la lista dei comuni compatibili. L’utente può scrivere però quello che vuole, ed alla perdita del focus, se il comune non è in archivio appare un messaggio di “attenzione comune non presente nell’archivio” e l’utente è poi libero di seguire o meno il consiglio.

Evitare di scambiare la soluzione per il problema è quindi fondamentale quando si raccolgono i requisiti.

alk.

DotNetKicks Image

Print | posted on martedì 8 marzo 2011 21:38 | Filed Under [ Analisi ]

Feedback

Gravatar

# re: Dominio del problema / dominio della soluzione

Se mi consenti un po' di cavilli: :)

> non è un vero analista, (nel peggiore dei casi è uno sviluppatore)

Direi che e' il migliore dei casi, considerato che all'opposto c'e' il commerciale di turno...

> non cade nella trappola di “sbirciare alla possibile soluzione”

Un'idea della fattibilita' tecnica bisogna in realta averla: non dico sin dal primo giorno, quando si analizza lo status quo, ma almeno dal secondo, quando si inzia a pensare ad una possibile evoluzione. E' assolutamente vero, d'altra parte, che gli aspetti tecnici tendenzialmente non andrebbero neppure menzionati con il cliente.

> L’analista dovrebbe quindi chiedere alla persona il perché stia parlando proprio di una combo

Il discorso in generale di questo tuo post mi piace, anche se l'esempio che porti ha dei limiti: una domanda del genere il cliente la fa (ed in effetti la puo' davvero fare) solo quando si entra nei dettagli, ovvero ad analisi molto avanzata.

> Ora l’analista deve andare più a fondo e chiedere ad esempio: dato che è possibile che ci siano nuovi comuni

Il motivo che adduci alla terza "iterazione" mi sembra dl tutto pretestuoso... la seconda versione e' gia' (per lo meno quanto a livello di dettaglio) piuttosto buona, che poi sia un menu a scelta, una casella libera, o ancora meglio la tendina ajax-driven; la terza versione e' troppo generica e non dice neanche di cosa si sta parlando...

> Evitare di scambiare la soluzione per il problema è quindi fondamentale

Assolutamente!

-LV
08/03/2011 22:29 | LudovicoVan
Gravatar

# re: Dominio del problema / dominio della soluzione

>Direi che e' il migliore dei casi, considerato che all'opposto c'e' il commerciale di turno...

Eh si, hai proprio ragione, il commerciale che fa l'analista è la sorgente di molti, molti mali :)

>Un'idea della fattibilita' tecnica bisogna in realta averla

Sono daccordo, soprattutto per capire anche che tecnologia utilizzare, se non ci sono vincoli tecnologici (Es. Voglio una applicazione web che gira anche su IE 5.0, [mi è capitato])....

Alk.
08/03/2011 23:55 | alkampfer@nablasoft.com
Gravatar

# re: Dominio del problema / dominio della soluzione

> Voglio una applicazione web che gira anche su IE 5.0

Scommetto che te l'ha chiesta appunto un commerciale... ;)

-LV
08/03/2011 23:56 | LudovicoVan
Gravatar

# re: Dominio del problema / dominio della soluzione

Come hai fatto a capirlo :D :D :D

Alk.
09/03/2011 11:17 | alkampfer@nablasoft.com
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET