Revisioni Tecniche Formali

Non sarebbe fantastico se esistesse un metodo per trovare circa il 60% dei difetti dei nostri software, che accorciasse i tempi di sviluppo e che quindi riducesse i costi? La bella notizia è che esiste! Questo metodo si chiama Revisione Tecnica Formale (formal inspection se vogliamo usare il gergo in inglese). È stato sviluppato da Michael Fagan all’IBM e molti studi di settore ne confermano ormai l’efficacia.

Questo tipo di revisione è efficace perché si distingue da altri metodi grazie a delle regole ben precise:

  • Utilizzo di checklist per concentrare i revisori su aree che hanno avuto problemi in passato;
  • Le revisioni hanno lo scopo di trovare difetti, non correggerli;
  • I revisori si preparano prima della riunione e partecipano con una lista di problemi da loro individuati;
  • I partecipanti hanno ruoli diversi;
  • Il moderatore della revisione non è l’autore del prodotto esaminato;
  • In ogni revisione vengono raccolti dei dati che serviranno anche per migliorare le future revisioni;
  • La dirigenza non partecipa a questo tipo di riunioni.

I ruoli

Moderatore

È il responsabile dell’andamento della revisione. Deve farla procedere a un ritmo sostenibile ma non troppo veloce, in maniera da trovare più errori possibili.

Autore

La persona che ha scritto o progettato il lavoro in esame. Svolge un compito di secondo piano in queste attività perché il codice revisionato dovrebbe “parlare da solo”. Il suo compito può essere chiarire punti oscuri.

Revisore

Chiunque ha un diretto coinvolgimento nel codice ma non ne è l’autore. Di solito il revisore trova i difetti in fase di preparazione.

Segretario

Compila il verbale della revisione registrando gli errori trovati e le assegnazioni delle attività che ne seguiranno.

Il Processo

1018px-Fagan_Inspection_Simple_flow.svg

Pianificazione

L’autore consegna il materiale al moderatore. Il moderatore decide chi parteciperà, chi revisionerà il materiale e dove.

Introduzione

Quando i revisori sono un po’ estranei al progetto in revisione, l’autore può fare un’introduzione. Questa può essere pericolosa perché potrebbe condizionare i revisori: il prodotto dovrebbe parlare da sé, non il suo autore.

Preparazione

Ogni revisore lavora in autonomia per trovare difetti con l’uso di checklist.

Riunione

Il moderatore sceglie un revisore e gli fa spiegare il codice. Tutta la logica viene spiegata, ogni ramo di ogni struttura logica. Il segretario registra gli errori quando vengono rilevati, la discussione si ferma quando un errore viene riconosciuto come tale. Il segretario annota il tipo e la severità dell’errore e la riunione prosegue. Se si accende la discussione il moderatore riporta all’ordine. Non si discutono soluzioni. La riunione dovrebbe durare meno di due ore.

Report

Entro un giorno dalla riunione il moderatore produce un report (e-mail o equivalente) che elenca ogni difetto, il suo tipo e la severità. Il report serve a garantire che ogni difetto venga corretto e per sviluppare una checklist che evidenzi problemi specifici nell’organizzazione. Si raccolgono dati sul tempo impiegato e sul numero di errori trovati nell’unità di tempo per misurare l’efficacia delle revisioni.

Rilavorazioni

Il moderatore assegna i difetti a qualcuno, molto spesso l’autore, per risolverli.

Follow-Up

Il moderatore è responsabile della verifica che il lavoro assegnato venga svolto. A seconda della gravità dei difetti corretti potrebbe (o no) seguire a lavoro ultimato un’altra revisione formale.

Non ho mai partecipato a revisioni di questo tipo ma ho la fortuna di lavorare in un ambiente dove siamo tutti aperti alle migliorie e ai cambiamenti e ne abbiamo già pianificata una tra qualche giorno. Presto faremo la prima revisione formale pilota e non vedo l’ora di toccare con mano tutti i vantaggi che finora ho solo letto studiando questo tipo di procedura. Sono sicuro che da qui a sei mesi avremmo fatto passi da giganti!

 

Advertisements

One thought on “Revisioni Tecniche Formali

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s