Approcci agile e a cascata

Un uomo in un ufficio domestico soleggiato scrive su una lavagna bianca con un pennarello

Quale metodologia di gestione dei progetti dovresti utilizzare per gestire il tuo prossimo progetto?

Cos'è la cascata?

La metodologia a cascata, nota anche come modello lineare sequenziale del ciclo di vita, è definita dal suo approccio lineare e strutturato alla gestione dei progetti. È costituita da una serie di passaggi che vengono completati in ordine sequenziale all'interno del ciclo di vita dello sviluppo del software (SDLC). Questi passaggi vengono in genere tracciati tramite visualizzazioni del diagramma di Gantt. Al Dr. Winston W. Royce è attribuito il merito di aver sviluppato questo approccio, che ha documentato nel suo articolo del 1970, "Managing the Development of Large Software Systems".

Dalla sua pubblicazione, sono emerse varianti di cascata, ma c'è un consenso generale sulle seguenti fasi all'interno del processo:

  1. Raccolta dei requisiti: questa fase richiede una documentazione iniziale tra il team di sviluppo e il cliente o l'utente finale. Durante questa fase, le caratteristiche del prodotto all'interno del piano di progetto sono documentate in modo molto dettagliato, consentendo al team di determinare costi e tempistiche chiari. Dopo che entrambe le parti si allineano sui requisiti, c'è una corrispondenza limitata o totale tra il team di sviluppo e il cliente fino al completamento del progetto.
  2. Progettazione: la fase di progettazione è composta da due fasi, progettazione logica e progettazione fisica. Nella progettazione logica, il team fa un brainstorming sui possibili modi per affrontare il problema del cliente. Quando il team di sviluppo concorda una soluzione, queste idee vengono tradotte in attività tecniche specifiche, che vengono poi distribuite tra il team per costruire il progetto fisico.
  3. Implementazione: nella fase successiva, gli sviluppatori iniziano a codificare sulla base delle specifiche sviluppate nelle fasi precedenti.
  4. Verifica: questa fase di test garantisce che il codice funzioni come previsto e che i requisiti del documento di ambito siano stati soddisfatti. Il team di sviluppo verifica la presenza di bug nel codice e il cliente esegue una convalida finale per garantire che la funzionalità soddisfi le aspettative.
  5. Manutenzione: man mano che gli utenti iniziano a usare il prodotto finale, sarà necessario un supporto continuo in caso di nuovi problemi.
 

Le ultime notizie nel campo della tecnologia, supportate dalle analisi degli esperti

Resta al passo con le tendenze più importanti e interessanti del settore relative ad AI, automazione, dati e oltre con la newsletter Think. Leggi l' Informativa sulla privacy IBM.

Grazie per aver effettuato l'iscrizione!

L'abbonamento sarà fornito in lingua inglese. Troverai un link per annullare l'iscrizione in tutte le newsletter. Puoi gestire i tuoi abbonamenti o annullarli qui. Per ulteriori informazioni, consulta l'Informativa sulla privacy IBM.

Vantaggi fondamentali del metodo a cascata

  • I requisiti dettagliati del prodotto e la documentazione consentono ai nuovi programmatori di eseguire l'onboarding in modo rapido e semplice.
  • La documentazione fornisce un ambito chiaro del progetto, consentendo ai project manager di comunicare budget, tempistiche e traguardi chiave alle parti interessate.
AI Academy

Ascesa dell'AI generativa nel mondo del business

Scopri di più sull'ascesa dell'AI generativa e cosa comporta per le aziende.

Sfide fondamentali del metodo a cascata

  • I clienti possono avere difficoltà a delineare tutte le loro esigenze all'inizio del progetto, con conseguenti lacune nella documentazione.
  • Una collaborazione minima con il cliente durante il processo di sviluppo può portare a modifiche costose se il prodotto non soddisfa le aspettative.
  • I tester segnalano problemi e bug in una fase successiva del processo, che avrebbero potuto informare un'architettura di programma alternativa.

Che cos'è l'agile?

A differenza dello sviluppo a cascata, lo sviluppo agile è caratterizzato dal suo approccio iterativo alla gestione dei progetti. Invece di redigere lunghi requisiti di progetto all'inizio, un team agile suddivide il prodotto in caratteristiche specifiche e affronta ognuna di esse in base a un vincolo di tempo specifico, noto come sprint.

La gestione agile dei progetti richiede un team interfunzionale e auto-organizzato, composto in genere da cinque a nove membri. Insieme, sviluppano un software utilizzabile durante ogni sprint, che si combina con altro codice funzionale delle iterazioni precedenti. Entro la fine del timebox dello sprint, il team presenta il proprio lavoro agli stakeholder per ottenere feedback, permettendo così maggiore flessibilità nel loro approccio allo sviluppo software. Poiché il team ha accesso a feedback frequenti, può adattare la roadmap del prodotto durante il ciclo di vita dello sviluppo per garantire che la funzionalità soddisfi davvero le aspettative degli utenti. In un approccio a cascata, il coinvolgimento del cliente coincide tipicamente con la consegna del prodotto finale, che può essere costoso quando i requisiti vengono interpretati in modo errato o documentati in modo errato.

Ci sono state 17 persone che hanno trovato il sistema di gestione dei progetti a cascata altamente inefficace e, nel 2001, le loro idee sul processo di sviluppo software hanno portato a un lavoro noto come "Agile Manifesto". Questo documento evidenzia valori e principi specifici a cui dare priorità nei flussi di lavoro di sviluppo software e ha prodotto una serie di framework agili popolari, come Scrum, Kanban, Feature Driven Development (FDD) ed Extreme Programming. Da allora, lo sviluppo agile del software ha acquisito sempre più popolarità, soprattutto se confrontato con il modello a cascata.

