Gennaio 2014

Conversando con un marziano

Marziano: Salve Terrestre. Mi porta dal suo capo?
Terrestre: Ma ancora quei vecchi cliché? Sta per caso parlando di CEO, CIO, CTO, del capo dei business analyst, del project manager, del program manager, del product owner o del responsabile tecnico?

Veramente mi aspettavo un primo ministro o un presidente. Chi sono tutte queste persone di cui parla?
Tutti hanno un certo impatto sui requisiti per il progetto che sto facendo.

Requisiti? Cosa sono i requisiti?
Requisiti sono ciò che la soluzione deve fare, e come deve farlo. La sua navicella spaziale ha il requisito di essere in grado di viaggiare alla velocità di 25mila km all’ora, in modo da permetterle di fare il viaggio in circa 150 giorni, e deve tenerla comodamente in vita durante il viaggio da Marte.

Ci ho messo 100 giorni. Ma è stato davvero difficile capire il sistema di navigazione.
Questo è il risultato di un cattivo lavoro sui requisiti. Ci sono anche i requisiti ambientali riguardanti il freddo che si sarebbe trovato durante il viaggio, e i requisiti di sicurezza su chi potrebbe usare quali controlli, per non parlare dei requisiti di legge che avrebbero indicato che l’astronave non è parcheggiata correttamente in strada. Ma c’è molto di più. Io uso questo modello “Volere”, che mi aiuta a fare tutte le domande giuste.

“Volere”? Cos’è?
È un framework che molti utilizzano quando scoprono i requisiti. Trovo utile avere una guida senza essere vincolati da un processo formale. Mi piace molto.

Che cosa c’è di diverso?
In primo luogo, si fa una distinzione tra il lavoro e la soluzione. Il lavoro è l’attività che l’organizzazione sta facendo e la soluzione è l’automazione (o qualcos’altro) che è concepito per migliorare il lavoro.

Come si può sapere quale soluzione migliorerà il lavoro se non si sa in cosa consiste?
Esatto. È importante avere una chiara comprensione del lavoro e separarlo dalla tecnologia di qualsiasi soluzione alla quale si potrebbe pensare.

Come si fa a farlo?
Io uso questo modello “Brown Cow” che mostra ogni punto di vista e mi permette di vedere in qualsiasi momento esattamente quello che io e i miei stakeholder hanno bisogno di vedere.

Brown Cow?
Sì, magari dopo le spiegherò perché si chiama “Brown Cow”. Ma quello che mostra è una separazione della vista tecnologica, il Come, dall’essenza astratta, il Cosa. E poi si separa ulteriormente l’Ora dal Futuro. Rende davvero facile vedere di che cosa si sta parlando, e rende più facile comunicare con gli stakeholder.

Pensavo che “essenza” fosse un concentrato di una pianta.
Sì, in effetti ha anche quel significato, ma qui si intende il core del lavoro come se lo si potesse vedere senza alcun tipo di tecnologia abilitante. Cioè la filosofia sottostante, se vogliamo.

Voi terrestri siete così orgogliosi della vostra tecnologia. Ma perché bisogna vedere il lavoro senza la sua tecnologia?
Serve per vedere che si sta risolvendo il problema giusto, e non si sta solo utilizzando una soluzione interessante. Moltissimi progetti falliscono perché costruiscono una buona soluzione per il problema sbagliato.

Forse questo è il problema che abbiamo su Marte. Basta che diciamo cosa vogliamo e questo compare. Di solito si ottiene quello che diciamo di volere, ma poi si scopre che non è quello che ci serve. Se scoprissimo le nostre esigenze come fate voi terrestri, questo migliorerebbe le cose per noi?
È probabile, ma è necessario assicurarsi che si sta vedendo il vero problema e non solo parlando di una proposta di soluzione.

Noi marziani abbiamo “abstractOvision”, che voi potreste chiamare visione a raggi X. Possiamo vedere la ragione di fondo, guardando ogni soluzione.
Sarebbe utile, ma noi terrestri dobbiamo costruire modelli che ci facciano vedere l’essenza senza la sua tecnologia, perché è molto più facile guardare ogni vista separatamente. Non è così difficile da fare, ma bisogna pensarci un po’.

Voi terrestri parlate di pensare molto. Per esempio, cos’è il “Pensiero Sistemico”? È simile al modo in cui noi marziani pensiamo?
Forse, o anche meglio. Il pensiero sistemico (o dei sistemi) si ha quando si guarda la totalità di un sistema di business per garantire che se si cambia un componente non si influenza un altro. Inoltre, si potrebbe scoprire che un cambiamento vantaggioso per una parte del sistema significa che si apre un’opportunità in un’altra parte. Vuol dire che si guarda all’intera portata del lavoro.

