Confronto tra gestione Agile e a cascata dei progetti

Qual è l'approccio di gestione dei progetti migliore per te? Dipende dal progetto.

Dan Radigan Di Dan Radigan
Esplora argomenti

Contributo editoriale: Laureli Mallek, Program Manager

I primi ad adottare lo sviluppo Agile sono stati piccoli team autonomi che lavoravano su piccoli progetti autonomi. Hanno dimostrato che il modello Agile può funzionare, per la gioia e l'arricchimento dei produttori di software di tutto il mondo. Si è scoperto che il modello di sviluppo a cascata non era così efficace per lo sviluppo del software come la gestione Agile dei progetti lo era per la maggior parte dei team

La popolarità della gestione Agile dei progetti ha portato più organizzazioni ad espandere Agile oltre i singoli team o progetti e ad applicarlo a interi programmi. Agile si è persino diffuso oltre i team di sviluppo raggiungendo i team IT, marketing, di sviluppo aziendale e altri ancora.

Cos'è la gestione dei progetti Agile?

La gestione Agile dei progetti è un approccio iterativo alla consegna dei progetti incentrato su rilasci continui che incorporano il feedback dei clienti. La capacità di regolazione durante ogni iterazione favorisce la velocity e l'adattabilità. Questo approccio è diverso da un approccio di gestione lineare e a cascata dei progetti, che segue un percorso prestabilito con deviazioni limitate.

I clienti e le aziende di oggi hanno bisogno di risposte e cambiamenti rapidi e Agile offre la flessibilità necessaria per adattarsi e iterare durante il processo di sviluppo. La gestione dei progetti Agile è inoltre una pietra angolare delle pratiche DevOps, che prevedono la collaborazione tra i team di sviluppo e quelli delle operazioni.

Che cos'è la gestione a cascata dei progetti?

L'approccio di gestione a cascata dei progetti comporta una sequenza di esecuzione chiaramente definita con fasi di progetto che non avanzano fino a quando una fase non riceve l'approvazione finale. Una volta completata una fase, può essere complicato e costoso rivedere una fase precedente. I team Agile possono seguire una sequenza simile, ma lo fanno in incrementi più piccoli con cicli di feedback regolari.

L'approccio di gestione a cascata dei progetti segue una formula lineare e sequenziale. È adatto per i lavori con processi prevedibili e ricorrenti, ma può lasciare i team di sviluppo impreparati e incapaci di adattarsi più velocemente di un concorrente.

Una singola scadenza non rispettata o una modifica dell'ambito durante un progetto a cascata può avere un impatto fuori misura sui rilasci successivi. Inoltre, se un team è completamente concentrato sulla fase successiva del lavoro, risolvere il debito tecnico o correggere i bug può essere complicato se tutti i membri del team sono stati assegnati al lavoro sulle nuove funzioni e procedono sempre alla fase successiva.

Di seguito è riportata un'illustrazione di un progetto a cascata standard con blocchi di tempo rigidamente segmentati. Ciò crea una mentalità che incoraggia gli sviluppatori, gli owner di prodotto e gli stakeholder a richiedere quanto più tempo possibile in ogni finestra temporale, poiché potrebbe non esserci alcuna possibilità di iterazione in futuro. In genere i team che utilizzano l'approccio a cascata cercano di controllare lo slittamento dell'ambito attraverso il "controllo delle modifiche", dove tutti concordano sul fatto che il contratto originale non venga modificato.

Esempio di rilascio a cascata | Agile Coach Atlassian

Il modello a cascata può aggravare alcune delle sfide note della creazione dei prodotti:

  • Bloccanti e gestione delle dipendenze: gli stili di gestione tradizionali dei progetti spesso creano "percorsi critici", in cui il progetto non può andare avanti finché non viene risolto un blocco.
  • Difficoltà a ottenere feedback da parte degli utenti e convalida del prodotto: per aggiungere al danno la beffa, il cliente finale non può interagire con il prodotto finché non è completamente terminato. Pertanto, i problemi importanti legati alla progettazione e al codice del prodotto non vengono scoperti fino al rilascio.

I vantaggi dell'approccio a cascata

  • Richiede meno coordinamento grazie a fasi chiaramente definite e processi sequenziali
  • Una chiara fase di progetto aiuta a definire chiaramente le dipendenze del lavoro
  • Il costo del progetto può essere stimato dopo la definizione dei requisiti
  • Maggiore attenzione alla documentazione di progetti e requisiti
  • La fase di progettazione è più metodica e strutturata prima della scrittura del software

