Agile e "a cascata" (anche detto tradizionale) sono due metodologie di sviluppo: quello agile utilizza un approccio iterativo, mentre quello tradizionale è sequenziale.
Quando si avvia un nuovo progetto, programma o prodotto, i/le project manager devono prendere decisioni sul tipo di metodologia di consegna da utilizzare. Un metodo di consegna è essenzialmente un framework: un processo o una serie di processi utilizzati per facilitare la pianificazione organizzata, lo sviluppo, l'esecuzione, la riparazione, il monitoraggio, e la revisione del lavoro. Due delle metodologie più ampiamente utilizzate oggi sono il framework tradizionale e il nuovo approccio agile. Un terzo approccio, che combina metodi di lavoro tradizionali e agili, sta conoscendo inoltre uno sviluppo diffuso.
L'approccio Agile è una metodologia iterativa di sviluppo di software il cui obiettivo è la collaborazione tra team interfunzionali e in grado di organizzarsi in modo autonomo. Scopri di più sull'approccio Agile.
L'approccio Agile evita il tradizionale approccio "una fase alla volta", in cui le risorse allocate eseguiranno attività specifiche prima di passare il progetto alla fase successiva o alle risorse assegnate. Ci si affida invece a team dedicati in grado di operare in modo collaborativo e simultaneo. Questi team eseguono le attività contemporaneamente, eliminando la necessità di attendere il completamento delle attività, e sono inoltre in grado di affrontare facilmente esigenze mutevoli o problemi emergenti.
Come menzionato in precedenza, l'approccio Agile è iterativo, supporta continue release e suddivide il lavoro in più sequenze di cicli ripetuti, chiamati iterazioni. In questo modo, si fornisce all'utente finale valore in modo continuo, anziché tutto in una volta al completamento del progetto. L'approccio Agile svolge un ruolo chiave nella consegna continua e nel miglioramento continuo.
Sebbene team diversi possano adottare un approccio Agile in diversi modi, quest'ultimo rispetta sempre i seguenti principi fondamentali:
Dalla sua introduzione all'inizio degli anni 2000, Agile ha acquisito una notevole popolarità. I vantaggi della metodologia Agile includono:
Gli sprint predefiniti consentono di fornire nuove funzionalità in modo rapido e prevedibile. Inoltre, il beta test può essere eseguito prima di quanto sarebbe altrimenti possibile.
L'attenzione di Agile si focalizza sulla semplicità e sulla collaborazione, offrendo ai team una libertà senza precedenti per quanto riguarda l'organizzazione autonoma e le decisioni cruciali.
L'autonomia data dall'approccio Agile offre ai team la flessibilità di scegliere i metodi e le tecniche più adatti al risultato desiderato. Allo stesso tempo, i progetti stessi diventano più adattabili, poiché elementi di backlog nuovi o modificati possono essere introdotti durante lo sviluppo. I primi beta test forniscono inoltre un feedback essenziale utilizzabile dai team di sviluppo per apportare modifiche importanti.
L'approccio Agile dipende dalla capacità di un team di comunicare in modo efficace, sia internamente che esternamente. Si enfatizza la direzionalità e la chiarezza, assicurando una comunicazione regolare e presenziale.
Nella metodologia Agile, è la clientela o l'utente finale a determinare la priorità delle funzionalità. In questo modo, i team di sviluppo possono capire chiaramente quali caratteristiche offrono il miglior valore al business.
Quando si trovano di fronte a scadenze strette e a obiettivi a lungo termine complessi, i team di sviluppo possono facilmente perdere di vista l'importanza della clientela. L'approccio Agile riallinea questo obiettivo, utilizzando le esigenze della clientela e altri feedback dell'utente come base per il miglioramento dei prodotti. Ciò comporta non solo un aumento della soddisfazione della clientela, ma anche un miglioramento dei rendimenti.
Sebbene l'approccio Agile sia spesso considerato come la scelta migliore per quanto riguarda la metodologia, quest'ultimo comporta una serie di svantaggi da prendere in considerazione prima di adottarlo, tra cui:
Se la clientela non ha tempo o interesse a lavorare a stretto contatto con il team di sviluppo, il progetto non riceverà il feedback o le informazioni necessari per andare avanti.
Se i membri del team non sono completamente impegnati a completare il progetto in modo efficace ed efficiente, l'aspetto di autogestione di Agile viene meno.
Alcune attività, o anche alcune sottoattività, possono essere troppo dispendiose in termini di tempo per essere completate durante un singolo sprint. Per risolvere questo problema, i team devono modificare le priorità o introdurre costosi sprint aggiuntivi.
La natura iterativa e incrementale di Agile non è compatibile con la governance o la supervisione dei progetti. I team che non sono in grado di autogovernarsi sono meno propensi a poter essere gestiti in modo efficace.
Il fatto che l'approccio Agile attribuisca la priorità a un software funzionante rispetto alla documentazione significa che a volte la notazione essenziale viene tralasciata. Ciò può costituire un problema, poiché la documentazione completa aiuta a rendere le implementazioni più condivisibili, identifica il pensiero dietro decisioni specifiche e consente ai team di tornare più facilmente alle fasi iniziali.
Spesso, processi aziendali, set di strumenti, policy, strutture organizzative e controlli consolidati non favoriscono l'agilità. Di conseguenza, un'implementazione Agile efficace richiede un cambiamento culturale su ampia scala in tutta l'organizzazione. Ciò può portare a un rifiuto da parte di singoli individui o reparti abituati a pratiche più tradizionali.
Con il suo approccio più tradizionale allo sviluppo, è una metodologia lineare e sequenziale che divide il ciclo di vita dello sviluppo di software in fasi distinte, in cui la fase successiva può essere avviata solo se la fase precedente è stata completata.
In qualità di metodologia di sviluppo più antica, quella tradizionale è semplice da utilizzare e da comprendere e dipende in larga misura dalla progettazione iniziale del lavoro, dalla ricerca, dalla documentazione e dalla pianificazione. Si tratta di un approccio "misura due volte, taglia una volta sola": tutti i requisiti del progetto sono chiaramente definiti all'inizio del progetto e viene in seguito creato un piano dettagliato per soddisfare tali esigenze.
La metodologia di sviluppo tradizionale suddivide i progetti in sette fasi distinte. Ciascuna di queste fasi è indipendente dalle altre; in genere, una nuova fase non può iniziare prima del completamento della fase precedente. Inoltre, la maggior parte delle fasi è separata da un "gate di fase" che rappresenta una serie di requisiti da completare, nonché le decisioni di gestione che devono essere prese prima che il progetto possa passare alla fase successiva. Le fasi sono le seguenti:
Descritta per la prima volta nel 1970, la metodologia tradizionale ha conosciuto un uso costante tra i team di sviluppo per circa mezzo secolo. Questo perché offre diversi vantaggi, tra cui:
La metodologia tradizionale è forse la più facile da gestire, ogni fase essendo associata a risultati finali specifici e a un chiaro processo di revisione.
Nei progetti in cui è necessario progettare più componenti per consentire l'integrazione con sistemi esterni, l'approccio tradizionale (in cui il design viene completato nelle prime fasi del processo) rappresenta un vantaggio evidente.
I requisiti del prodotto vengono documentati e concordati prima dell'inizio dello sviluppo, stabilendo un insieme di funzionalità prevedibile e concreto.
Una maggiore pianificazione e la documentazione progettata nelle fasi iniziali consentono di ottenere una panoramica chiara dei potenziali costi. Ciò consente una definizione del budget accurata.
Poiché l'intera portata di lavoro è nota in anticipo, la misurazione dei progressi diventa semplice e precisa. I progressi vengono in genere misurati nel "report di stato", dove gli elementi di lavoro relativi a pianificazione, budget e risorse sono definiti in verde, giallo o rosso.
Gli obiettivi vengono identificati e stabiliti prima dell'inizio del lavoro di sviluppo, anziché rimanere liquidi per tenere conto delle esigenze in continua evoluzione.
I membri del team hanno la larghezza di banda necessaria per lavorare ad altri progetti e devono dedicare il proprio tempo al progetto solo durante le fasi designate.
Le metodologie tradizionali creano un'esperienza che richiede un minor intervento da parte della clientela; il coinvolgimento dell'utente finale non è necessario, tranne durante le fasi relative ai requisiti e alla revisione.
Ponendo maggiore attenzione alla pianificazione e alla documentazione, i progetti seguono un percorso stabilito, sono più facili da rivedere e i risultati sono più chiaramente identificabili.
La crescita conosciuta dall'approccio agile attesta la presenza di alcuni inconvenienti nella metodologia tradizionale. Questi svantaggi comprendono:
Poiché la metodologia tradizionale si affida a una pianificazione dettagliata nelle fasi iniziali, i progetti che presentano problemi imprevisti, ostacoli o esigenze in continua evoluzione potrebbero non essere in grado di adattarsi. Analogamente, la metodologia tradizionale procede in una sola direzione e potrebbe essere impossibile o molto difficile tornare alle fasi precedenti per apportare modifiche.
I requisiti definiti in modo rigido lasciano pochissimo spazio per l'ispirazione, l'innovazione o la creatività e possono impedire ai team di sviluppo di sfruttare opportunità inaspettate durante le fasi di sviluppo.
Essendo meno coinvolta nei processi di sviluppo, la clientela potrebbe sentirsi tagliata fuori dal processo. Ancora più problematico è forse il fatto che la clientela potrebbe non essere consapevole di ciò che verrà consegnato fino al completamento del progetto. D'altra parte, il team di sviluppo stesso potrebbe non sapere quali siano le aspettative della clientela riguardo al risultato, ampliando ulteriormente il divario. Inoltre, poiché i controlli vengono eseguiti solo alla fine del progetto, è più probabile che si presentino bug e problemi di UX.
Scadenze non chiare per fasi specifiche possono portare a ritardi nel completamento dei progetti. A volte, i team accelerano le ultime fasi, tra cui quelle relative ai controlli. Ciò può portare a prodotti di qualità inferiore.
I requisiti devono essere chiaramente identificati e approvati prima di iniziare qualsiasi lavoro. In caso contrario, i singoli membri del team possono interpretare i requisiti in modo diverso, portando a una mancanza di coordinazione.
Con così tanto impegno nella pianificazione e nella documentazione, sono disponibili meno risorse per la realizzazione effettiva dei prodotti.
Agile e tradizionale presentano entrambe vantaggi e svantaggi. Tenendo presente questo aspetto, comprendere i casi di utilizzo specifici per entrambe le opzioni può aiutare le organizzazioni a scegliere le metodologie più adatte per ogni progetto.
Quando si prendono queste decisioni, si consideri quanto segue:
I progetti che presentano requisiti rigorosi sono più adatti alla metodologia tradizionale, mentre un numero inferiore di requisiti e di normative consente a quella agile di mettere in evidenza creatività e libertà.
I progetti che presentano requisiti rigorosi sono più adatti alla metodologia tradizionale, mentre un numero inferiore di requisiti e di normative consente a quella agile di mettere in evidenza creatività e libertà.
Processi rigorosi rendono l'implementazione della metodologia agile molto difficile e traggono maggior vantaggio da un approccio tradizionale. Agile è più efficace quando i processi sono più flessibili.
La metodologia tradizionale è efficace quando clienti, utenti finali e proprietari o proprietarie di prodotti non sono interessati/e a lavorare a stretto contatto con il team di sviluppo. Le persone che desiderano un maggiore coinvolgimento trarranno il massimo vantaggio dall'approccio agile.
L'ottimizzazione dei progetti esistenti, in cui le funzionalità sono già ben definite e le integrazioni sono state stabilite, trae vantaggio dall'approccio tradizionale. Se il progetto è innovativo e si desidera provare a realizzare qualcosa che non è ancora stato fatto, l'approccio iterativo della metodologia agile consente ai team di imparare e adattarsi man mano che procedono.
La metodologia tradizionale stabilisce un risultato prevedibile e lavora bene con scadenze ben definite e progetti di lunga durata. Scadenze più brevi e più flessibili si adattano meglio all'approccio agile.
La prevedibilità della metodologia tradizionale è anche adatta a budget poco flessibili, in cui ogni azione e spesa deve essere documentata nelle prime fasi del processo. La metodologia agile richiede meno rigidità nella definizione del budget, concentrandosi sulle caratteristiche e sulla velocità di sviluppo e non assumendo una posizione così rigida rispetto ai costi.
I progetti più piccoli e ben definiti sono spesso più adatti alla metodologia tradizionale. I progetti più grandi e complessi traggono vantaggio dall'approccio agile.
Quando ci si coordina con personale remoto o si collabora con altre organizzazioni, la ridotta necessità di collaborazione presenziale della metodologia tradizionale fa sì che quest'ultima si riveli una scelta migliore. Se invece il progetto è nelle mani di un'unica organizzazione e i membri del team si trovano tutti nello stesso luogo, l'approccio agile è più efficace.
Poiché offrono entrambi vantaggi significativi, le aziende di tutto il mondo sono alla ricerca di modi per combinare questi vantaggi, limitando al contempo i loro svantaggi. Ne risulta una gestione ibrida dei progetti.
La gestione ibrida dei progetti riunisce i due approcci per creare una soluzione che ottimizzi i tempi, le risorse e la soddisfazione dell'utente.
Crea più valore con una strategia di IT e aziendale allineata utilizzando la nostra soluzione scalabile ITBM.