Progetto: le fasi di sviluppo e "integrazione"

di Marco Altese

scritto il

Affrontiamo le più note, ma anche tra le più delicate e coinvolgenti, fasi del progetto. Fasi in cui si porta a compimento quanto ideato verificando costantemente risultati e tempi

Continua il nostro approfondimento delle fasi che compongono il ciclo di vita di un progetto ed in particolare di un progetto informatico. Dopo aver visto, in un articolo precedente, le fasi di Planning e Design analizziamo quelle di Development e Integration.

Development

La fase di sviluppo del progetto è, probabilmente, quella più nota alla stragrande maggioranza degli addetti ai lavori in tema di Information Technology.

All’inizio di questa fase, il Project Manager si occuperà di creare lo “schedule” (piano) dettagliato delle attività, relativamente alla implementazione del codice sorgente. Tuttavia, la costruzione del sistema software, in questa fase, non si limita alle attività di pura programmazione ma include anche la creazione dei test dei singoli componenti e delle specifiche caratteristiche (unit testing) del prodotto. Naturalmente, anche questi ultimi task dovranno essere pianificati con cura dal Project Manager. E’ addirittura consigliabile, secondo le recenti tendenze, scrivere i test dell’applicazione prima ancora che venga inziata la stesura del codice sorgente.

Nel momento in cui sia stata terminata l’attività di scheduling e siano stati fissati gli obiettivi intermedi (milestones) con le relative date di consegna, la fase di development vera e propria può avere inizio. Oltre alla sopra citata attività di scheduling delle attività, il Project Manager in questa fase dovrà porre sicuramente particolare attenzione alla gestione del team impegnato sul progetto. A questo impegno si aggiungono le attività di gestione del budget, il controllo circa le eventuali modifiche richieste in corso d’opera dal cliente, la creazione di report sullo stato di avanzamento del progetto e, non meno importante, un assidua verifica sulla qualità del prodotto che si sta creando.

Normalmente, durante la fase di development, vengono rilasciate svariate release ad uso interno (build), che sono intervallate scrupolosamente da una serie di test ad ogni rilascio previsto. Si va avanti così fin quando tutte le caratteristiche e tutti i componenti previsti in fase di design sono stati completati con successo. La conclusione della fase di sviluppo, naturalmente, dovrà prevedere anche che tutti i test e la risoluzione delle anomalie riscontrate siano stati completati e risolti positivamente.

Integration

La fase di integrazione riguarda il passaggio delicato che avviene quando il codice sviluppato per tutti i componenti del sistema viene integrato per dar vita al prodotto finale. Per sistemi complessi, sia dal punto di vista hardware che software, è abbastanza normale (quasi inevitabile) che emerga qualche problema, in questa fase. È proprio in questo momento del progetto, dunque, che vanno affrontati e risolti tutti i problemi di integrazione affinché il prodotto sia successivamente pronto per il rilascio definitivo.

La risoluzione dei problemi deve anche lasciare spazio ad una fase di controllo delle performance e della stabilità che, se giudicate non consone alle specifiche ed ai requisiti fissati, deve dar vita alle necessarie modifiche (sul codice, sulla configurazione o dal punto di vista hardware) che consentano di rientrare nei parametri richiesti dal cliente. Spesso c’è la tendenza a ritenere che i problemi legati alle performance siano, quasi sempre, dovuti ad un hardware insufficiente o inadatto. La verità è che l’hardware rappresenta la causa dei problemi in una bassa percentuale di casi ed anzi nella maggior parte delle circostanze esso è sovrastimato.

La fase di Integration, non di rado, rappresenta la fase più stressante del ciclo di vita del progetto. Se uno o più problemi, infatti, tardano a trovare una soluzione accettabile sarà cura del Project Manager richiedere uno sforzo maggiore a tutto il team chiedendo di sacrificare, se necessario, anche i (tanto attesi) fine settimana, pur di fare il possibile per rientrare nei tempi prefissati.

I test di usabilità e gli stress test, basati spesso su programmi che automatizzano la procedura altrimenti svolta dalla presenza umana, fanno anch’essi parte delle attività da svolgere durante la fase di integration. Uno dei compiti primari del Project Manager, in questo periodo, sarà quello di lavorare sui piani relativi alla successive fasi di deployment e post-deployment. Dovranno, infatti, essere pianificate le necessarie attività legate al training, come la scrittura dei necessari manuali e la creazione di corsi di apprendimento ad hoc per il cliente.