Gli svantaggi dell'approccio a cascata

  • È più difficile suddividere e condividere il lavoro a causa di sequenze di fase più rigorose e dei team più specializzati
  • Rischio di perdite di tempo dovute a ritardi e battute d'arresto durante le transizioni tra le fasi
  • Requisiti di assunzione aggiuntivi per soddisfare i team di fase specializzati, laddove Agile incoraggia una composizione più interfunzionale dei team
  • Eccesso di comunicazione durante il passaggio del lavoro tra le diverse fasi
  • La proprietà e il coinvolgimento relativi al prodotto potrebbero non essere così solidi rispetto a quelli generati da Agile poiché l'attenzione si concentra sulla fase corrente.

Confronto tra approccio Agile e a cascata

Agile è stato adottato per la prima volta dai team software, che sono passati dal tradizionale approccio sequenziale a cascata a un metodo che raccoglieva feedback e aggiustamenti coerenti durante l'intero ciclo di vita dello sviluppo.

La gestione Agile dei progetti adotta un approccio iterativo allo sviluppo creando diverse fasi incrementali con intervalli di feedback regolari. Ciò promuove l'adattabilità poiché un team ha la possibilità di adattarsi durante l'intero processo di sviluppo del prodotto, piuttosto che essere limitato a un percorso lineare. Consente inoltre rilasci regolari e ad alto impatto che permettono ai team di collezionare una serie di vittorie nel tempo.

I rilasci iterativi offrono ai team diverse opportunità per:

  • Adattarsi alle mutevoli circostanze, dai requisiti appena scoperti a una porzione di lavoro bloccata.
  • Raccogliere il feedback degli stakeholder durante il processo e iterare in modo reattivo senza lo stress di una data di scadenza finale.
  • Costruire relazioni e connessioni tra i ruoli che consentono alle persone di entrare in contatto e comunicare in modo efficace.

Agile consente ai team di essere più resilienti ai cambiamenti che inevitabilmente si verificano durante un progetto.

Esempio di gestione Agile dei progetti | Agile Coach Atlassian

Un vantaggio ancora maggiore sono le competenze condivise nel team di software. La sovrapposizione di competenze del team aggiunge flessibilità al lavoro in tutte le aree della base di codice del team. In questo modo, lavoro e tempo non vengono sprecati se la direzione del progetto cambia (per ulteriori informazioni a riguardo, consulta il nostro articolo sulla creazione di fantastici team Agile).

Principi Agile

  • Un progetto Agile è segmentato in diverse fasi incrementali che includono intervalli di feedback regolari.
  • Un requisito di progetto è segmentato in pezzi più piccoli, che vengono poi ordinati per priorità in base alla loro importanza.
  • Agile promuove la collaborazione, in particolare con il cliente.
  • Si adatta agli intervalli regolari per garantire che le esigenze del cliente siano soddisfatte.
  • Integra la pianificazione con l'esecuzione consentendo ai team di rispondere efficacemente ai requisiti variabili.

I vantaggi della gestione Agile dei progetti

  • Cicli di feedback più rapidi
  • Possibilità di identificare tempestivamente i problemi
  • Maggiore potenziale di soddisfazione dei clienti
  • Time-to-market notevolmente migliorato
  • Migliore visibilità/responsabilità
  • I team dedicati migliorano la produttività nel tempo
  • Assegnazione di priorità flessibile incentrata sulla fornitura di valore

Gli svantaggi di Agile

  • Il percorso critico e le dipendenze tra i progetti potrebbero non essere chiaramente definiti come nell'approccio a cascata
  • Prevede un costo legato alla curva di apprendimento a livello di organizzazione
  • La vera esecuzione Agile con una pipeline di continuous deployment prevede molte dipendenze tecniche e diversi costi di progettazione da stabilire

Elementi da considerare quando si passa ad Agile

Passare ad Agile può essere difficile, soprattutto quando un team o un'organizzazione sono radicati in un approccio di gestione dei progetti più tradizionale. Il passaggio alle pratiche Agile può richiedere una serie di modifiche ai processi, soprattutto quando si adotta un approccio DevOps in cui i team di sviluppo e delle operazioni lavorano a stretto contatto per sviluppare e gestire il software. Quando si adottano i principi Agile, i team e gli stakeholder devono abbracciare due concetti importanti:

  • L'obiettivo dell'owner di prodotto è ottimizzare il valore dell'output del team. Il team si affida all'owner di prodotto che assegna la priorità al lavoro più importante.
  • Il team di sviluppo può accettare il lavoro solo se ha la capacità per svolgerlo. L'owner di prodotto non impone il lavoro al team, né lo impegna a scadenze arbitrarie. Il team di sviluppo estrae il lavoro dal backlog del programma man mano che può accettare nuovo lavoro.

