by Larissa Moss

Giugno 2010

Extreme Scoping™: approcci agili al DW e alla BI

Quando nei progetti di data warehousing e Business intelligence (Dw/Bi) si utilizzano metodologie tradizionali, accade spesso che i project manager, anche quelli più esperti, abbiano una diffusa sensazione di non avere alcun reale ed efficace controllo: i requisiti appaiono essere un bersaglio mobile; la comunicazione tra le persone coinvolte non è soddisfacente; la divisione dei compiti è inefficace e causa di eccessivi rifacimenti. A tutto questo si aggiunge la costante pressione esercitata dall’azienda perché il tutto venga implementato in tempi rapidi (90 giorni o meno), pressione che viene esercitata anche quando il team di progetto è impegnato nelle fasi più critiche di ultimazione e perfezionamento di quanto richiesto.
E per rispettare requisiti e tempistiche la standardizzazione dei dati viene omessa, la fase di testing accorciata, la documentazione non viene prodotta. In definitiva, la qualità è compromessa. E’ possibile fare in modo che tutto questo venga comunque svolto rispettando quanto stabilito? Certo che sì! Ma dovete mettere da parte alcune delle discipline di project management tradizionali e aprirvi a nuovi approcci.

Il concetto della release software

Mentre molte organizzazioni si rendono conto che è impossibile realizzare in un attimo un intero Dw, non si accorgono che è anche impossibile creare dal nulla e in tempi rapidi un’intera applicazione. Perché? Beh, per il semplice fatto che i requisiti sono nella maggior parte dei casi volubili; la portata o l’estensione di quanto ci si propone di realizzare è troppo vasta o la tempistica troppo stretta; alcune componenti tecnologiche non sono mature; la complessità a livello di integrazione dei dati non è compresa nella sua interezza; la qualità dei dati sorgente scarsa in quanto questi ultimi non sono profilati adeguatamente; il team di progetto insufficiente o troppo numeroso oppure non allineato agli obiettivi desiderati; non ultimo, una line of business troppo occupata per partecipare attivamente al programma di lavoro pianificato. Con un progetto che si trova in simili condizioni, la cosa migliore da fare è iniziare immediatamente un’attività di prototyping e proseguire su questa strada.
Ma come eseguire attività di prototyping su un’intera applicazione e le sue componenti di Dw senza ricadere nella logica a cascata della classica sequenza che prevede requisiti, analisi, disegno, codifica e testing? La soluzione sta nello spezzare l’applicazione in più release software. Lo spettro di intervento, o scope, di ciascuna release conterrà soltanto una piccola porzione dei requisiti applicativi, da qui il nome di extreme scoping dato a questo approccio per release. Ciascuna singola release diventa un progetto che viene sviluppato utilizzando un approccio di prototyping iterativo. E a ciascun prototipo viene assegnato un tempo predefinito, in un range che può variare da uno a tre mesi. La maggior parte delle release devono rispettare tempi di produzione in funzione della tempistica, sebbene possano esserci occasioni in cui compiere attività di fine tuning in una successiva release prima di mettere il tutto in produzione. Dopo diverse release si avrà finalmente un’applicazione completa e pienamente funzionante.
Utilizzando questo più agile approccio la qualità dell’applicazione sarà probabilmente più elevata poiché sarà possibile raffinare i requisiti attraverso ogni singola release fino al punto di stabilità desiderato: lo scope di ciascuna release dovrà essere sufficientemente limitato per riuscire a soddisfare più facilmente specifiche deadline; le componenti tecnologiche potranno essere valutate sin dall’inizio; la complessità dell’integrazione dei dati potrà essere gestita attraverso passaggi graduali; la qualità dei dati sorgente sarà adeguatamente profilata poiché si potranno documentare incrementalmente le regole di business; il team di progetto potrà essere piccolo e sostenere attività di training durante le prime release limitando così impatti negativi sull’intera applicazione; infine, non ci si deve dimenticare che la line of business è più facilmente coinvolgibile in attività di prototyping piuttosto che in progetti tradizionali. Il bello di tutto questo è che i progetti così impostati possono essere anche più divertenti rispetto a quelli tradizionali perché mettono in moto delle dinamiche di gruppo differenti.

Il processo di pianificazione delle release software

