Linea guida: Valutazione dell'impegno lavorativo utilizzando la tecnica Wide-Band Delphi
Questa linea guida descrive in che modo utilizzare la tecnica Wide-Band Delphi per valutare l'impegno lavorativo dello sviluppo di software.
Relazioni
Descrizione principale

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.

Diagramma che mostra il flusso del processo Delphi a banda larga.
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.

Grafico che mostra il modulo di valutazione Delphi di esempio
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.

Grafico che mostra la valutazione iniziale da una sessione Wideband Delphi.
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
Grafico di valutazione che mostra thre cicli da una sessione Wideband Delphi.
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.