Metodologia
La metodologia ICare si ispira ad alcuni principi mutuati dalle metodologie agili ormai diffuse nell'ambito dello sviluppo applicativo opportunamente declinati sulle specificità della Business Intelligence.
- Iteratività: in progetti complessi eseguiti in scenari dinamici è estremamente improbabile che gli attori in gioco abbiano la capacità e gli elementi necessari per formarsi a priori un quadro preciso ed esaustivo dei requisiti. Fissare i vincoli principali e procedere poi per raffinamenti successivi al rilascio delle singole funzionalità permette di beneficiare di quanto si apprende in corso d'opera piuttosto che legarsi ad assunzioni fatte in qualche misura alla cieca
- Coinvolgimento: gli obiettivi dell'azienda e, di conseguenza, quelli specifici dei singoli utenti, sono al centro delle nostre preoccupazioni. Il processo iterativo che porta alla soluzione finale non può quindi che svolgersi in costante collegamento con la direzione per assicurare l'aderenza di quanto realizzato alle direttive aziendali e, nel dettaglio, interagendo continuamente con gli utenti su basi il più possibile concrete (tipicamente privilegiando il confronto su esempi e prototipi rispetto alla negoziazione di requisiti più o meno formalizzati). Lo stesso principio si applica anche nelle relazioni con i referenti tecnologici del cliente per garantire che la soluzione che si va formando si integri in maniera appropriata e gestibile nell'infrastruttura IT esistente
- Funzionalità e Tempestività: il valore percepito della soluzione coincide in larga misura con le funzionalità esposte all'utente e la loro disponibilità quando servono. Questo non significa che altri fattori che agiscono dietro le quinte (consistenza e pulizia dei dati, coerenza del modello, metadati ecc...) si possano trascurare impunemente: spesso sono anzi i veri fattori decisivi. Tuttavia, dato che incidono in maniera indiretta sul risultato finale, non possono essere esposti come valore offerto all'utente e quindi condizionare un rilascio o costituirne il contenuto. Il sostegno e la partecipazione al progetto sono alimentati dai ritorni concreti ottenuti dagli utenti: privilegiare questo aspetto permette di ricavare le risorse e gli spazi necessari per gestire ed evolvere in maniera il più possibile trasparente all'utente anche gli aspetti architetturali e infrastrutturali su cui poggia il sistema
- Flessibilità: i cambiamenti accadono e, anzi, la capacità di promuoverli e di reagire a quelli imposti è sempre più un fattore competitivo per ogni azienda. Con il crescere della complessità dei processi aziendali è ugualmente probabile che variazioni nei requisiti siano indotte semplicemente dalla maggiore comprensione di questi ultimi che tutti gli attori acquisiscono nel tempo. In questo contesto appare più efficiente non impegnare risorse nel tentativo di prevenire lo spettro del cambiamento con un grosso sforzo iniziale che tenti di prevedere il futuro e rappresentare compiutamente tutta la complessità in gioco ma focalizzarle sulla capacità di adattamento promuovendo l'adozione di tecnologie e metodologie abilitanti
- Testing: per convergere il più velocemente possibile su un risultato utilizzabile è necessario che l'attività di test sia eseguita continuativamente in tutte le fasi di tutte le iterazioni. Questo permette di affiancare al test funzionale che scaturisce dall'interazione con l'utente, anche un livello di test più tecnico che indirizza problematiche legate alla qualità dei dati disponibili e alla correttezza e prestazioni dei processi di trasformazione. Cogliere con il massimo anticipo possibile queste criticità permette di indirizzarle in maniera più strutturata nel corso dello sviluppo riducendo il rischio di costosi rifacimenti, migliorando, ove possibile, la tolleranza dei processi ad una bassa qualità del dato e permettendo di tarare le aspettative degli utenti sull'effettivo livello di qualità ed affidabilità raggiungibile
L'adesione a questi principi è funzionale a conseguire nella manierà più efficace ed efficiente possibile due soli obiettivi:
- Capire, nel quadro delle linee guida definite dalla direzione, quali sono le responsabilità di un utente o di un processo e quindi le decisioni che devono essere prese
- mettere a disposizione le informazioni e gli strumenti necessari per farlo
Ogni attività del progetto è ultimamente riconducibile a queste due finalità che sono continuamente tenute in considerazione come criterio di orientamento delle numerose scelte in gioco
Il piano di progetto viene diviso in due macrofasi distinte per contenuti e finalità: preparazione ed esecuzione.


