Cos'è Scrum?

Scrum è un framework di gestione che i team utilizzano per auto-organizzarsi e lavorare a un obiettivo comune. Descrive una serie di riunioni, strumenti e ruoli per una consegna efficiente del progetto. Proprio come una squadra sportiva che si allena per una partita importante, le pratiche di Scrum consentono ai team di autogestirsi, imparare dall'esperienza e adattarsi ai cambiamenti. I team software utilizzano Scrum per risolvere problemi complessi in modo economico e sostenibile. 

Cos'è la metodologia Scrum?

La metodologia Scrum è caratterizzata da una serie di principi e valori: 

Principi Scrum per un progetto di successo

Trasparenza

I team lavorano in un ambiente in cui tutti sono consapevoli delle sfide che gli altri potrebbero affrontare. Gli errori di comunicazione e i colli di bottiglia delle informazioni sono evitati attraverso frequenti conversazioni faccia a faccia tra i membri di un team interfunzionale e i responsabili di progetto.

Riflessione

I punti di riflessione più frequenti sono integrati all'interno del framework, così da permettere ai membri del team di rivedere i propri progressi. I responsabili di progetto utilizzano le informazioni dettagliate provenienti da queste riunioni per effettuare stime e pianificazioni future. Di conseguenza, i progetti vengono svolti in maniera efficace, rispettando il budget e le scadenze.

Adattamento

I membri del team possono ridefinire le priorità delle attività in base ai cambiamenti delle esigenze del cliente. Decidono quale attività completare per prima e quali rivedere in futuro.

I valori di Scrum per i team di progetto

Gli Scrum Team si ispirano a cinque valori cardine.

Impegno

I membri dello Scrum Team si impegnano in attività e obiettivi basati sul tempo e si dedicano al miglioramento continuo per trovare la soluzione migliore.

Intraprendenza

Gli Scrum Team mostrano intraprendenza ponendo domande aperte e coinvolgenti. Conducono discussioni oneste e trasparenti per arrivare alla soluzione migliore.

Attenzione

In un determinato periodo, i membri del team lavoreranno su un Product Backlog di attività. Si concentreranno sulle attività selezionate per fornire i risultati in un periodo di tempo limitato.

Apertura

I membri dello Scrum Team sono aperti a nuove idee ed opportunità, a sostegno dell'apprendimento individuale e della qualità generale del progetto.

Rispetto

I membri del team nutrono un rispetto reciproco, così come per i responsabili di progetto e per il processo Scrum. La cultura del rispetto crea uno spirito di mutua collaborazione e cooperazione all'interno del team.

Come funziona Scrum?

Scrum è un framework facile da comprendere ma difficile da padroneggiare. I cocreatori di Scrum, Jeff Sutherland e Ken Schwaber, hanno spiegato ne La Guida Scrum quali sono i concetti base. La guida offre una panoramica dettagliata dei processi Scrum e spiega come implementarli in maniera efficace.

L'essenza di Scrum è un team capace di auto-organizzazione, capace di offrire valore al cliente in un periodo di tempo limitato chiamato Sprint. Scrum definisce gli artefatti, i ruoli e gli eventi associati a ciascun Sprint. Vediamo più da vicino ciascuno di questi aspetti.

Cosa sono gli artefatti di Scrum?

Gli Scrum Team utilizzano strumenti chiamati artefatti di Scrum per la risoluzione di problemi e la gestione di progetti. Gli artefatti di Scrum offrono, sia ai membri del team che alle parti interessate, informazioni essenziali riguardo la pianificazione e le attività. Ci sono tre artefatti principali:

Product Backlog

Il Product Backlog è un elenco dinamico composto da caratteristiche, requisiti, miglioramenti e risoluzioni di problemi che è necessario completare per la riuscita di un progetto. Si tratta, sostanzialmente, dell'elenco dei compiti che il team dovrà svolgere, e le cui priorità vengono riviste e ridefinite costantemente per essere adattato alle trasformazioni del mercato. Il product owner mantiene aggiornato l'elenco, rimuovendo gli elementi irrilevanti e aggiungendo nuove richieste avanzate dai clienti.

Sprint Backlog

Lo Sprint Backlog è l'elenco degli elementi che il team di sviluppo deve completare nel ciclo di Sprint corrente. Prima di ogni Sprint, il team sceglie gli elementi su cui lavorare dal Product Backlog. Uno Sprint Backlog è flessibile e può evolversi durante uno Sprint.

Increment

L'Increment è un passo verso un obiettivo o una visione. È il prodotto finale utilizzabile dopo uno Sprint. I team possono adottare metodi diversi per definire e dimostrare i loro Sprint Goal. Nonostante la flessibilità, lo Sprint Goal fondamentale (ciò che il team vuole ottenere dallo Sprint corrente) non può essere compromesso.

