Suzanne Robertson

Ottobre 2014

Agilità? Basta Volere

Principi e tecniche per valutare la qualità dei requisiti del software e migliorare la capacità di fornire applicazioni utili al business

Se si lavora nello sviluppo di sistemi, soprattutto se si sta sviluppando software, è improbabile che si abbia mai avuto l’idea di essere “agile”. Quello che forse non si sa è da dove derivi il termine: il Manifesto dell’agilità (cioè un insieme di principi) è il risultato di una collaborazione, iniziata nel 2001, tra un gruppo di specialisti di system engineering che si rese conto che le metodologie di sviluppo software e la documentazione avevano l’effetto di rallentare lo sviluppo. In realtà, molti aspetti del modo in cui si stava sviluppando software impedivano di realizzare lo scopo dei veri lavori, che è quello di fornire software prezioso che aiuta i clienti a fare il loro lavoro.
Fin dalla nascita del Manifesto, molti sviluppatori di sistemi, operanti in tutto il mondo, si sono impegnati ad applicare i principi dell’agilità al modo in cui realizzano sistemi. Più di recente, i business analyst e gli specialisti di requisiti hanno preso in considerazione come i principi dell’agilità possono essere applicati quando di scoprono e si comunicano i requisiti di business.
Gli utenti delle tecniche per i requisiti Volere spesso discutono di come le tecniche possono aiutarli a essere più agili. In altre parole, come possono le tecniche migliorare la capacità di fornire applicazioni utili e pertinenti più rapidamente nel loro ambiente? Nel corso di una recente discussione su questo argomento sul gruppo LinkedIn Volere, John Palmer ha suggerito che sarebbe stato utile tracciare un parallelo tra i principi dell’agilità e come le tecniche Volere affrontano ognuno di tali principi. Questo articolo si occupa esattamente di questo.

AFFRONTARE I PRINCIPI DELL’AGILITÀ – Di seguito, vengono elencati (in corsivo) i Principi dell’agilità, seguiti dal modo in cui le tecniche Volere affrontano tale principio.
La nostra massima priorità è soddisfare il cliente attraverso la fornitura tempestiva e continua di software di valore. Volere è basato su principi ben consolidati di system engineering.
Il modello di conoscenza e il template forniscono una struttura linguistica per definire e collegare le proprie conoscenze dei requisiti in un certo numero di livelli. Questa modalità massimizza la libertà di lavorare in qualunque ordine o a qualsiasi livello di requisiti di dettaglio che faciliterà la più tempestiva realizzazione di software.

Benvenuti requisiti in trasformazione, anche nelle fasi avanzate di sviluppo. I processi agili sfruttano il cambiamento per il vantaggio competitivo del cliente.
Non si può aver a che fare con i requisiti in cambiamento se non si sa da cosa si sta modificando. Le tecniche Volere forniscono modi rapidi e trasmissibili per tenere traccia di ciò che si sa e mettono in grado di riconoscere e integrare i cambiamenti indipendentemente da quando accadono.

Fornire frequentemente software che funziona, da un paio di settimane a un paio di mesi, con una preferenza per i tempi più brevi.
Tornare al modello di conoscenza che identifica piccoli e grandi blocchi funzionali che possono essere forniti in modo indipendente pur mantenendo traccia di come si collegano ad altre parti del problema di business.

Le persone di business e gli sviluppatori devono lavorare insieme quotidianamente durante l’intero progetto. Utilizzando le tecniche Volere è possibile raggruppare ed esprimere la conoscenza sui requisiti sia dal punto di vista business sia da quello dello sviluppo. E soprattutto tenere traccia delle connessioni.

Costruire progetti attorno a persone motivate. Creare l’ambiente e fornire il sostegno di cui hanno bisogno, avendo fiducia che il lavoro verrà realizzato da loro.
Le tecniche di sociologia dei progetti supportano le differenze tra le persone e l’importanza che ogni gruppo di progetto abbia una strategia che si adatta al proprio mix sociologico.

Il metodo più efficiente ed efficace per scambiare informazioni verso e all’interno di un team di sviluppo è la conversazione faccia a faccia.
Volere è guidato dai contenuti e non dalla forma. Il nostro approccio, quando possibile, è quello di parlare faccia a faccia e lasciare una traccia se qualcun altro ha bisogno di raccogliere le informazioni. Il percorso dovrebbe idealmente essere il risultato di tenere una conversazione, in qualsiasi forma: blocco note, video, diagramma sulla lavagna, fotografia, libro degli indizi, modello scelto, e così via. In relazione alla sociologia del progetto, questa potrebbe essere l’unica documentazione necessaria.

Un software che funziona è la principale misura del progresso.
Naturalmente. Volere rende tutti i requisiti verificabili in modo che il “funzionamento” può essere dimostrato. Questo è aiutato anche dall’integrazione della prototipazione e della simulazione in qualsiasi fase del processo di sviluppo.

I processi agili promuovono lo sviluppo sostenibile. Gli sponsor, gli sviluppatori e gli utenti dovrebbero essere in grado di mantenere un ritmo costante a tempo indeterminato.
Volere supporta tutto questo, incoraggiando un linguaggio coerente, in modo che tutti gli interessati possano contribuire e condividere il fermento che il progresso offre.

L’attenzione costante all’eccellenza tecnica e buon design migliora l’agilità.
Le tecniche Volere forniscono diversi modi di articolare le alternative progettuali, confrontando e scegliendo il meglio, oltre a favorire il riconoscimento dei buoni modelli di progettazione.

La semplicità, cioè l’arte di massimizzare la quantità di lavoro non svolto, è essenziale.
Le tecniche Volere si concentrano sull’identificazione dell’essenza del problema e sulla selezione delle parti che forniscono il massimo valore di business.

I migliori requisiti, progetti e architetture emergono da team che si auto-organizzano.
Volere fornisce ai team che si auto-organizzano i mezzi per comunicare con l’intera azienda.

A intervalli regolari, il team riflette su come diventare più efficace, e quindi mette a punto e regola il proprio comportamento di conseguenza.
Le tecniche Volere affrontano entrambi gli aspetti, sociologici e tecnologici, e spingono le persone a cercare le ragioni sia tecniche sia sociali per il successo e il fallimento.

IN CONCLUSIONE – Per massimizzare il potenziale di agilità è necessario essere in grado di distinguere le tecniche che supportano la capacità di fornire software di valore da quelle che la inibiscono. Qualsiasi tecnica che costringe a fare le cose in un determinato ordine, a un livello fisso di dettaglio, o in una specifica forma, è una tecnica che inibisce l’agilità. Le tecniche Volere migliorano la capacità di essere agili, supportando il pensiero e la comunicazione con i colleghi, incoraggiando a essere innovativi ed estemporanei. Le tecniche sono basate su solidi principi di system engineering, quali: il partizionamento, il guardare da diversi punti di vista, la comunicazione degli scopi da raggiungere, gli elementi linguistici adeguati al dominio, l’operare astrazioni e i diversi livelli di dettaglio. È possibile lavorare in modo appropriato per il progetto e produrre un percorso della conoscenza come risultato di svolgere il proprio lavoro.