Come abbiamo rimarcato più volte, DAD prevede un’esplicita fase di Inizio, o Scoperta, del progetto, definita Inception. Tale fase è fondamentale per una corretta valutazione del progetto e per l’individuazione del relativo valore e dei relativi rischi (value and risk driven). Sinteticamente è utile ricordare i principali Goal della fase di Inception:
- chiarire l'esigenza (bisogno) che si intende risolvere;
- identificare una soluzione tecnica percorribile;
- pianificare una strategia;
- costituire il Team e attrezzare l'ambiente di lavoro;
- garantirsi il consenso degli stakeholder e i finanziamenti necessari.
Quello che è utile evidenziare è la disciplina necessaria a gestire ed attuare tale fase, necessaria al fine di evitare di far ricadere l’intero framework Agile nel poco desiderato water-fall-scrum. Secondo i sondaggi che Scott Ambler sottopone a cadenza annuale a decine di aziende che utilizzano metodologie Agile, la fase di Inception (non necessariamente identificata formalmente come tale) ha, tipicamente, una durata media di 4 settimane, a seconda della complessità del progetto e della maturità dell’azienda e del Team nell’utilizzo delle pratiche Agili.
Per affrontare correttamente il tutto, è possibile affidarsi ad alcune linee guida:
- Riconoscere che l’obiettivo è quello di incamminarsi nella direzione giusta. Per ogni progetto è indispensabile comprenderne l’essenza e la relativa complessità, effettuando un planning iniziale del contesto di risoluzione e una prima definizione dell’Intentional Architecture;
- Educare le persone ad accettare che i dettagli emergono successivamente. Questo è un fattore chiave: la fase di Inception non deve avere la presunzione di definire puntualmente il tutto, ma solo di definirne i contorni, impiegando l’effort effettivamente necessario. Il Team (così come gli stakeholder) devono comprendere un concetto fondamentale: rimandare la definizione puntuale al momento in cui essa è indispensabile, permette di effettuarne l’analisi con il massimo know-how afferente, sicuramente molto più di quanto si ha all’inizio del progetto. Ciò è particolarmente vero se il tutto avviene durante la fase di Construction;
- Promuovere un senso di urgenza. Se da un lato è vero che una non attenta analisi dei fattori associati allo start-up di un nuovo progetto può aumentare il rischio di fallimento del progetto, dall’altro impiegare troppe energie nella fase di up-front ritardando lo sviluppo è altrettanto rischioso perché si ritarda la possibilità di confrontarsi con soluzioni funzionanti (incrementali) e verificare le assunzioni e le scelte effettuate;
- Mantenere la modellazione leggera. La fase di Inception predilige la definizione di un piano iniziale e di una intentional architecture (architecture envisioning) che servirà da boundary alle azioni intraprese per soddisfare il progetto. Tali artefatti devono essere in grado di raccogliere l’essenza dei proprio obiettivi, restando flessibili in modo da poter essere rivisti e, se necessario, corretti quando richiesto;
- Dedicare al planning il minimo effort necessario. Esattamente come per gli aspetti più specificamente tecnici (architettura e scope) anche le attività afferenti al planning devono essere ridotte al minimo durante la fase di Inception. Si può, a tal proposito, sfruttare il noto “cono di incertezza” che permette di raffinare il planning man mano che si procede nel completamento delle Iterazioni (Construction).
In pratica, la fase di Inception deve dare una visione complessiva del progetto, della sua complessità, dell’effort di realizzazione richiesto e dei rischi annessi. Il tutto deve essere effettuato ad un livello sufficiente per iniziare il processo, evitando però di concentrarsi su un’analisi estremamente puntuale come avveniva nel modello a cascata.