Ad esempio, alcuni team scelgono di rilasciare qualcosa ai clienti alla fine dello Sprint, pertanto lo Sprint Goal sarebbe completato una volta rilasciata la modifica del software. Altri team potrebbero lavorare al completamento di una serie di funzionalità che verranno rilasciate insieme. In questo caso, lo Sprint Goal dovrebbe considerarsi completato nel momento in cui una funzionalità viene testata con successo. 

Cosa sono i ruoli Scrum?

Uno Scrum Team necessita di tre ruoli specifici: un Product Owner, uno Scrum Master e un team di sviluppo.

Product Owner

Il Product Owner è attento ad assicurare che il team di sviluppo offra all'azienda il maggior valore possibile. Sono capaci di comprendere e dare priorità alle mutevoli esigenze degli utenti e dei clienti finali. I product owner agiscono in maniera efficace quando:

  • forniscono al team una guida chiara sulle funzionalità da fornire successivamente;
  • colmano il divario tra ciò che l'azienda vuole e ciò che il team comprende;
  • stabiliscono quando e con quale frequenza le nuove versioni saranno rilasciate.

Scrum Master

Gli Scrum Master sono i campioni di Scrum all'interno del team. Sono responsabili dell'efficienza dello Scrum Team. Allenano i team, i Product Owner e l'azienda per migliorare i propri processi Scrum e ottimizzare la consegna. Gli Scrum Master sono anche responsabili di:
 
  • pianificare le risorse necessarie per ogni Sprint;
  • facilitare gli altri Sprint e le riunioni del team;
  • guidare la trasformazione digitale all'interno del team;
  • facilitare la formazione del team quando nuove tecnologie vengono adottate;
  • comunicare con gruppi esterni per risolvere eventuali sfide che il team affronterà insieme.

Team di sviluppo di Scrum

Lo Scrum Team consta di tester, progettisti, specialisti UX, ingegneri Ops e sviluppatori. I membri del Team hanno competenze diverse e si formano a vicenda, in modo che nessuna persona provochi un collo di bottiglia nella consegna del lavoro. 

Jeff Bezos, fondatore di Amazon, consiglia la regola delle due pizze: quando si stabilisce la dimensione di un team, questo dovrà essere di dimensione sufficientemente piccola in modo tale che i membri possano condividere due pizze. 

Il team di sviluppo Scrum esegue le seguenti operazioni:

  • lavora in modo collaborativo per garantire il completamento dello Sprint;
  • sostiene le pratiche di sviluppo sostenibile;
  • si organizza in maniera autonoma e affronta i progetti con spirito di gruppo;
  • guida la pianificazione e la stima della quantità di lavoro che è possibile completare per ogni Sprint.

Cosa sono gli eventi di Scrum?

Gli eventi di Scrum, o le cerimonie Scrum, sono un insieme di riunioni in sequenza che gli Scrum Team svolgono regolarmente. Tra gli eventi di Scrum, rientrano:

Sprint Planning

In questo evento, il team stima il lavoro da completare nello Sprint successivo. I membri definiscono gli Sprint Goal specifici, misurabili e raggiungibili. Al termine della riunione di pianificazione, ogni membro di Scrum sa in che modo ogni Increment può essere consegnato nello Sprint.

Sprint

Uno Sprint è il periodo di tempo effettivo in cui lo Scrum Team lavora insieme per completare un Increment. La durata tipica di uno Sprint è di due settimane, ma può variare a seconda delle esigenze del progetto e del team. Quanto più complesso è il lavoro e quante più sono le incognite, tanto più lo Sprint dovrebbe essere breve.

Daily Scrum o stand-up

Un Daily Scrum è una breve riunione in cui i membri del team si aggiornano e pianificano la giornata. Riferiscono sul lavoro completato e comunicano eventuali difficoltà nel raggiungimento degli Sprint Goals. Si chiama stand-up perché l'obiettivo è far durare la riunione il più breve tempo possibile, come se tutti fossero in piedi.

Sprint Review

Alla fine dello Sprint, il team si riunisce per una sessione informale per rivedere il lavoro completato e presentarlo alle parti interessate. Il Product Owner può anche rielaborare il Product Backlog in base allo Sprint corrente.

Sprint Retrospective

Il team si riunisce per documentare e discutere ciò che ha funzionato e ciò che non ha funzionato durante lo Sprint. Le idee maturate vengono utilizzate per migliorare gli Sprint futuri.

Perché Scrum è importante nello sviluppo del software?

