-
Condurre le revisioni utilizzando il formato della riunione, anche se alcune revisioni dovranno essere preparate
dai partecipanti indipendentemente.
-
Monitorare continuamente la qualità di quanto svolto nel processo per prevenire che in fase di revisione emergano
un gran numero di difetti. Per sottolineare tutto ciò, in ogni compito RUP (Rational Unified Process), si fa
riferimento costante all'elenco di controllo riportato di seguito; utilizzarlo anche in riunioni di revisione
informali o nel lavoro quotidiano.
In un glossario standard del 1990, IEEE definisce tre tipi di revisioni:
-
Revisione
-
Riunione informale in cui un prodotto di lavoro o un insieme di prodotti di lavoro sono presentati all'utente,
al cliente o altra parte interessata per commenti e approvazione.
-
Ispezione
-
Valutazione tecnica formale in cui i prodotti di lavoro vengono esaminati in dettaglio da una persona o un
gruppo diverso dall'autore, per individuare errori, violazioni degli standard di sviluppo ed altri problemi.
-
Walkthrough
-
Processo di revisione in cui uno sviluppatore conduce uno o più membri del team di sviluppo attraverso i
segmenti del prodotto di lavoro di cui è autore, mentre gli altri rivolgono domande e fanno commenti su
tecnica, stile, possibili errori, violazioni degli standard di sviluppo e altri problemi.
Quando implementate tra team, le revisioni offrono l'opportunità di scoprire progettazione e codice dagli altri gruppi
e aumentare la possibilità di individuare codice sorgente in comune, opportunità di riutilizzo e opportunità di
generalizzazione. Le revisioni forniscono un modo per coordinare lo stile strutturale dei vari gruppi.
Nel RUP, le revisioni assumono un ruolo importante, sebbene secondario nell'assicurare la qualità. I principali fattori
che contribuiscono alla qualità del RUP sono descritti nel dettaglio in [ROY98] nella
sezione Peer Inspections. Tuttavia, questo testo non identifica i preziosi effetti collaterali delle revisioni nello
sviluppo professionale dell'individuo: il personale meno esperto ha la possibilità di esaminare il lavoro di esperti ed
avere il proprio analizzato da mentor.
Le revisioni vengono pianificate per determinare il punto focale e l'ambito della revisione e per verificare che tutti
i partecipanti abbiano compreso il proprio ruolo e gli obiettivi della stessa.
Prima di revisionare, definire l'ambito della revisione, determinando le domande da porsi; definire ciò che verrà
valutato e perché. Consultare l'elenco di controllo dei prodotti di lavoro da revisionare per i tipi di domande che ci
si può porre. Adeguare le domande alla fase del progetto in corso: le revisioni iniziali devono concentrare
l'attenzione su problematiche strutturali più ampie, mentre le finali devono essere più specifiche.
Una volta determinato l'ambito, definire i partecipanti, l'ordine del giorno, le informazioni necessari per eseguire la
revisione. Nel selezionare i partecipanti, stabilire un equilibrio tra gli esperti in architettura software e gli
esperti in dominio. Designare chiaramente e senza ambiguità un leader per la valutazione, con il compito di coordinare
la revisione. Se necessario, appoggiarsi ad altri team o altri reparti dell'organizzazione per ottenere esperti tecnici
e di dominio.
Il numero di revisori deve essere massimo sette. Se scelti con cura, saranno capaci di identificare i problemi
nell'architettura. Un numero superiore di revisori riduce la qualità della revisione, prolungando le riunioni,
riducendo la possibilità di partecipazione dei singoli e inserendo problemi e argomentazioni marginali nella revisione.
Meno di 4 revisori aumenta il rischio di "miopia" in quanto si riduce la quantità di argomentazioni.
I revisiori devono essere esperti nell'area da revisionare: per i casi d'uso, i revisori devono essere in grado di
comprendere le problematiche legate al dominio; per l'architettura software, si richiede una conoscenza delle tecniche
di progettazione software. I revisori inesperti possono apprendere qualcosa sull'architettura partecipando; è il caso
di considerare tuttavia che il loro contributo alla revisione in sé sarà minimo e la loro presenza potrebbe essere
motivo di distrazione. Mantenere i gruppi piccoli; non più di sette individui e non meno di tre. Un numero inferiore
può mettere a rischio la qualità della revisione e un numero superiore previene l'instaurarsi di discussioni
costruttive limitando la qualità della revisione.
Selezionare i revisori appropriati in base al materiale:
-
coloro che hanno esperienza con il materiale presentato
-
coloro che hanno un interesse attivo nella qualità del prodotto o del prodotto di lavoro revisionato
Prima di iniziare, radunare e distribuire i prodotti di lavoro e l'eventuale documentazione di base ai partecipanti
alla revisione. Questo è da farsi con sufficiente anticipo prima dell'inizio della riunione di revisione per dare agio
ai partecipanti di esaminare il materiale e raggruppare le problematiche. Distribuendo la documentazione da revisionare
con sufficiente anticipo e concedendo ai partecipanti il tempo di prepararsi migliora notevolmente la qualità dei
risultati della revisione. La preparazione per le revisioni migliora di molto anche l'efficienza e l'efficacia della
revisione.
I revisori devono esaminare la documentazione, preparare domande e identificare problematiche da discutere prima
della revisione. Dati i normali carichi di lavoro dei revisori, pochi giorni lavorativi è in genere il minimo
necessario per prepararsi alla revisione.
Gli elementi chiave per condurre una revisione di successo sono diversi:
Di seguito, ciascuno di questi elementi verrà esaminato nel dettaglio.
In genere, il processo di revisione segue un ciclo ripetitivo:
-
Una problematica viene evidenziata da un revisore
-
La problematica viene discussa e possibilmente confermata
-
Un difetto viene identificato (ovvero qualcosa viene identificato che deve essere risolto)
-
Continuare finché tutte le problematiche sono esaurite
Per funzionare con efficacia, ognuno deve comprendere che l'obiettivo di una revisione è di migliorare la qualità del
prodotto di lavoro revisionato. I prodotti di lavoro devono essere revisionati con occhio critico alla ricerca di
problemi. Il che può essere difficile, ma tutti i revisori devono sforzarsi di concentrare la propria attenzione
all'identificazione dei problemi (di natura, siamo tutti portati a risolvere i problemi, ma come revisori questa
tendenza deve essere abbandonata).
Abbiamo tutti un forte senso di titolarità del nostro lavoro e spesso è difficile accettare critiche, anche se
costruttive. Ne consegue, che è necessario impegnarsi ancora di più per concentrare l'attenzione sugli obiettivi della
revisione e renderla fruttuosa.
Al fine di condurre una revisione efficace, tutti devono assumere un ruolo. In modo più specifico, esistono certi ruoli
che devono essere assunti e non sono facilmente intercambiabili. I ruoli base in una revisione sono:
-
il moderatore
-
l'addetto alla registrazione
-
l'autore
-
i revisori
Il moderatore verifica che i revisori seguano l'ordine del giorno e restino concentrati sull'argomento discusso.
Inoltre, evita che la revisione venga sviata da argomentazioni marginali e che tutti i revisori partecipino in ugual
misura al dibattito.
L'addetto alla registrazione è un ruolo spesso sottovalutato, sebbene essenziale del team di revisione. Il suo compito
a tempo pieno è tenere traccia di quanto discusso e documentare i provvedimenti da attuare. Assegnare questo ruolo a
uno dei revisori significa eliminarlo dalla discussione. Ancora peggio è tuttavia non documentare le decisioni prese,
che conduce inevitabilmente al ripresentarsi del problema. Verificare che sia stato assegnato il ruolo di addetto alla
registrazione e che l'individuo lo svolga in maniera esclusiva.
L'autore è colui che presenta il prodotto di lavoro in esame. Il suo ruolo è di spiegare il prodotto di lavoro e
offrire tutte le informazioni di base necessarie per comprenderlo, anche se un prodotto di lavoro che non si spiega da
sé probabilmente ha bisogno di essere perfezionato. È importante che le revisioni non diventino dei "processi" - il
punto focale deve essere il prodotto di lavoro non l'autore. È compito del moderatore garantire che i partecipanti,
compreso l'autore, ricordino questo particolare. L'autore avvia la discussione, risponde alle domande e offre
chiarimenti.
I revisori evidenziano i problemi. È importante concentrarsi su questo punto e non farsi trascinare in discussioni
marginali su come risolvere il problema. Focalizzare sui risultati, non i mezzi per ottenerli.
Come esaminato in precedenza, il moderatore assume un ruolo chiave nell'evitare che la revisione perda il suo punto
focale. È importante che il moderatore sia concentrato sul mantenere la revisione sui binari; un moderatore non deve
assumere la responsabilità di revisore. Il ruolo di moderatore è di mantenere la discussione attiva, garantire uguale
partecipazione e neutralizzare contenziosi. Questo è un compito a tempo pieno. Una moderazione poco efficace genera
revisioni che si trascinano oltre il previsto e non raggiungono l'obiettivo.
Le revisioni più efficaci sono quelle brevi in cui l'attenzione è concentrata su obiettivi identificati chiaramente.
Poiché è difficile mantenere l'attenzione concentrata per molto tempo e poiché i revisori devono svolgere anche altre
mansioni, limitare la durata a non più di due ore. Se si prevede che la revisione si prolunghi, inserire degli
intervalli, suddividendola in riunioni più brevi e concentrate. I risultati saranno migliori se i revisori riescono a
mantenere la propria concentrazione.
La chiave per ottenere questo risultato è di avere un ordine del giorni ben suddiviso e gli obiettivi espressi con
chiarezza. Entrambi devono essere comunicati al momento della distribuzione della documentazione della revisione e il
moderatore deve ripeterli nuovamente all'avvio della revisione. Il moderatore deve quindi costantemente, avvolte con
determinazione, ripetere questi obiettivi anche nel corso della riunione.
Uno dei principali motivi per cui le riunioni di revisione non raggiungono i risultati previsti è la tendenza a
degenerare in discussioni su come risolvere il problema. La risoluzione dei problemi richiede, di solito, indagine e
riflessione; il formato di una revisione non è uno strumento efficace per questo tipo di discussione. Una volta
identificato il problema, determinare se è un difetto che deve essere risolto e quindi assegnarlo a qualcuno per
risolverlo. La riunione di revisione deve concentrarsi esclusivamente sull'identificazione del problema.
Se il problema richiede un approfondimento, allora formare un gruppo dedicato all'argomento in questione. In genere
questo tipo di riunione richiede un po' di indagine e preparazione, nonché individui con skill appropriati. La
revisione deve concentrare l'attenzione sull'identificazione degli altri problemi. Il moderatore dovrà spesso
esercitare pressione per mantenere la riunione entro questi limiti.
La revisione ha poco valore se non si ottiene alcun risultato. A conclusione della revisione:
-
Prioritizzare l'elenco dei problemi
-
Creare difetti per tenere traccia dei problemi e relative risoluzioni.
-
Se è necessario un ulteriore approfondimento, assegnare un piccolo team di ricerca al problema; per identificarlo e
non risolverlo.
-
Assegnare i problemi che devono essere risolti nell'iterazione corrente a un individuo o un team addetto a
risolverli.
-
Immettere l'elenco di problemi insoluti in iterazioni di impegni di pianificazione futuri.
Consultare inoltre [MCO97].
|