Cos'è Scrum per lo sviluppo agile: le cose da sapere

Quali sono i punti chiave e le definizioni più importanti in Scrum, la metodologia più diffusa per lo sviluppo agile

Trasformazione Digitale
È ormai difficile trovare un'azienda che non dichiari di usare, in qualche modo, metodologie per lo sviluppo agile. L'Agile Development ha ampiamente dimostrato i suoi vantaggi rispetto agli approcci tradizionali. Ed è anche particolarmente adatto ai nuovi ambienti applicativi legati al cloud e ai microservizi. È anche un approccio che possiamo considerare consolidato. In una recente indagine di Digital.ai, solo un terzo del campione ha dichiarato di usarlo da meno di due anni. Il resto è già più "avanti".

Questo non vuol dire che le aziende abbiano già raggiunto una piena maturità nell'adozione dello sviluppo agile. Nella stessa indagine citata prima, solo il 16% delle aziende ha dichiarato di sentirsi ben solido da questo punto di vista. Il 54% usa metodi Agile ma si considera ancora in via di maturazione. E comunque solo il 18% del campione dichiara di avere esteso questi approcci a tutti i team di lavoro. Lo spazio per migliorare, insomma, c'è.

Questo accade anche perché l'approccio Agile, per lo sviluppo software ma non solo, non entra in azienda con una lista precisa di passi da seguire e di cose da fare. I concetti chiave sembrano facilmente comprensibili. Ma quando si tratta di metterli in pratica è facile perdersi. Serve una guida, che di solito si trova nell'adozione di una specifica metodologia Agile. Che nella maggioranza dei casi (il 58% nell'indagine Digital.ai) è Scrum. Vediamo di che si tratta, in estrema sintesi.
codice zoom sviluppo

La definizione astratta di Scrum

In astratto e tecnicamente, Scrum è un "framework di processo". Cosa che in sé dice pochino ai non iniziati. Però è un passo in avanti rispetto al concetto di Agile. Questo in estrema sintesi indica che una certa attività (ad esempio lo sviluppo software) si può fare con procedure e team elastici e adattabili, conseguendo notevoli vantaggi. Un framework di processo aggiunge che l'attività in causa si può svolgere utilizzando certi elementi precisi, passando per tappe specifiche, con figure ben identificate. Metaforicamente, non indica - né vuole farlo - il percorso preciso da A a B. Ma in parte lo delimita nello spazio e nel tempo.

Perché Scrum non è una procedura precisa

Perché se lo fosse imporrebbe quella rigidità dei processi di sviluppo che il modello Agile vuole superare. Inoltre, qualsiasi strutturazione rigida dello sviluppo diventerebbe immediatamente obsoleta non appena qualcosa cambiasse rispetto alle premesse iniziali. Ad esempio le funzioni più importanti da implementare in un nuovo modulo software. Inoltre, un processo rigido non può nemmeno adattarsi facilmente ai cambiamenti che possono verificarsi nel team di sviluppo. O alla volontà di adottare in corsa una nuova tecnologia.

La struttura base dello sviluppo in Scrum

Scrum è basato su un approccio particolarmente empirico. Le attività di sviluppo quindi partono dall'obiettivo: un elenco di funzioni o migliorie che si vogliono aggiungere ad un dato componente software, già esistente o da creare da zero. Queste attività di sviluppo sono portate avanti da un team specifico di persone e si devono concludere in un certo lasso di tempo. È importante notare che questo lasso di tempo non è estendibile e l'elenco delle funzioni da implementare nemmeno. Per evitare il rischio di progetti troppo ambiziosi in partenza e indefiniti nel loro svolgimento.
sviluppo lab azure devops

Il punto di partenza: il Product Backlog

In Scrum si suppone che un prodotto - diciamo una applicazione - sia un oggetto "vivo", nel senso che i suoi requisiti e le sue necessità e caratteristiche cambiano nel tempo. Ad esempio, in base ai feedback del mercato si può decidere che è opportuno aggiungere una data funzione. Oppure sono gli sviluppatori stessi, o il marketing, a stabilire che determinate migliorie sono necessarie. La lista delle "cose da fare" relative a un prodotto è detta Product Backlog ed è uno dei principali "artefatti" di Scrum.

Il Product Backlog è un elenco ordinato per importanza di caratteristiche, funzioni, requisiti, migliorie, correzioni da apportare a un prodotto. È un elenco mai finito perché cambia lungo tutto il ciclo di vita del prodotto stesso. E nessun team di sviluppo può assumerlo in toto come obiettivo. Ma a un certo tempo un sottoinsieme di questo elenco viene assegnato ad un team di sviluppo, per il suo completamento. Inizia così un "ciclo" di sviluppo software. Nella terminologia di Scrum: inizia uno Sprint.

L'attività di sviluppo: lo Sprint

La terminologia di Scrum dà l'idea di cosa sia una attività di sviluppo mirata. Una specie di corsa - appunto Sprint - che ha un traguardo preciso: concretizzare il sottoinsieme del Product Backlog assegnato. Che prende il nome di Sprint Backlog. In nome della concretezza, uno Sprint non può durare più di un mese. Se lo facesse, i requisiti e gli obiettivi di partenza potrebbero cambiare troppo. E comunque una fase di sviluppo così lunga è rischiosa e costosa.
La descrizione di Scrum che diamo qui è ovviamente solo un accenno alla metodologia. Molte più informazioni si possono trovare sul sito ufficiale. Comprese quelle sulle certificazioni e sui corsi per ottenerle.
Se lo Sprint Backlog è l'insieme delle cose da fare in uno Sprint, bisogna definire come farle. Lo si fa durante il cosiddetto Sprint Planning, un evento di pianificazione che non deve durare più di otto ore. Alla fine del quale il lavoro da compiere dovrebbe essere suddiviso in vari blocchi. Che il team di sviluppo auto-gestisce man mano nel tempo.

Il team di lavoro: lo Scrum Team

Il gruppo di lavoro più importante in una attività di sviluppo è ovviamente costituito dagli sviluppatori stessi. In Scrum si tratta del Team di Sviluppo, costituito da un insieme di figure multi-disciplinari che portano tutte le competenze necessarie al progetto. Per essere agili, è un team numericamente limitato: da tre a nove persone. Con meno di tre elementi c'è troppa rigidità e il rischio di avere poche competenze. Più di nove persone incontrano difficoltà ad auto-gestirsi e coordinarsi.

Il Team di Sviluppo è infatti un team "piatto" che si auto-coordina, senza "comandanti" e sotto-team. Le uniche due figure che si possono considerare vagamente apicali, ma che non fanno parte del Team di Sviluppo, sono il Product Owner e lo Scrum Master. Il Product Owner è una persona che ottimizza (ma non organizza) il lavoro degli sviluppatori in funzione dello Sprint Backlog, ed è responsabile del suo completamento. Lo Scrum Master è un facilitatore: aiuta il team ad applicare i principi Scrum, diffondendoli (e difendendoli se necessario) anche nell'organizzazione in generale. Team di Sviluppo, Product Owner e Scrum Master costituiscono lo Scrum Team.
sviluppo desktop

Il confronto continuo in Scrum

L'approccio empirico che è alla base di Scrum si concretizza in una serie di momenti di confronto che servono ad essere tutti allineati su cosa è stato fatto. Ma anche a trarre una sorta di "morale" dalle varie esperienze di sviluppo in uno Sprint. L'appuntamento più frequente riguarda il Team di Sviluppo, che ogni giorno dedica massimo 15 minuti al Daily Scrum. Qui gli sviluppatori fanno il punto su cosa è stato fatto e, soprattutto, pianificano insieme e autonomamente il lavoro delle prossime 24 ore.

Alla fine di uno Sprint si tiene invece la Sprint Review. Un appuntamento di massimo quattro ore che coinvolge lo Scrum Team ma anche persone esterne che sono in vario modo stakeholder del lavoro fatto durante lo Sprint. Qui si illustra quello che è stato completato, cosa non si è riusciti a fare, le difficoltà incontrate. Ma si guarda anche ai futuri sviluppi del prodotto, esaminando come il Product Backlog è cambiato dopo il lavoro completato nello Sprint.

Alla fine di uno Sprint c'è anche un confronto interno per lo Scrum Team. Si tratta della Sprint Retrospective, un meeting di massimo tre ore in cui si esamina cosa è andato bene nell'organizzazione del lavoro e cosa no. La retrospettiva riguarda quindi le persone, le relazioni e i processi. Non i risultati pratici dello Sprint, se non indirettamente. Dalla Sprint Retrospective dovrebbe uscire uno Scrum Team più in grado di lavorare meglio nel prossimo Sprint.
Se questo articolo ti è piaciuto e vuoi rimanere sempre informato con le notizie di ImpresaCity.it iscriviti alla nostra Newsletter gratuita.

Notizie correlate

Iscriviti alla nostra newsletter

Soluzioni B2B per il Mercato delle Imprese e per la Pubblica Amministrazione

Iscriviti alla newsletter

contatori