Come si fa a sapere di avere davanti l’intera portata del lavoro?
Ecco dove “Volere” si dimostra particolarmente utile. Ho realizzato questo diagramma di contesto che mostra il lavoro e come si inserisce nel mondo che lo circonda. Questo mi permette di sapere esattamente quanto è ampio lo spazio di lavoro. Alcune delle aree problematiche sono grandi.

Grandi? Ma come si trattano i grandi problemi?
Ovviamente si dividono in più piccoli. Il mio metodo di suddividere il lavoro è utilizzare gli eventi di business.

Eventi di business?
Sì, eventi di business: sono le cose che accadono al di fuori del lavoro. Se guardo un evento di lavoro alla volta, vuol dire che sto vedendo il lavoro come lo vedono i clienti che ne sono al di fuori. Si tratta di un modo più naturale di suddividere.

Cosa si fa dopo aver suddiviso il lavoro?
Studio ogni partizione per giungere a un accordo con le parti interessate su ciò che tutti noi vogliamo e soprattutto abbiamo bisogno che il lavoro sia. Una volta che sappiamo che siamo in grado di cercare la soluzione ottimale, scriviamo sia scenari di utilizzo dei prodotti sia schede di eventi.

Schede di eventi?
Sì, scrivo un evento su una scheda come questa: “Come cliente della banca posso effettuare proiezioni sul mio bilancio in modo da poter vedere quello che mi rimane da spendere questo mese”. Questa scheda funge da segnaposto per i requisiti che si dipanano in una conversazione tra gli sviluppatori, il business analyst e alcuni degli stakeholder aziendali. Però, posso anche scrivere i requisiti utilizzando questa “snow card”.

“Snow card”?
Sì, è un modo per catturare i requisiti, per sapere perché i requisiti esistono e come misurarli, per poterli testare quando lo sviluppatore li realizza. Questo è ciò che definiamo un criterio adatto.

Come funziona un criterio adatto?
Supponiamo che io stia costruendo un sistema smart card per il trasporto urbano, e che io abbia un requisito non funzionale, come per esempio “Il prodotto deve essere intuitivo da utilizzare anche per chi lo usa la prima volta”. Ne chiederei la ragione sottostante, e potremmo supporre che questa sia “così la gente non ha esitazioni nell’usarlo e non si blocca alle porte di ingresso dei mezzi”. Vorrei misurare questo, aggiungendo così il criterio adatto, dicendo che “il 90% di chi viaggia per la prima volta passa attraverso il cancello di ingresso entro 3 secondi dal punto in cui si trova a un metro dal gate”. Si tratta di un requisito molto importante, per cui è valsa la pena e la spesa della sperimentazione su un gruppo di viaggiatori rappresentativi.

Ma lei ha parlato di requisiti non funzionali. Di cosa si tratta?
I requisiti funzionali sono ciò che il prodotto deve fare, mentre i requisiti non funzionali specificano quanto bene deve farlo. Per esempio, i requisiti non funzionali coprono aspetti quali il “look and feel”, l’usabilità, l’operatività, la sicurezza e così via. Ce n’è un elenco completo nel modello “Volere”, che può essere consultato online.

Posso vedere senza “online”, se ricorda la nostra vista a raggi X. E sì, questo modello si presenta come un elenco molto completo dei tipi di requisiti.
Lo trovo molto utile, in quanto mi permette di porre tutte le domande giuste, e agli stakeholder consente di capire perché io faccio tutte queste domande. Quindi, indipendentente dal fatto che io stia lavorando su un progetto agile o sequenziale, devo sempre trovare ciò che il prodotto deve fare e come deve farlo.

Tutti questi requisiti suonano come una quantità enorme di informazioni che devono essere elaborate da voi terrestri. Come si fa a tenerne traccia?
“Volere” comprende questo modello di conoscenza: una sorta di linguaggio per parlare di requisiti. Mostra tutte le informazioni che è necessario raccogliere, e aiuta a suddividerle in blocchi più piccoli e a utilizzarle per lo sviluppo iterativo. C’è anche un libro: “Mastering the Requirements Process”, anche in versione per Kindle.

Ah, ma io posso vederlo anche “online”: davvero interessante. Ne prenderò una copia su Marte.
Già che è “online”, dovrebbe dare un’occhiata al sito www.technologytransfer.eu, dove vi sono corsi specifici sul tema. Però, se fossi in lei, proseguirei: vedo che la sua astronave sta per essere multata. Ma a proposito, perché parla in corsivo?