La creazione di un piano di progetto utilizzando l’approccio extreme scoping diverge leggermente dal modo tradizionale. Di solito il project manager imposta la metodologia e seleziona le attività che devono essere eseguite in quella che viene comunemente definita una work breakdown structure (Wbs). Utilizzando come guida una struttura Wbs è quindi possibile creare un piano di progetto dettagliato che viene tipicamente adattato nella sequenza delle fasi di sviluppo della metodologia: definizioni dei requisiti, analisi, disegno, codifica, testing e implementazione. Il piano di progetto dettagliato è tipicamente un diagramma Gantt di 30-40 pagine e serve a guidare le attività quotidiane e la gestione dei cambiamenti consentendo al tempo stesso di dare informazioni al management sullo stato di avanzamento dei lavori.
Con l’approccio extreme scoping, la gestione del progetto è responsabilità di uno stretto numero di persone del team (4-5) e non di un singolo project manager. Questo gruppo di persone, che definiremo in seguito come core team, esegue attività di revisione della metodologia e seleziona le attività da compiere in una Wbs preliminare. Il core team, utilizzando quest’ultima come guida, crea una roadmap di progetto di alto livello per riuscire a sviluppare una comprensione complessiva in merito a risorse, costi, pianificazione, rischi e presupposti dell’intera applicazione. Attività che sono necessarie per definire il numero esatto di release software, la loro corretta sequenza, le dipendenze tra i vari requisiti, e quindi, tempistica e scope di ciascuna release. Se si facesse a meno di questa importante fase, il processo di divisione di un’applicazione in più release software sarebbe completamente arbitrario.
Una volta che i membri del team hanno raggiunto dimestichezza con lo scope e la sequenza delle release software, e sono confidenti di completare le attività nella deadline definita, a questo punto si può creare un piano di progetto dettagliato con obiettivi (milestone) settimanali per la prima release. In questo modo è possibile attenersi strettamente alle tempistiche e pianificare il lavoro di conseguenza. In altre parole si può determinare in quali condizioni deve essere lo stato del progetto con un anticipo di una settimana e comprendere se lo spettro di intervento della release è troppo ampio o se i periodi che intercorrono tra i diversi milestone settimanali sono sovrastimati.
Dopo che le attività di progetto della prima release software sono state organizzate in milestone, i membri appartenenti al core team devono provvedere a organizzare un appropriato numero di team di lavoro. Conoscendo le attività da svolgere e gli obbiettivi da raggiungere settimanalmente il core team assegna i compiti facendo riferimento alla struttura Wbs creata precedentemente. Si devono inoltre definire quali task e deliverable devono essere assegnate alle singole persone e a quale team. Le assegnazioni quotidiane dettagliate possono essere documentate su una lavagna, un foglio elettronico o altri media informali che consentono di essere modificati rapidamente e facilmente. Questo piano di progetto dettagliato informale viene utilizzato dal core team per consentire l’espletamento delle attività quotidiane, gestire il processo di cambiamento durante la fase di prototyping e monitorare il progresso del progetto stesso. Non deve invece essere usato per fornire un rapporto sullo stato del lavoro al management. In questo caso è utile piuttosto un diagramma Gantt che mostri unicamente le milestone settimanali.
Se la prima release software viene completata in tempo e senza problemi, i membri del core team possono pianificare la seconda release nello stesso modo. Attenzione, però, se ci sono problemi con la prima release – attività sottostimate, consegne incomplete, frizione tra le diverse persone del team, costanti aggiornamenti degli obiettivi – il core team deve procedere a una revisione e modifica del piano di progetto di alto livello che riguarda l’intera applicazione. Si deve riconsiderare e avere una comprensione globale dello scope, delle risorse, dei costi, della schedulazione, dei rischi e dei presupposti relativi all’intera applicazione. Si deve quindi provvedere ai cambiamenti necessari per le successive release. Questo può includere cambiamenti di scope, aggiornamento del numero di release, ridefinizione delle priorità, cambiamento della sequenza delle diverse release, delle consegne di una o più release, tempistiche e allocamento di risorse. Soltanto allora il core team potrà procedere alla pianificazione dettagliata della successiva release.

Conclusioni

Il concetto popolare dello sviluppo iterativo è applicabile sia allo sviluppo di un Dw per piccoli incrementi, sia a livello applicativo. Invece di organizzare il progetto per fasi che contemplino requisiti, analisi, disegno, codifica, testing e implementazione, è opportuno spezzare il progetto in più release software, ovvero definire multipli progetti. Infine, è importante gestire ciascuna singola release coerentemente con gli obiettivi e non in virtù del completamento delle singole task.