L’approccio giusto per ottenere il massimo beneficio da un progetto digitale
Prima di scegliere il partner tecnologico ed iniziare un progetto digitale, è utile sapere che possono essere adottati due differenti approcci: il metodo Agile oppure quello Tradizionale.
Metodo Agile
Nello specifico la metodologia Agile è caratterizzata da maggior flessibilità e da un processo di produzione iterativo, cioè composto da incrementi continui fino al raggiungimento del risultato finale desiderato dal cliente.
Una visione decisamente aperta e capace di adattarsi alle esigenze di ogni singolo progetto e di ogni singolo cliente. L’approccio Agile si fonda sull’ottimizzazione del tempo e del contributo delle persone, per ottenere il massimo risultato.
Le caratteristiche principali sono:
- gestione flessibile del progetto
- elasticità di fronte al cambiamento delle esigenze
- squadre multidisciplinari
- consegne frequenti (ogni 1 o 2 settimane)
- focus a breve termine e obiettivi periodici
- comunicazioni frequenti con il cliente
Le fasi iterative di un progetto Agile sono la pianificazione, progettazione, sviluppo, test e rilascio.
PRO metodo Agile
Coinvolgimento del cliente: l’adozione dell’approccio Agile consente e incoraggia la collaborazione continua tra le figure chiave del cliente e il team di sviluppo, durante tutto il progetto, alimentando così la fiducia tra tutte le persone coinvolte.
Requisiti incrementali: il metodo iterativo aiuta ad apportare modifiche, incorporare nuove idee e ridefinire le priorità delle consegne. Se il cliente desidera rilasciare inizialmente una versione di base del software, invece di attendere la versione definitiva, il modello Agile lo consente, anzi lo incoraggia.
Scopo ben focalizzato: è difficile perdere di vista i reali obiettivi di business del cliente, dato che la progettazione delle nuove funzionalità avviene assieme a lui durante ogni ciclo di sviluppo del prodotto.
Adattabilità: poiché i clienti possono condividere il feedback durante ogni iterazione, diventa più facile incontrare e risolvere i problemi, riorganizzare le funzionalità da sviluppare e, se necessario, aggiungerne o toglierne qualcuna.
Time-to-market rapido: la metodologia Agile si concentra meno sulla pianificazione e sulla documentazione e più sulla fornitura di software funzionante ad ogni consegna. Ciò accelera il time-to-market e porta l’impresa che investe in digitale a produrre Valore, in minor tempo.
Lavoro di squadra: il modello Agile consente a team multidisciplinari di lavorare insieme durante tutto lo sviluppo. I team si coordinano, valutano i propri progressi, rimangono focalizzati e si assumono la piena responsabilità dei loro compiti. Questo da potere alle persone, le motiva a creare software di alta qualità.
CONTRO metodo Agile
Organizzazione meno strutturata: i flussi di lavoro possono risultare meno organizzati e la documentazione ottenuta a fine progetto potrebbe risultare troppo sintetica o parziale.
Costi e tempistiche meno prevedibili: la cooperazione stretta con il cliente può far emergere requisiti aggiuntivi. La necessità di nuove iterazioni, e dunque di consegne aggiuntive, può portare a tempistiche più lunghe e, di conseguenza, a costi più elevati del previsto.
Impegno totale: Il modello Agile richiede un impegno pressoché totale da parte delle persone del team che hanno bisogno di collaborare e coordinarsi per realizzare un progetto di successo.
Robustezza del software: la natura iterativa del modello Agile porta a naturali rilavorazioni. Tuttavia l’aggiunta di requisiti importanti, durante le varie iterazioni, potrebbe generare impatti fino alle fondamenta del software.
Metodo Tradizionale
L’approccio tradizionale, chiamato anche Waterfall, è caratterizzato da un andamento lineare e sequenziale in cui ogni fase di sviluppo dev’essere approvata dal cliente prima che inizi la fase successiva. In questa metodologia, il processo scorre sempre dall’alto verso il basso, in un’unica direzione. Da qui il nome Waterfall (cascata).
Le caratteristiche principali:
- Gruppi di lavoro medio-grandi
- Metodi e pratiche di lavoro altamente definite
- Formalismi rigorosi (es: uso dell’UML – Unified Modeling Language)
- Ruoli molto ben definiti
- Esigua comunicazione con il cliente
Il processo di sviluppo segue una sequenza ben precisa: raccolta dei requisiti, analisi, progettazione, sviluppo, test e avvio in produzione.
PRO metodo Tradizionale
Struttura chiara: in questo modello c’è una chiara definizione dei requisiti e degli obiettivi, della tempistica e dei risultati del progetto. Ogni team sa bene cosa deve essere prodotto ed entro quando.
Documentazione: poiché questa metodologia implica una pianificazione meticolosa e la creazione di una solida documentazione, è difficilmente soggetta a refusi dovuti a incomprensioni o malintesi tra partner e cliente.
Misurazione dei progressi: ogni fase del progetto è pianificata. Pertanto, è facile tenere traccia delle attività e dei progressi del team in ogni fase, eliminando così tempi morti e spreco di risorse.
Indipendenza dal cliente: una volta che la progettazione iniziale e il piano di progetto sono definiti, non è necessaria una supervisione continua del cliente fino alla fase di collaudo.
CONTRO metodo Tradizionale
Aderenza prodotto-cliente: spesso il cliente non riceve esattamente il prodotto che si aspettava di ricevere perché la fase di valutazione, in cui vede effettivamente il prodotto, viene svolta a sviluppo completato.
Poco spazio per la creatività: il modello Waterfall dipende fortemente dalla progettazione iniziale. Diventa difficile aggiungere nuove idee durante gli sviluppi, lasciando così poco spazio alla creatività del partner e al conseguente Valore aggiunto per il cliente.
Test del software tardivi: i test sul software vengono eseguiti solo alla fine dello sviluppo. Pertanto, se tra le anomalie che vengono rilevate alcune hanno una certa gravità, questo potrebbe minare la qualità del prodotto finale.
Minor coinvolgimento del cliente: Non raccogliendo feedback, se non nelle fasi finali, accade spesso che ciò che si sviluppa non corrisponda esattamente a ciò che il cliente desidera. Questo spesso porta a fasi di riscrittura del software, impattando fortemente sui tempi e costi di sviluppo.
Quale metodo scegliere?
Non esiste un metodo migliore, ma uno più adatto al contesto.
Certamente ciò che non consigliamo è l’uso in parallelo di entrambi i metodi: il rischio di appesantire e rallentare il progetto sarebbe molto alto.
Consigliamo alcuni fattori da considerare per interpretare il proprio contesto:
Dimensioni del cliente: probabilmente le grandi organizzazioni sono più portate all’adozione del Tradizionale, mentre PMI e le micro-imprese sono naturalmente più orientate al maggiore controllo sul progetto (metodo Agile).
Innovazione: se il progetto digitale è parte – ad esempio – di un’iniziativa di ricerca e sviluppo, i metodi Tradizionali potrebbero limitare il flusso evolutivo che è proprio dei percorsi d’innovazione, mentre l’Agile si armonizzerebbe decisamente meglio.
Il partner digitale: il fornitore svolge un ruolo cardine, accompagnandoci durante il progetto digitale; il metodo che si vuole adottare deve rientrare tra le pratiche conosciute e già praticate in altri progetti dal partner.
Costi di progetto: il metodo Tradizionale consente un’esatta valutazione preventiva dei costi del software, mentre l’Agile può offrire una stima del software con una conseguente forbice di costo.
Consigliamo di valutare questi quattro fattori – assieme al partner se vi è già un rapporto di piena fiducia – scegliendo il metodo più capace di massimizzare il vostro prossimo investimento digitale.