Tutti i tipi di team, dalle risorse umane al marketing e alla progettazione, utilizzano Scrum in modo efficace. Tuttavia, Scrum è più diffuso nei team di sviluppo e ingegneria del software. Permette ai team di rispondere più rapidamente ai cambiamenti dei requisiti senza lasciare perdere il controllo su costi e budget. È importante per i seguenti motivi:

Capacità di mantenere la qualità in situazioni difficili

I controlli di qualità sono integrati nel framework Scrum. I team definiscono i requisiti all'inizio di ogni Sprint. I team valutano in modo esaustivo anche il ciclo di vita del software o del prodotto, approcciando i compiti da svolgere con una visione di squadra. Ciò significa che i requisiti rimangono rilevanti e realizzabili in tempi brevi. Il feedback regolare del Product Owner e le revisioni degli Sprint consentono al team di migliorarsi continuamente nel corso del progetto. 

Aumento del ritorno sull'investimento

Gli Scrum Team danno priorità ai requisiti in base al valore del cliente e all'analisi dei rischi. L'attenzione si concentra sullo sviluppo di un prodotto primario funzionante, che possa essere immesso sul mercato per raccogliere i primi feedback dei clienti. Lo sviluppo Scrum è caratterizzato da pochi difetti pericolosi, da un team efficace e da un approccio fail-fast che consente di risparmiare denaro nel lungo periodo. 

Team più felici e produttivi

I team strutturati per gestirsi e organizzarsi in modo autonomo permettono ai membri di essere più creativi e innovativi. I membri hanno la possibilità di organizzare il proprio lavoro in maniera flessibile, in base al proprio stile di lavoro, alla propria personalità e ai propri obiettivi di vita. Lavorare in modo trasversale permette ai membri di apprendere nuove competenze e di farsi da mentori reciprocamente. Di conseguenza, Scrum crea un ambiente di sostegno e fiducia, aumentando la motivazione e il morale generale delle persone. 

Parametri rilevanti che migliorano la stima

Gli Scrum Team scelgono i propri parametri per misurare le prestazioni del progetto. Eseguono stime su tempistiche, budget e parametri di qualità in base alla loro esperienza e alle loro capacità. Il Product Owner ha tuttavia il controllo, dal momento che le stime sono relative. I team ricevono maggiore supporto all'inizio del progetto e, naturalmente, si velocizzano nel corso del tempo. Le parti interessate del progetto esaminano i prodotti del lavoro e forniscono un feedback regolare per assicurarsi che il progetto continui sulla buona strada.

Scrum vs. Agile: qual è la differenza?

Agile fa riferimento a una mentalità o a un modo di pensare lo sviluppo del software. È una filosofia adottata a livello organizzativo per far sì che ogni membro del team si concentri sul miglioramento continuo e sull'offerta di valore ai clienti. Scrum è un framework per portare a termine il lavoro nell'ambito di Agile. Scrum utilizza tutti i principi fondamentali di Agile per definire i metodi utili a facilitare un progetto. Tuttavia, è importante notare che Agile non va sempre intesa come Scrum. Molte metodologie diverse adottano un approccio Agile alla gestione dei progetti.

In che modo i team di sviluppo Scrum possono adottare DevOps?

DevOps è un connubio tra cultura, pratica e strumenti per migliorare le capacità di un'azienda di distribuire applicazioni e servizi rapidamente. DevOps elimina la categorizzazione in team di sviluppo e team operativi. Gli ingegneri lavorano lungo l'intero ciclo di vita dell'applicazione, dallo sviluppo ai test, all'implementazione e alle operazioni. Ciò aiuta a sviluppare una serie di competenze non limitate a una singola funzione.

Gli Scrum Team sono nella posizione ideale per adottare DevOps. Sono già capaci di agire in modo trasversale e iterativo. Alcune idee per l'integrazione di DevOps sono mostrate di seguito.
  • Automatizzazione dei test del software e scrittura di nuovi test per ogni sviluppo di funzionalità
  • Utilizzo di uno stack tecnologico e di strumenti che supportano l'implementazione continua
  • Rilascio delle modifiche alla produzione alla fine di ogni Sprint
AWS DevOps fornisce una serie di servizi flessibili progettati per permettere di creare e fornire prodotti in modo rapido e affidabile. Inizia subito creando un account AWS gratuito oggi stesso.

Fasi successive di Scrum

Scopri ulteriori risorse correlate al prodotto
Ulteriori informazioni su Scrum in AWS 
Registrati per creare un account gratuito

Ottieni accesso istantaneo al Piano gratuito di AWS.

Registrati 
Inizia subito nella console

Inizia subito a creare con il machine learning nella Console di gestione AWS.

Accedi