Framework Scrum agile

Ispirato al gioco del rugby, il metodo Scrum agile enfatizza il lavoro di squadra per raggiungere i risultati, in modo simile al modo in cui i giocatori devono lavorare insieme in una mischia per entrare in possesso di un pallone da rugby. Le competenze del team Scrum agile variano, ma di solito includono i seguenti ruoli:

  • Product owner: questo membro del team rappresenta le esigenze del cliente e dell'azienda. Creando storie utente, il team può capire come una richiesta di caratteristiche può aiutare a risolvere un problema specifico e queste storie formulano il backlog di attività che il team deve affrontare. Questa persona dà priorità anche alle storie in base al loro valore per il cliente, il che dovrebbe, in teoria, tradursi in valore per l'azienda. Sebbene il product owner guidi il team in questo modo, non stabilisce scadenze né istruisce il team su come fornire il lavoro.
  • Scrum master: questo membro del team facilita l'intero processo di sviluppo agile. Simile a un project manager, questa persona mantiene il team impegnato, assicurando che il team rimanga concentrato durante il progetto. Può anche agire come parte neutrale per mediare i disaccordi tra i membri del team. Ad esempio, i membri del team potrebbero non essere d'accordo su quanto affrontare in un determinato sprint. I product owner, in particolare, possono esercitare pressioni sui team affinché si impegnino a consegnare più di quanto possano effettivamente realizzare nel tempo a disposizione. In questi casi, gli Scrum master possono ricordare ai membri del team l'ambito del loro ruolo nel team.

Gli altri membri del team di un team agile possono variare, ma in genere includono utenti di diverse discipline, come progettazione, analytics, controllo qualità e sviluppo. Queste persone collaborano insieme per decidere quanto lavoro intraprendere e come completarlo.

Le metodologie agili sono definite anche dalle modalità con cui il team si unisce. Ci sono riunioni specifiche che aiutano a facilitare il workflow in tutto il team. Tra queste rientrano le seguenti:

  • Pianificazione dello sprint: durante questo incontro, il team si riunisce per determinare quali storie faranno parte dello sprint corrente. Il product owner darà priorità alle storie utente, ma il resto del team dovrà concordare quante e quali storie utente potrà completare durante quel periodo di tempo prestabilito.
  • Daily standup: questi brevi incontri sono noti anche come "daily scrum". In questi momenti di allineamento, ogni membro del team aggiorna sugli avanzamenti personali, sulle prossime attività e su eventuali blocchi o dipendenze che potrebbero creare ritardi.
  • Demo: questo incontro mostra il software funzionante che il team ha completato nel corso dello sprint, che può variare da due a quattro settimane. Il product owner determinerà se una storia utente soddisfa la definizione di "completata". In caso contrario, il backlog di prodotti potrebbe essere modificato per tenere conto di eventuali lacune. Questa è anche un'opportunità per il team di presentare agli stakeholder il feedback.
  • Retrospettiva: questo tempo è riservato all'introspezione del team, in cui il team identifica come migliorare il workflow per ottenere migliori risultati in futuro

Vantaggi fondamentali del metodo agile

  • La progettazione in team facilita una maggiore collaborazione.
  • Lo sviluppo del prodotto adotta un approccio di progettazione adattiva.
  • Poiché il codice viene testato a ogni iterazione nella fase di sviluppo, i difetti del codice possono informare la progettazione futura del software.
  • Tende a garantire una maggiore soddisfazione del cliente poiché un feedback frequente porta a dare maggiore priorità alle esigenze del cliente.
  • Consente l'integrazione continua poiché ogni caratteristica è un software utilizzabile a sé stante.
  • Questo tipo di sviluppo software lean può portare a una riduzione dei costi in quanto vi è meno rischio di disallineamento tra clienti e prodotti.

Sfide chiave del metodo agile

  • Un approccio agile può non disporre di una documentazione completa. Questo rende difficile l'inserimento di nuovi sviluppatori, le tempistiche dei progetti per gli stakeholder e la fornitura di stime accurate dei costi.
  • Può essere difficile da scalare.

Gestisci il tuo progetto con l'approccio agile

Sebbene i team di sviluppo abbiano avuto successo con entrambi gli approcci di gestione dei progetti, c'è sicuramente più slancio intorno ai processi agili. Non è difficile capirne il motivo quando osserviamo i benefici che può offrire alle aziende oggi. Sebbene esistano diversi strumenti di gestione dei progetti che possono aiutare i team a tenere traccia dei progressi, IBM può anche fornire sistemi per consentire agli sviluppatori di codificare in modo più agile.

Autore

Eda Kavlakoglu

Business Development + Partnerships

IBM Research

Soluzioni correlate
Soluzioni per le operazioni di business

Crea un business più resiliente con le soluzioni basate sull'AI per la gestione intelligente degli asset e per la supply chain.

Esplora le soluzioni per le operazioni
Servizi di consulenza per le operazioni aziendali

Trasforma le operazioni aziendali con IBM utilizzando dati completi e potenti tecnologie basate sull'AI per integrare i processi di ottimizzazione.

Scopri i servizi per le operazioni aziendali
IBM Cloud Pak for Business Automation

IBM Cloud Pak for Business Automation è un set modulare di componenti software integrati per la gestione dell'esercizio dell'automazione.

Esplora la business automation
Fai il passo successivo

Trasforma le tue operazioni di business con soluzioni IBM all'avanguardia nel settore. Migliora la produttività, l'agilità e l'innovazione attraverso workflow intelligenti e tecnologie di automazione.

 

Esplora le soluzioni per le operazioni Esplora i servizi di intelligenza artificiale