Agile vs. Waterfall: Quale approccio adottare nello sviluppo web?
Una delle maggiori preoccupazioni di ogni azienda che si accinge a realizzare un sito web è quella di decidere la metodologia di sviluppo da utilizzare. La metodologia di sviluppo è il modo di organizzare il lavoro di sviluppo del software. Da un lato si può scegliere il percorso tradizionale, in cui tutto viene predisposto, dall’altro si può scegliere la via libera, con un approccio iterativo, un modo più flessibile di lavorare su un progetto. Uno si chiama metodo Waterfall e l’altro Agile.
Metodo a cascata
Il metodo Waterfall esiste da molto tempo e rappresenta quindi l’approccio tradizionale allo sviluppo del software. Il progetto viene suddiviso in fasi distinte e poi completato in sequenza. Il numero esatto di fasi di un metodo Waterfall può variare da azienda ad azienda e da progetto a progetto, ma l’approccio generale è il seguente:
- Concezione del progetto – Come suggerisce il nome, è qui che iniziano i piccoli passi del progetto. È il luogo in cui germoglia il seme di un’idea e il primo del ciclo di vita dello sviluppo del software (SDCL).
- Avvio – Trovare le persone giuste per svolgere il lavoro ed espandere l’ambito del progetto, completo di obiettivi, scopo e data di consegna. Analisi – Si redige un documento di specifica dei requisiti e si effettua l’analisi di fattibilità del progetto.
- Design – Il progetto assume una forma definitiva attraverso mockup, wireframe e storyboard. Codifica – Seguendo il diagramma di progettazione (diagrammi di flusso, disegni mockup) creato nella fase precedente, il team inizia a lavorare sull’applicazione vera e propria.
- Test – Una fase critica in cui vengono testati tutti gli sforzi compiuti nelle fasi precedenti.
- Produzione/Implementazione – Una volta completate e approvate tutte le fasi di test, il prodotto entra nel mercato.
- Manutenzione – Il team di sviluppo eseguirà continui aggiornamenti e correzioni di bug del prodotto. Vengono inoltre aggiunte nuove funzionalità per garantire la competitività del prodotto.
Agile
Il metodo Agile, basato sul Manifesto Agile, è una forma più recente utilizzata dagli sviluppatori nel loro ciclo di sviluppo del software. Questo metodo si concentra sulla snellezza e sullo sviluppo di MVP o Minimum Viable Products nel corso di ogni iterazione, piuttosto che gestire tutta la pianificazione in anticipo.
La metodologia Agile si attiene al manifesto Agile stabilito nel febbraio 2017 e pone grande enfasi sul lavoro di squadra, sull’iterazione continua, sul miglioramento, sul feedback degli utenti e sull’adattabilità ai requisiti del cliente.
In Agile, le diverse fasi di sviluppo del progetto avvengono in parallelo, mentre un backlog tiene traccia delle caratteristiche e dei miglioramenti che sono stati aggiunti. Alcune delle implementazioni più popolari di Agile sono Scrum, Kanban, FDD o Feature Driven Development, ASD o Adaptive System Development e XP o Extreme Programming.
Sceglierne uno per il vostro progetto
Entrambe le metodologie di sviluppo dei progetti, Waterfall e Agile, sono valide e vi aiuteranno a realizzare prodotti di alta qualità. Entrambi sono flessibili e stabili e aiutano a essere organizzati durante la pianificazione di un progetto.
È possibile utilizzare Waterfall quando:
È improbabile che il cliente cambi i suoi requisiti nel corso del progetto. È quindi più adatto per progetti semplici con risultati prevedibili e per clienti che hanno requisiti definiti. La caratteristica di stabilità del Waterfall e il percorso di sviluppo lineare e strutturato facilitano i team di sviluppo dei progetti.
Lo sviluppo agile segue uno stile di sviluppo più evolutivo.
È possibile utilizzare Agile quando:
Quando il mercato è un po’ incerto e si deve creare un nuovo prodotto in tempi brevi, Agile è una soluzione praticabile.
Agile è anche una buona soluzione se non potete permettervi di commettere errori costosi e soprattutto se non avete molte informazioni sul progetto. Sarebbe opportuno anche se non potete permettervi di avere dei requisiti rigidi.
Se non volete apportare modifiche, soprattutto quando i requisiti cambiano continuamente, se volete ridurre i costi, correggere gli errori quando si verificano ed eliminare l’incertezza durante il ciclo di sviluppo del progetto, allora Agile è una buona scelta. Questo sarebbe probabilmente il motivo per cui le startup sono così favorevoli ad Agile.
Nello sviluppo Agile, tester e sviluppatori lavorano insieme e, alla fine di ogni intenzione, il prodotto viene spedito e consegnato al cliente. Le caratteristiche modificate e aggiornate sono
iniziare a funzionare subito.
Le differenze in sintesi:
I processi Waterfall vengono testati dopo che il lavoro è stato svolto, e gli errori saranno difficili da correggere.
Agile consente una grande flessibilità e i requisiti in continua evoluzione non richiedono precisione nella tenuta dei registri.
Tuttavia, è importante procedere con cautela, perché questi progetti rischiano di fallire. Questo metodo è più adatto a sviluppatori molto esperti e a un cliente che ha investito abbastanza nel progetto. Il metodo Waterfall non consente di fare confusione, perché si muove in un percorso ben definito con una registrazione meticolosa. Gli sviluppatori possono facilmente prevedere l’aspetto del prodotto finale. Una volta terminata una fase del progetto, non è facile tornare indietro e apportare modifiche. Tutti gli elementi del progetto sono al loro posto, dalla dimensione del progetto alla sua tempistica e
bilancio.
Agile si muove in un processo di progettazione incrementale che lascia ampio spazio al miglioramento. Questo perché il progetto è suddiviso in vari modelli che vengono testati e valutati ampiamente.
Il processo dell’approccio lineare di Waterfall:
- Raccogliere i requisiti dei documenti
- Realizzare il progetto
- Codice e test unitario
- Test del sistema
- Eseguire i test di accettazione dell’utente UAT
- Risolvere i problemi
- Consegnare il prodotto finito al cliente
- Ideale per ogni tipo di progetto
Il processo dell’approccio sprint di Agile
- Approccio incrementale alla progettazione del software
- Il prodotto viene testato in 2-4 settimane di iterazione
- Il cliente può vedere il prodotto e suggerire modifiche.
- Ideale per piccoli progetti
Conclusione
Se si esaminano sia Agile che Waterfall, è evidente che se si cerca un progetto con obiettivi chiari e una progressione definitiva, Waterfall è una buona scelta. Scegliete il percorso Agile se volete che il vostro progetto si evolva man mano che procede verso il completamento. Potrebbe anche trasformarsi in qualcosa di più di quello che avevate previsto nelle fasi iniziali.
Flikr : //visualpun.ch, mandaruby, Lena Ellis
- Waterfall vs. Agile: qual è la metodologia di sviluppo giusta per il vostro progetto?
- Processi di sviluppo web: Waterfall vs. Agile Agile
Informazioni sull’autore: Reema lavora come Thought Leader presso PHPBabu.