Sebbene utile in numerosi settori, la metodologia agile si è dimostrata di grande successo nello sviluppo del software e durante il ciclo di vita dello sviluppo del software (SDLC). Originata dai dodici principi fondamentali del Manifesto Agile, la metodologia agile prevede processi iterativi incentrati sul monitoraggio continuo e sul miglioramento dei risultati.
I processi agili sono stati sviluppati in alternativa alle tradizionali tecniche a cascata. Il metodo Waterfall è un processo di progettazione sequenziale che richiede il completamento di un passaggio prima di passare al successivo. Convenzionalmente, la metodologia Waterfall ha avuto successo nella costruzione; tuttavia, per le industrie più tecniche, un approccio agile ha un valore maggiore. Invece di seguire un approccio passo-passo, tutte le fasi di un progetto sono completate in parallelo. I processi agili tentano di affrontare la natura imprevedibile del ciclo di sviluppo identificando gli errori ed eliminando la necessità di riavviare completamente il progetto.
Metodologia Agile
Un principio fondamentale della metodologia agile è soddisfare e fornire valore al cliente attraverso risultati continui. Invece di affrontare un grande progetto per un lungo periodo di tempo, i metodi agili suddividono un progetto in compiti più piccoli, più semplici e più gestibili che possono essere completati in modo efficace e rapido.
Spotify è riconosciuto per i suoi processi agili: la più piccola unità del gruppo della società, chiamata squadre, si comporta come startup autonome. Ogni squadra si concentra su una funzione specifica e scorre in base al prodotto minimo possibile, rilasciando aggiornamenti in anticipo e spesso. Per definizione, un prodotto minimo realizzabile è la versione più recente di un prodotto che consente al team di raccogliere la massima quantità di informazioni necessarie per determinare cosa funziona e cosa no. Su Spotify, ogni squadra gestisce un piccolo progetto; tuttavia, ogni progetto si basa su un obiettivo comune di creare un maggiore valore per il cliente.
Fornendo un prodotto in anticipo e spesso, le organizzazioni sono costrette a eliminare tutto ciò che non aggiunge valore. Gli individui diventano esperti in alcune aree del ciclo di sviluppo poiché ogni piccola squadra si concentra su una missione per un lungo periodo di tempo, che aiuta a identificare ed eliminare gli errori. Considerando che con il metodo Waterfall, il feedback viene fornito verso la fine del progetto dopo che sono stati spesi molto tempo, denaro ed energia, la metodologia agile consente cambiamenti lungo il percorso attraverso un feedback continuo. Tramite feedback e flessibilità continui in termini di aderenza al piano originale, l'aggiunta o la modifica di funzionalità mantiene le organizzazioni aggiornate con gli ultimi sviluppi nel loro settore.
Le attività in un progetto agile sono guidate dall'iterazione. Un'iterazione è un intervallo di tempo, generalmente da una a due settimane, durante il quale le esigenze dei clienti vengono sviluppate e trasformate in prodotti funzionanti e testabili. Una caratteristica chiave della metodologia agile è l'assunto che i progetti consistano in una sequenza di iterazioni. I team possono utilizzare la loro velocità per tenere traccia di quanto realizzano durante ciascuna iterazione al fine di mantenere realistici i piani ed evitare il sovraccarico. In ogni iterazione, un prodotto spedibile viene completato dopo aver analizzato, progettato, testato, verificato la qualità e l'esperienza dell'utente. Sebbene possano mancare tutte le funzionalità ottimizzate, i membri del team devono essere certi di poter rilasciare il prodotto, se necessario.
Metodologia Scrum
Esistono diversi framework all'interno della metodologia agile, tra cui Scrum, Lean ed Extreme Programming. La maggior parte delle organizzazioni che passano alla metodologia agile scelgono di iniziare con Scrum per la sua semplicità e flessibilità. I progetti Scrum forniscono alle aziende e ai clienti una struttura per ruoli, riunioni e regole. I membri del team sono responsabili dell'apprendimento e dell'adattamento dei processi al fine di far fronte all'imprevedibilità.
Ogni progetto Scrum ha un backlog o un elenco di cose da fare. Durante la fase di pianificazione, l'arretrato è popolato di attività, obiettivi e tempi di esecuzione. Dopo che il backlog è stato discusso, il progetto è suddiviso in sprint, che sono periodi da una a due settimane finalizzati al completamento di una serie di elementi di backlog. Durante ogni sprint, il team ha incontri quotidiani per discutere dei progressi attuali, dei progressi futuri e di qualsiasi fattore che impedisca i progressi. Alla fine di ogni sprint, tutte le fasi necessarie dovrebbero essere completate in caso di un potenziale rilascio del prodotto.
Successivamente, il proprietario del prodotto conduce una revisione al fine di determinare se tutte le storie nel backlog dello sprint sono state sufficientemente completate. In questo momento, ScrumMaster incontra il team per una retrospettiva. I membri del team riflettono sui propri processi al fine di adattare il comportamento per gli sprint futuri. È fondamentale che ScrumMaster eviti gli impedimenti comuni e crei un ambiente incoraggiante per la discussione. A causa della natura imprevedibile del software e dello sviluppo del prodotto, ogni sprint è unico e deve adattarsi ai cambiamenti.
I progetti Scrum sono facilitati da un product owner, ScrumMaster e un team. Durante ogni sprint, il team, composto da individui autogestiti, è responsabile di determinare e delegare come realizzerà tutto il lavoro necessario. All'interno del team, ogni membro ha un'area di specialità; tuttavia, non ci sono titoli formali o una gerarchia. ScrumMaster è un individuo dedicato che risolve gli impedimenti e mantiene il team sulla buona strada garantendo allo stesso tempo la trasparenza del backlog dello sprint. Infine, il proprietario del prodotto è responsabile della creazione e della comunicazione della visione del prodotto e decide se i prodotti devono essere sottoposti a maggiore sviluppo o sono pronti per il rilascio.
La linea di fondo
Ampiamente usata oggi nello sviluppo del software, è stata sviluppata una metodologia agile per lavori privi di processi definiti. I metodi agili, a differenza degli approcci sequenziali, non sono destinati a tipi di lavoro ripetitivi. Molte industrie hanno e continuano a implementare una metodologia agile all'interno delle loro strutture aziendali.
Il framework agile contiene molteplici sottoinsiemi, tra cui Scrum, programmazione snella ed estrema, che aiutano le persone a gestire l'imprevedibilità e la flessibilità. In superficie, la metodologia agile può aiutare a migliorare i processi end-to-end; tuttavia, gli individui devono essere impegnati, adattabili e in grado di apprendere affinché funzioni.
