Inside

condividi

Quando rilasciare sul mercato un'applicazione?

Aspettare e sviluppare tutte le funzionalità o lanciare l'applicazione appena è possibile?

Negli ultimi anni i modelli e le metodologie di sviluppo di un'applicazione seguite dalle aziende sono cambiati radicalmente per cercare, da un lato di venire incontro in maniera proattiva alle esigenze e ai tempi del cliente, e dall’altro di pianificare il più possibile i requisiti e le fasi di sviluppo.


Quando si realizza un prodotto software, è importante svolgere le differenti attività seguendo una serie di passi prevedibili, che aiutino a ottenere risultati di alta qualità nel tempo prefissato.
È necessaria innanzitutto una prima definizione degli obiettivi, ovvero delle finalità del progetto, nonché un'analisi delle esigenze e della fattibilità, che indica l’espressione, la raccolta e la formalizzazione delle esigenze del cliente. Dopo questi step preliminari si potrà procedere con lo sviluppo dell'applicazione, che a sua volta si suddivide in sotto-attività distinte, come la codifica e i test unitari, l’integrazione e verifica fino al rilascio del prodotto.


La sequenza di queste fasi del ciclo di vita di un software dipende dalla scelta del modello di sviluppo da adottare. Nel caso dello sviluppo di applicazioni, si pone spesso il problema se sia meglio rilasciare singoli pacchetti di requisiti con incrementi e modifiche successive, coinvolgendo volta per volta il cliente, oppure pianificare fin dall’inizio l’intera realizzazione di un’applicazione, sottoponendola a collaudo soltanto nella sua completezza. Si tratta di due approcci molto diversi, che sono stati progressivamente distinti in due categorie principali: il metodo Waterfall, che corrisponde a un tipo di gestione tradizionale e sequenziale, e il metodo Agile, ovvero, un tipo di gestione innovativo e iterativo.


Il metodo Waterfall si basa su una sequenza ben definita e a cascata delle fasi di sviluppo di un prodotto, non si passa alla fase successiva senza aver terminato quella precedente. Di contro, il metodo Agile suddivide il lavoro in cicli (sprint) di attività; i requisiti vengono raccolti, discussi e valutati all’inizio di ogni ciclo e l'utente è costantemente coinvolto. Si procede quindi sviluppando singoli blocchi di funzionalità, e non l’intero software in un unico blocco.


Nel metodo Waterfall tutte le fasi del lavoro sono pianificate una sola volta, ogni gruppo è a conoscenza di cosa deve fare e delle tempistiche da rispettare. Tuttavia, se c’è un ritardo, tutti i processi di conseguenza slittano fino a che il processo in questione non è terminato, talvolta le esigenze del cliente, che possono mutare nel tempo, non vengono interamente soddisfatte perché la fase di testing e valutazione avviene solo sul prodotto completo. Questi inconvenienti comportano il rischio di implementare soluzioni che, in fase finale di rilascio, non risultano tecnologicamente aggiornate. Nel metodo Agile questo rischio è evitato perché le attività di testing e validazione sono distribuite in tutte gli stadi del ciclo di vita del prodotto. Il cliente diviene quindi parte integrante del team di progetto, per cui la soddisfazione delle sue esigenze acquistano una maggiore importanza. Nello stesso tempo, nella metodologia Agile il lavoro risulta spesso meno strutturato, i flussi di attività meno definiti e pianificabili.

Oggi molte aziende stanno progressivamente migrando verso metodologie di lavoro Agile, ma la scelta tra i due è sempre relativa alle peculiarità del progetto in questione. Il Waterfall è il metodo da seguire per progetti con budget e tempi relativamente definiti in cui gli attori coinvolti sono molti e si ha la necessità di una maggiore strutturazione delle attività. Il metodo Agile è invece perseguibile in condizioni più flessibili, in cui il focus è prevalentemente sulle esigenze di business. Non esiste però un modo di sviluppare e mettere sul mercato un’applicazione che sia assolutamente migliore di un altro.