C’era una volta il waterfall. La più classica delle metodologie  di sviluppo software, dove le varie fasi si susseguono in sequenza a senso unico: prima c’è l’incontro con il cliente, poi l’analisi dei requisiti, poi il lavoro di sviluppo e di test e infine la consegna del software.

E se il cliente si fosse scordato di trasmetterci (o non avesse avuto chiari in mente) altri requisiti importanti? Se il consulente non avesse indagato sufficientemente sui reali bisogni del committente? Il risultato: ore e ore di progetti buttati. E via di corsa a dover rifare tutto.

No, il waterfall non è più un metodo funzionale!

Troppe le variabili che oggi influenzano lo sviluppo di un software: richieste da eseguirsi in brevissimo tempo, alta concorrenza, necessità di un prodotto che si distingua per efficienza e produttività. Tutti fattori che richiedono un netto cambio di mentalità e di approccio operativo. Ecco perché in Softfour abbiamo scelto di adottare la metodologia agile.

Sviluppo software con metodologia agile: cosa significa

Rispetto al processo waterfall in cui ogni step si succede in modo lineare, nello sviluppo software agile le fasi sono lasciate aperte per tutto il ciclo di produzione e organizzate in singoli processi della durata massima di 3 settimane, al termine delle quali ci si confronta con il cliente facendo il punto della situazione. Per questa ragione le fasi sono definite iterative e incrementali: un procedere passo per passo strutturato in modo intelligente che permette di intervenire facilmente con adattamenti e revisioni e di perfezionare il processo produttivo. Così si limitano le perdite di tempo, evitando il rischio – come purtroppo capita frequentemente nella metodologia classica – di lavorare per obiettivi non condivisi o non chiari.

Per approfondimenti ti rimandiamo alla pagina wikipedia dedicata alla metodologia agile.

Il nostro processo produttivo con metodologia agile

Per una maggiore chiarezza ti illustriamo come in Softfour applichiamo il concetto di metodologia agile attraverso il framework Scrum.

Ricevuta la richiesta (o la User Story), la inseriamo nel backlog, la lista che contiene tutta i requisiti e i task. Da qui parte una scomposizione della singola storia in uno o più sotto task a ognuno dei quali va assegnato un peso (preferibilmente in punti e non giornate o ore lavorative). Si arriva dunque a definire e a ottimizzare il backlog.

A questo punto si decidono le varie iterazioni incrementali da eseguire, chiarendo a cosa serva / quale compito debba assolvere ciascuna di esse. Un’iterazione / sprint è la composizione delle varie storie utente e dei task a loro associati: si identifica cosa inserire e poi si fa partire lo sprint concentrandosi su quello. In ogni processo iterativo gli sprint durano 1 o 2 settimane. Alla fine di ogni sprint viene fatto un rilascio incrementale, il quale garantisce che una versione potenzialmente utile del prodotto funzionante sia sempre disponibile.

Ed eccoci giunti al primo incontro di verifica con il cliente. Al termine di ogni sprint si tiene infatti l’incontro di Sprint Review che coinvolge tutto il team e anche il committente. Uno step fondamentale per capire se finora si sono raggiunti gli obiettivi prefissati e se è necessario aggiornare il backlog.

Dopo la Sprint Review e prima del prossimo incontro Sprint Planning, il Team Scrum si riunisce per lo Sprint Retrospective. Questa è l’occasione per ispezionare e creare un piano di miglioramento da attuare durante il prossimo Sprint.

Il ciclo può dunque riprendere fino alla conclusione del progetto.

Ecco un’immagine che riassume bene Scrum (clicca sull’immagine per aprire il pdf):

metodologia agile scrum: il processo

Sviluppo software con metodologia agile: tool consigliati

Dei vari tool usati e provati in passato ci sentiamo di consigliare Asana per progetti medio/piccoli e per gestire le attività giornaliere e ScrumWise per progetti di più ampio respiro attraverso un maggior numero di sprint (solitamente da 2 settimane).

Hai bisogno di informazioni? Contattaci subito!