Cosa e come
L’ingegneria del software proponeva, anni fa, una distinzione netta tra le attività di analisi e design (progettazione):
- Analisi: lo studio di “cosa” deve fare il sistema (punto di vista “logico”)
- Design: lo studio di “come” è opportuno implementare il sistema (punto di vista “tecnico”).
Si suggeriva, in particolare, di non iniziare il design prima di aver chiarito tutti i requisiti per il nuovo sistema. A partire almeno dagli anni novanta del ‘900, questa raccomandazione di metodo è entrata in crisi:
“La maggior parte dei manuali sull’ingegneria del software raccomanda di non iniziare la progettazione fino a quando tutti i requisiti non sono concordati. È un consiglio sbagliato, perché comunque non arriverete mai a conoscere tutti i requisiti, e iniziare presto la progettazione vi servirà probabilmente a scoprire nuovi requisiti.” (Alan Davis, “Just Enough Requirements Management”, 2005)
Significato di Analisi
Il termine “analisi”, d’altra parte, può essere interpretato e declinato in diversi modi, e in organizzazioni diverse può assumere significati molto distanti tra loro.
L’etimologia greca, “analysis”, significa letteralmente “scomposizione”, la scomposizione di un elemento nei suoi elementi costitutivi, per poterlo comprendere e definire meglio.
L’analisi dei processi di business, in questa accezione, è l’individuazione e la definizione dei processi.
Invece l’analisi dei requisiti individua e definisce i requisiti, mentre la modellazione (“analisi”) dei dati individua e definisce le informazioni da gestire negli archivi, e così via.
Nella pratica dello sviluppo software, d’altra parte, il termine “analisi” viene per lo più usato per la definizione delle caratteristiche fondamentali della soluzione, ad un livello indipendente dalle tecnologie di implementazione, mentre il design corrisponde alla progettazione tecnica.
Analisi nelle organizzazioni a silos e non a silos
Nel caso di organizzazioni di sviluppo strutturate in silos, il confine tra i ruoli di analista e designer può diventare un ambito di discussione e conflitti.
Quando invece si verifica una collaborazione sistematica dei ruoli, aumentano efficacia ed efficienza: l’esperto di analisi è attento alla comprensione del dominio (della materia) e delle esigenze degli stakeholder, mentre il progettista-designer individua il modo ottimale per implementare la soluzione nelle tecnologie date. I due ruoli collaborano e forniscono reciprocamente un feedback tempestivo.
Formazione
Il mio sito di formazione sulle tecniche di analisi, con corsi in auto-istruzione, workshop di pratica guidata e corsi completi di teoria + pratica.