Esploriamo i meccanismi utilizzati dai programmi Agile per organizzare, eseguire e strutturare il lavoro in modo iterativo.

Roadmap

Le roadmap di prodotto descrivono l'evoluzione di un prodotto o una soluzione nel tempo. Le roadmap nello sviluppo Agile forniscono importante contesto che consente ai team di raggiungere obiettivi sia incrementali che a livello di progetto. Sono composte da iniziative, ovvero ampie aree di funzionalità, e includono timeline che comunicano quando una funzione sarà disponibile. Man mano che il lavoro procede e i team apprendono di più, si accetta che la roadmap cambierà, leggermente o in modo più pesante, per riflettere le nuove informazioni. L'obiettivo è mantenere la roadmap focalizzata sulle attuali condizioni che influiscono sul progetto e sugli obiettivi a lungo termine per lavorare efficacemente con gli stakeholder e rispondere al panorama competitivo.

Quella che segue è una semplice roadmap di un team di prodotto, in cui le iniziative nelle caselle e nelle timeline sono indicate dagli indicatori delle milestone in rosso.

Roadmap Agile | Agile Coach Atlassian

Requisiti

Ogni iniziativa nella roadmap si articola in un insieme di requisiti. I requisiti Agile sono descrizioni leggere delle funzionalità richieste, piuttosto che i documenti di 100 pagine dei progetti tradizionali. Si evolvono nel tempo e sfruttano al massimo la comprensione condivisa del team relativamente ai clienti e al prodotto desiderato. I requisiti Agile rimangono snelli mentre tutti i membri del team sviluppano una comprensione condivisa attraverso conversazioni e collaborazioni continue. Solo quando l'implementazione sta per iniziare i requisiti vengono rimpolpati con i dettagli.

Backlog

Il backlog stabilisce le priorità del programma Agile. Il team include tutti gli elementi di lavoro nel backlog: nuove funzioni, bug, miglioramenti, task tecnici o di architettura ecc. L'owner di prodotto assegna la priorità al lavoro sul backlog per il team di ingegneri. Il team di sviluppo utilizza quindi il backlog ordinato per priorità come unica fonte di riferimento per il lavoro che deve essere svolto.

Metriche Agile

I team Agile crescono grazie alle metriche. I limiti WIP mantengono il team, e l'azienda, concentrati sul rilascio del lavoro con la massima priorità. Grafici come quelli burn-down e di controllo aiutano il team a prevedere la cadenza di consegna, mentre i diagrammi di flusso continuo aiutano a identificare i colli di bottiglia. Queste metriche e artefatti mantengono tutti concentrati sugli obiettivi generali e aumentano la fiducia nella capacità del team di rilasciare il lavoro futuro.

Agile si basa sulla fiducia

I processi Agile non possono funzionare senza un alto livello di fiducia tra i membri del team. È necessario essere sinceri per avere conversazioni complicate su ciò che è giusto per il programma e il prodotto. Poiché le conversazioni avvengono a intervalli regolari, le idee e le preoccupazioni vengono espresse regolarmente. Ciò significa che i membri del team devono avere fiducia nelle reciproche capacità (e volontà) di dare seguito alle decisioni prese durante quelle conversazioni.

In conclusione...

La gestione Agile dei progetti è un approccio innovativo non solo per i progetti software, ma anche per i progetti di ogni tipo. Fornendo la flessibilità necessaria per rispondere ai cambiamenti durante il ciclo di vita dello sviluppo, Agile consente ai team di rilasciare prodotti di qualità superiore che soddisfano le esigenze dei clienti. Agile potenzia i team, crea responsabilità e incoraggia l'innovazione promuovendo al contempo il miglioramento continuo. Agile offre la possibilità di rispondere ai cambiamenti senza andare fuori strada. E questo è ottimo per qualsiasi programma.

Scopri di più sulla gestione Agile dei progetti. Immergiti nell'adozione delle pratiche Agile con gli strumenti Agile per i team software e scopri la comunicazione coerente nei team Agile con Atlas.

Prossimo contenuto
Flusso di lavoro