Conferito a RUP da Karl Wiegers (www.processimpact.com) con autorizzazione da Software Development Magazine.
Ulteriore edizione della Rational Software Corporation.
Introduzione
Questa linea guida descrive una tecnica utilizzabile per valutare l'impegno lavorativo dello sviluppo di software. Il
metodo di valutazione Wideband Delphi può essere riepilogato nel seguente modo:
-
Selezionare un team di esperti e fornire a ciascun team una descrizione del problema da valutare.
-
Richiedere a ciascun esperto di fornire una valutazione (spesso in modo anonimo) dell'impegno, includendo una
suddivisione del problema in un elenco di attività e una stima dell'impegno lavorativo per ciascuna attività.
-
Gli esperti quindi collaborano, revisionando in modo iterativo le loro valutazioni, finché non viene raggiunto un
consenso.
L'utilizzo del metodo Wideband Delphi fornisce diversi vantaggi rispetto alla valutazione che si ottiene da un singola
persona. Innanzitutto, tale metodo aiuta a costruire un elenco completo di attività o una struttura di partizionamento
del lavoro per le attività principali, poiché ciascun partecipante si aspetterà delle attività. L'approccio mediante
consente aiuta ad eliminare le influenze nelle valutazioni prodotte da esperti che si proclamano tale, estimatori senza
esperienze oppure persone influenti che hanno agende nascoste oppure obiettivi divergenti. Le persone sono generalmente
più dedicate a valutazioni che aiutano a produrre che a quelle realizzate da altri. Nessun partecipante in un'attività
di valutazione conosce la risposta "giusta" e la produzione di più valutazioni conferma questa incertezza. Infine, gli
utenti dell'approccio Delphi riconoscono il valore dell'iterazione su ogni complessa attività.
Applicazione del metodo Wideband Delphi
Il metodo Wideband Delphi può essere utilizzato per valutare in modo virtuale qualsiasi cosa: il numero di giorni di
manodopera necessari per implementare un sottosistema specifico, le righe di codice o il numero di classi di un intero
prodotto, i litri di pittura necessari per dipingere la casa di Bill Gates oppure l'impegno che si richiede a una
particolare organizzazione per raggiungere il livello due del Capability Maturity Model.
Il metodo Delphi aiuta a sviluppare una struttura di partizionamento del lavoro dettagliata, che pone le basi per una
valutazione dell'impegno e dei tempi o della capacità. Il punto di partenza per una sessione Delphi può essere un
documento Vision, una più dettagliata specifica dei requisiti del problema che si sta valutando, una descrizione
iniziale dell'architettura di livello elevato oppure una pianificazione del progetto. Gli output sono un elenco di
attività del progetto più dettagliato; un elenco della qualità associata, le attività generali e relative al processo;
presupposti di valutazione e una serie di attività e di valutazioni complessive del progetto, una da ciascun
partecipante.
La figura 1 illustra il flusso del progetto per una sessione Wideband Delphi. Il problema che si sta valutando viene
definito ed i partecipaneti selezionati durante la pianificazione. La riunione di inizio (kickoff) concentra
l'attenzione sul problema per tutti i responsabili alle valutazioni. Ciascun partecipante in modo individuale prepara
quindi le proprie valutazioni ed i propri elenchi di attività iniziali. Questi dati vengono portati nella riunione di
valutazione, durante la quale diversi cicli di valutazione conducono ad un elenco di attività più esauriente e una
serie revisionata di valutazioni. Il moderatore o il responsabile di progetto consolida quindi le diverse informazioni
sulle valutazioni durante gli intervalli e il team analizza i risultati delle valutazioni. Quando si raggiungono i
criteri di uscita predeterminati, la sessione è terminata. Il campo dei risultati delle valutazioni è verosimilmente
una previsione più realistica del futuro rispetto ad una qualsiasi altra singola valutazione. Di seguito viene
riportata una descrizione di ciascuna delle fasi di questo processo.
Quando si pianifica una sessione Wideband Delphi, il problema è determinato ed i partecipanti selezionati. La
riunione di inizio (kickoff) concentra l'attenzione sul problema per tutti i responsabili alle valutazioni. Ciascun
partecipante in modo individuale prepara quindi le valutazioni e gli elenchi di attività iniziali. Durante la riunione
di valutazione, diversi cicli di valutazione conducono ad un elenco di attività più esauriente e una serie revisionata
di valutazioni. Le informazioni vengono quindi consolidate durante gli intervalli e il team analizza i risultati delle
valutazioni. Quando si raggiungono i criteri di uscita, la sessione è terminata.
Pianificazione
Una sessione Wideband Delphi inizia con la definizione e l'ambito del problema: visione, modello caso d'uso, sistema
esistente, architettura preliminare. I problemi più grandi vengono suddivisi in parti gestibili che possono essere
valutate in modo più accurato, probabilmente da diversi team. La persona che ha avviato l'attività di valutazione
raccoglie le informazioni relative a una specifica del problema che così darà ai partecipanti informazioni sufficienti
per produrre delle valutazioni attendibili e correnti.
Tra i partecipanti è presente un moderatore, che pianifica e coordina l'attività. il responsabile di progetto e da due
a quattro altri responsabili delle valutazioni. Il moderatore dovrebbe avere sufficienti informazioni per partecipare
come estimatore ma funge da facilitatore imparziale che non influenzerà i risultati con le proprie inclinazioni o
previsioni. I partecipanti vengono selezionati poiché comprendono il problema o progetto e le argomentazioni di
valutazione associate.
Il Kickoff (inizio)
Un riunione di kickoff iniziale della durata di un'ora consente a tutti i partecipanti di acquisire le informazioni sul
problema da valutare. Il moderatore descrive il metodo Wideband Delphi ai membri del team che non lo conoscono e
fornisce agli altri responsabili alle valutazioni la specifica del problema e altre supposizioni o vincoli al progetto.
Il moderatore si impegna a fornire informazioni sufficienti per effettuare un buon lavoro senza influenzare
eccessivamente le valutazioni dei partecipanti.
Il team revisiona gli obiettivi della valutazione e discute il problema e tutte le argomentazioni associate. I
partecipanti concordano sulle unità di valutazione che utilizzeranno, come le settimane, le ore di manodopera, gli
importi monetari o le linee di codice. Se il moderatore conclude che tutti i membri del team sono sufficientemente ben
informati per contribuire all'attività di valutazione, il gruppo è pronto a partire. In caso contrario, i partecipanti
potrebbero aver bisogno di ricevere maggiori informazioni sul problema che stanno valutando oppure essere sostituiti da
altre persone che possono produrre delle valutazioni più accurate.
Per stabilire se si è pronti a procedere con la sessione Wideband Delphi, controllare i propri criteri di immissione -
vale a dire, i prerequisiti che devono essere soddisfatti per poter procedere con le fasi successive del processo.
Prima di passare all'esercizio di valutazione, accertarsi che siano soddisfatte le seguenti condizioni:
-
Siano stati selezionati i membri del team appropriati.
-
Sia stata tenuta la riunione di kickoff.
-
I partecipanti siano d'accordo sulle unità e sugli obiettivi della valutazione.
-
Il responsabile di progetto partecipi alla sessione.
-
I responsabili alle valutazioni abbiano le informazioni necessarie per partecipare efficacemente.
Preparazione individuale
Si supponga di voler stimare la quantità totale dell'impegno lavorativo (tipicamente indicato in ore di manodopera)
necessaria per completare un determinato progetto. Il processo di valutazione inizia con ciascun partecipante che
sviluppa in modo indipendente un elenco iniziale delle attività che dovranno essere completate per raggiungere
l'obiettivo del progetto indicato, utilizzando un modulo come quello mostrato in figura 2. Ciascun partecipante valuta
quindi l'impegno ciascuna attività richiederà. Suddividere ciascuna attività in unità piccole abbastanza per essere
valutate in modo accurato. Specificare le attività in modo chiaro, poiché qualcuno dovrà integrare tutti gli elenchi
delle attività del partecipante in un singolo elenco composito. Sommare le valutazioni prodotte per ciascuna attività
del progetto nelle unità concordate, per generare la valutazione complessiva iniziale.
Il processo di valutazione inizia con ciascun partecipante che utilizza in modo indipendente questo modulo per
sviluppare un elenco iniziale delle attività che dovranno essere completate per raggiungere l'obiettivo del progetto
indicato.
La propria valutazione non deve avere alcuna relazione con la risposta che si crede voglia ascoltare il responsabile di
progetto o altri portatori d'interesse. Vi è una buona probabilità che la valutazione non rientrerà nei limiti
progettuali accettabili della pianificazione, dell'impegno o del costo, una situazione che richiede delle negoziazioni
e potrebbe condurre a una riduzione dell'obiettivo, un prolungamento dei tempi o una rettifica delle risorse; tuttavia,
evitare che le pressioni esterne influiscano sulla propria proiezione ottimistica di come verrà eseguito il progetto.
Oltre ad identificare le attività del progetto, registrare separatamente tutte le attività per operazioni associate o
di supporto. Non dimenticare di elencare le attività che riguardano la gestione, la gestione della configurazione e le
attività relative al processo nel primo ciclo. Accertarsi di includere le attività di rilavorazione che seguono le
attività di verifica o di controllo. La rilavorazione per correggere dei difetti rientra nelle attività quotidiane,
pertanto è necessario pianificarla. Se si sta valutando una pianificazione, considerare tutte le attività generali non
specifiche del progetto che occorre realizzare nella propria progettazione. Queste attività includono le riunioni, le
vacanze, la formazione, altre assegnazioni di progetto e una miriade di altri eventi che occupano tempo della propria
giornata.
Poiché supposizioni radicalmente diverse possono condurre ad enormi cambiamenti delle valutazioni, prendere nota di
tutte le supposizioni effettuate durante la preparazione delle valutazioni. Ad esempio, se si suppone che sarà
acquistata una specifica libreria di componenti o che verrà riutilizzata una da un precedente progetto, annotare tali
dati. Un altro responsabile alle valutazioni potrebbe supporre che il progetto svilupperà quella libreria, determinando
una corrispondenza errata tra le due valutazioni complessive.
Tenere presente le seguenti linee guida di valutazione:
-
Si supponga che una persona (se stessi) eseguirà tutte le attività.
-
Si supponga che tutte le attività saranno eseguite in modo sequenziale; in questa fase non occorre preoccuparsi
delle attività precedenti e della sequenzialità.
-
Si supponga che si possa dedicare un impegno ininterrotto a ciascuna attività (ciò può sembrare assurdamente
ottimistico, ma semplifica il processo di valutazione).
-
Nelle unità di tempo del calendario, elencare tutti i tempi di attesa noti che si prevedono di avere tra le
attività. Ciò aiuta a convertire più tardi le valutazioni dell'impegno in valutazioni della pianificazione.
Riunione di valutazione
Il moderatore inizia la riunione di valutazione raccogliendo le valutazioni individuali dei partecipanti e creando un
grafico come in figura 3. Ciascuna valutazione complessiva del progetto del partecipante viene mostrata come una X
nella riga "Round 1". Ciascun responsabile alle valutazioni può vedere dove il proprio valore iniziale si colloca nel
grafico. Con molta probabilità le valutazioni iniziali copriranno un intervallo tremendamente grande. Si possono
facilmente immaginare le differenti conclusioni che si sarebbero raccolte se fosse stato chiesto ad uno solo dei
partecipanti di fornire una valutazione e quella valutazione fosse stata utilizzata per pianificare il progetto.
Il moderatore inizia la riunione di valutazione raccogliendo e inserendo nel grafico le valutazioni individuali dei
partecipanti. Ciascuna valutazione complessiva del progetto del partecipante viene mostrata come una X nella riga
"Round 1". Con molta probabilità le valutazioni iniziali copriranno un intervallo tremendamente grande.
In alcune organizzazioni, il moderatore non rivela l'identità di cui ha prodotto ciascuna valutazione; si crede che
l'anonimato sia un aspetto importante della tecnica Delphi. L'anonimato impedisce che un collega più esplicito possa
intimidire gli altri partecipanti con il proprio modo di vedere le cose. Inoltre, ciò significa che i membri del team
sono meno propensi ad allinearsi al giudizio del più autorevole dei partecipanti quando le loro analisi portano a
conclusioni differenti. Tuttavia tale aspetto non è obbligatorio.
Ciascun responsabile alle valutazioni legge il proprio elenco di attività iniziale, identificando tutte le supposizioni
effettuate e sollevando le questioni o le problematiche, senza rivelare la valutazione personale. Ciascun partecipante
avrà elencato diverse attività che devono essere eseguite. La combinazione degli elenchi di attività individuali
conduce ad un elenco più completo che un qualsiasi responsabile alle valutazioni possa produrre. Questa strategia
funzionerà fino a diverse dozzine di attività individuali. Se si dispone di molte più attività, potrebbero essere
troppo dettagliate. E' possibile suddividere il problema in diversi problemi secondari e valutarli individualmente.
Durante questa discussione iniziale, i membri del team rivelano le loro supposizioni, domande e argomentazioni di
valutazione circa il problema. Di conseguenza, il team inizierà a convergere su un insieme condiviso di supposizioni e
un elenco comune di attività. Conservare questo elenco di attività finale da utilizzare come punto di partenza per la
successiva valutazione di un progetto simile.
In seguito a questa discussione iniziale, tutti i partecipanti modificano contemporaneamente (e in modo silenzioso) le
loro valutazioni nell'aula delle riunioni. Essi possono riesaminare i loro elenchi di attività in base alle
informazioni condivise durante la discussione e modificare le valutazioni individuali in base alle nuove conoscenze
dell'ambito dell'attività o delle supposizioni modificate. Tutti i responsabili alle valutazioni possono aggiungere
nuove attività ai moduli e annotare tutte le modifiche che desiderano apportare alle loro valutazioni delle attività
iniziali. La netta modifica di tutte le attività equivale alla modifica a quella valutazione complessiva del progetto
del partecipante.
Il moderatore raccoglie le valutazioni complessive riesaminate e le traccia sullo stesso grafico, nella riga "Round 2".
Ciò è possibile anche sulla lavagna per una facile visibilità. Come mostra la figura 4, il secondo ciclo (round)
potrebbe condurre ad una distribuzione più ristretta delle valutazioni centrata intorno a una media più alta rispetto
alla media dei valori nel Round 1. Cicli aggiuntivi dovrebbero restringere ulteriormente la distribuzione. Il ciclo di
revisione dell'elenco attività, di discussione delle problematiche e delle supposizioni e di preparazione delle nuove
valutazioni continua finché non vengono soddisfatte le seguenti condizioni:
-
sono stati completati quattro cicli
-
le valutazioni convergono in un ristretto intervallo accettabile (definito in anticipo)
-
l'orario della riunione assegnato è stato rispettato (di solito due ore)
-
tutti i partecipanti sono contrari a modificare le loro ultime valutazioni
In seguito alla discussione sulle valutazioni iniziali, tutti i partecipanti modificano le loro valutazioni. Il
moderatore raccoglie le valutazioni complessive riesaminate e le traccia sullo stesso grafico, nella riga "Round 2". I
successivi cicli potrebbero condurre ad una distribuzione più ristretta delle valutazioni centrata intorno a una media
più alta rispetto alla media dei valori nel Round 1.
Il moderatore tiene il gruppo unito, pianificando le discussioni della durata di 15 o 20 minuti per evitare
argomentazioni interminabili. Il moderatore deve attenersi alle reali pratiche di agevolazione delle riunioni, come
iniziare e terminare in orario e incoraggiare tutti i partecipanti a contribuire e gestire un ambiente imparziale e non
giudiziale. Mentre la conservazione dell'anonimato per le valutazioni individuali è importante nei primi due cicli, i
membri del team possono concordare ad un certo punto di rivelare le proprie valutazioni e raggiungere una conclusione
mediante una discussione aperta. In questo modo hanno la possibilità di discutere le attività per le quali le loro
valutazioni variano sostanzialmente. Altrimenti, il moderatore non deve rivelare l'identità delle persone che hanno
prodotto le valutazione finali finché la sessione non è terminata.
Assemblaggio delle attività
Il lavoro non è terminato quando si conclude la riunione di valutazione. Il moderatore o il responsabile di progetto
assembla le attività del progetto e le relative valutazioni individuali in un unico elenco di attività principale.
Inoltre, questa persona integra gli elenchi individuali delle supposizioni, le attività relative alla qualità e al
processo, le attività generali ed i tempi di attesa.
Il processo di integrazione si occupa di rimuovere le attività duplicate e di raggiungere una soluzione ragionevole
delle diverse valutazioni per le attività individuali. "Ragionevole" non significa sostituire le valutazioni del team
con valori preferiti dal responsabile di progetto. Enormi differenze di valutazione per attività apparentemente simili
potrebbero indicare che i responsabili alla valutazione interpretano quell'attività in modi diversi. Ad esempio, due
persone potrebbero entrambi avere un'attività chiamata "implementa una classe." Tuttavia, un responsabile alle
valutazioni potrebbe aver incluso nell'attività la verifica dell'unità e la revisione del codice, mentre l'altro
intendeva solo l'impegno lavorativo di codifica. Tutti i responsabili alle valutazioni devono definire le loro attività
chiaramente per ridurre la confusione durante questa fase di integrazione. La fase di integrazione deve preservare
l'intervallo di valutazione per ciascuna attività, ma se la valutazione dell'attività di un responsabile alle
valutazioni è stata totalmente diversa da quella degli altri responsabili, prenderne conoscenza e poi cancellarla o
modificarla.
Revisione dei risultati
Nella fase finale, il team di valutazione revisiona i risultati riepilogati e raggiunge un accordo sull'esito finale.
Il responsabile di progetto fornisce agli altri responsabili alla valutazione un elenco globale delle attività, le
valutazioni individuali, le valutazioni cumulative, l'elenco delle supposizioni e tutte le altre informazioni. Unire
nuovamente il team per una riunione sulla revisione da 30 a 60 minuti per portare alla conclusione l'attività di
valutazione. Questa riunione fornisce anche un'opportunità per il team di osservare l'esecuzione del processo Wideband
Delphi e di suggerire delle modalità di miglioramento per future applicazioni.
I partecipanti devono essere certi che l'elenco di attività finale sia il più completo possibile. Possono aver
considerato di aggiungere delle attività rispetto alla riunione sulla valutazione, attività che possono essere aggiunte
adesso all'elenco. Individuare quali attività che hanno avuto delle valutazioni individuali totalmente diverse sono
state integrate in un modo ragionevole. L'obiettivo finale è di produrre un intervallo di valutazione che consente al
responsabile di progetto e ad altri portatori d'interesse chiave di procedere con la pianificazione e l'esecuzione del
progetto ad un livello di confidenza accettabile.
Conclusione della valutazione
Il processo di valutazione è concluso quando sono stati soddisfatti i criteri di uscita specificati, il che consente di
cantare vittoria e di procedere in avanti. Di seguito sono riportati i criteri di uscita Wideband Delphi tipici:
E' stato assemblato l'elenco globale di attività.
Si dispone di un elenco di riepilogo delle supposizioni sulle valutazioni.
I responsabili alla valutazione hanno raggiunto un accordo su come le loro valutazioni individuali siano state
sintetizzate in un'unica serie con un intervallo accettabile.
A questo punto è necessario decidere l'utilizzo dei dati. E' possibile effettuare una semplice media delle valutazioni
finali per ottenere un'unica valutazione del punto, che probabilmente è il dato che la persona che ha richiesto la
valutazione desidera conoscere. Tuttavia, una semplice media è probabilmente molto bassa ed è quindi utile conservare
l'intervallo di valutazione. Le valutazioni sono previsioni del futuro e l'intervallo rispecchia l'innata incertezza di
fissare la sfera di cristallo. Si possono presentare tre valori numerici: la media delle valutazioni come scenario
pianificato, il valore minimo come migliore scenario e il valore massimo come peggiore. Oppure, è possibile presentare
il valore medio come il risultato nominale previsto più il valore (massimo meno il valore medio) e meno il valore
(medio meno il valore minimo).
Ciascuna valutazione ha una certa probabilità di essere vera, cosicché una serie di valutazioni forma una distribuzione
della probabilità. Nel capitolo 6 di A Discipline for Software Engineering (Addison-Wesley, 1995), Watts Humphrey
descrive un modo matematicamente preciso di mettere insieme più valutazioni e relative incertezze per generare una
valutazione complessiva con intervalli di previsione superiori ed inferiori. Un altro complesso approccio è di eseguire
una simulazione Monte Carlo per generare una distribuzione della probabilità di possibili risultati di valutazione
basati sui valori finali.
Anche se i risultati di una sessione Delphi potrebbero non essere graditi da promotori e animatori, essi possono
decidere se pianificare un progetto ad un livello di confidenza del 10 percento, del 90 percento oppure ad una
percentuale nell'intervallo. Accertarsi di confrontare i risultati effettivi del progetto con le proprie valutazioni al
fine di migliorare l'accuratezza di successive valutazioni.
Ripetizione dell'operazione (Iterazione)
Un altro piacevole aspetto di questo metodo è che dopo una valutazione iniziale e piuttosto grossolana effettuata ad
esempio durante la fase iniziale, le valutazioni possono essere perfezionate ad ogni fase (o anche ad ogni iterazione).
Il processo può essere più veloce se sono disponibili gli stessi responsabili alla valutazione, riprendendo da dove si
è concluso nel precedente ciclo di valutazione. Si rendono disponibili più informazioni sul problema, alcune
supposizioni vengono modificate e un'architettura è presente per suddividere l'impegno lavorativo.
La nuova valutazione potrebbe avere un intervallo più ristretto, ma non deve necessariamente trovarsi nell'intervallo
di quella precedente: potrebbe essere più alto o meno. Se l'intervallo è più alto, si tratta di un inconfondibile
segnale di rischio per il responsabile di progetto, rischio che va affrontato immediatamente.
Metodo Wideband Delphi valutato
Nessun metodo di valutazione è perfetto; se lo fosse, si chiamerebbe previsione e non valutazione. Tuttavia, la tecnica
Wideband Delphi integra alcuni principi di valutazione consolidati. L'approccio del team riconosce il valore della
combinazione di più prospettive esperte. L'intervallo delle valutazioni prodotte rispecchia la variabilità intrinseca
del processo di valutazione.
Sebbene richieda del tempo e un gruppo di esperti responsabili alla valutazione, la tecnica Wideband Delphi rimuove
alcuni criteri dalla valutazione e filtra i valori iniziali in eccesso.
|