Home Blog Flussi aziendali e S ...

Flussi aziendali e SCRUM

ByTek

Scrum è un framework che consente alle persone di risolvere problemi complessi in maniera adattiva e, al tempo stesso, di creare e rilasciare prodotti in modo efficace e creativo dal più alto valore possibile per l’utente finale.

Se questa è la definizione classica che si può trovare più o meno ovunque in rete quando si cercano informazioni su Scrum, proviamo ora a spiegare a fondo questo tipo di approccio, inquadrando il contesto in cui ci troviamo.

La metodologia Agile

Lo sviluppo software Agile fa riferimento a un gruppo di metodologie basate sullo sviluppo iterativo, in cui i requisiti e le soluzioni si evolvono attraverso la collaborazione tra team interfunzionali. I metodi agili o i processi Agile generalmente promuovono un flusso disciplinato di gestione del progetto che incoraggia frequenti ispezioni e adattamenti del prodotto.

Si basa su una filosofia di leadership che incoraggia il lavoro di squadra, l’auto-organizzazione e la responsabilità del team e un approccio di business che allinea lo sviluppo con le esigenze dei clienti e gli obiettivi aziendali. La metodologia Agile si può riferire a qualsiasi processo di sviluppo che sia allineato con i concetti del Manifesto Agile.

Il Manifesto è stato sviluppato da un gruppo di quattordici figure leader nel settore e riflette la loro esperienza su ciò che funziona e non, per lo sviluppo del software.

Qui potete trovare ulteriori informazioni sul Manifesto Agile.
Scrum quindi è un sottoinsieme di Agile. è un framework semplice e leggero per la gestione di progetti complessi. Per leggero si intende che il sovraccarico di lavoro viene mantenuto al minimo possibile per ogni fase di sviluppo, per massimizzare la quantità di tempo produttivo e la qualità del lavoro stesso.

Scrum aumenta significativamente la produttività all’interno dell’azienda e riduce i tempi di lavoro per ottenere dei benefici rispetto ai classici processi “a cascata”.

I processi Scrum consentono alle organizzazioni di adattarsi facilmente al mercato in rapida evoluzione e di produrre un prodotto che soddisfi gli obiettivi e i requisiti sia del cliente che del business.
L’applicazione di un processo Scrum in azienda porta benefici nell’organizzazione aiutandola a:

  • Aumentare la qualità dei risultati;
  • Fare fronte al cambiamento;
  • Fornire stime migliori spendendo meno tempo per crearle;
  • Essere più in controllo dello stato del progetto.

Come funziona Scrum: lo Sprint

Attraverso piccoli team formati da 6-8 persone ci si divide il lavoro in mini progetti della durata di circa un mese durante il quale si deve portare a termine un determinato numero di compiti.
Ogni Sprint deve avere una definizione di ciò che si andrà a costruire, un progetto e un piano flessibile di lavoro che guidino la costruzione, il lavoro svolto e il prodotto risultante.

Gli Sprint migliorano la prevedibilità del risultato, assicurando almeno una volta al mese l’ispezione e l’adattamento del progresso verso l’obiettivo.

Un nuovo Sprint si avvia immediatamente dopo la conclusione dello Sprint precedente. Lo Sprint consiste e contiene lo Sprint Planning, il Daily Scrum, il lavoro di sviluppo, la Sprint Review e la Sprint Retrospective.

Il Daily Scrum, fatto giornalmente con tutto il team di progetto punta, nell’arco di 5 minuti, a riassumere ciò che è stato fatto, cosa si farà nella giornata e se ci possono essere eventuali ostacoli. Con la Sprint Review invece il Team presenta i risultati raggiunti durante lo Sprint, come ad esempio delle nuove funzionalità.

I ruoli nel processo Scrum

Se si parla di Scrum Team, ci si riferisce al Team più lo ScrumMaster e il Product Owner. Altrimenti il singolo Team di Sviluppo è un gruppo di persone auto-organizzate e interfunzionali che svolgono il lavoro pratico di sviluppo, disegno e test del prodotto.

Poiché il team è responsabile della produzione del prodotto, deve anche avere l’autorità per prendere decisioni su come eseguire il lavoro.
Il Team è quindi in grado di organizzarsi: i membri del team decidono come suddividere il lavoro in attività e come assegnare i compiti ai singoli, durante lo Sprint.

La dimensione della squadra dovrebbe essere mantenuta fra le 5 e le 9 persone, se possibile. (Un numero maggiore rende difficile la comunicazione, mentre un numero minore porta a bassa produttività e fragilità).

Il Product Owner è colui che determina i requisiti del prodotto e il valore che deve avere per l’utente finale. Fornisce al team l’ordine di implementazione pianificato, ossia una roadmap di prodotto.
Il Product Owner è l’interfaccia tra l’azienda, i clienti, le esigenze relative ai prodotti e quelle relative il team.

Il Product Owner lavora a stretto contatto con il team per definire al meglio requisiti tecnici richiesti dall’utente e conserva il Product Backlog, ossia l’elenco delle funzionalità le cui priorità vengono costantemente modificate prima di ogni Sprint, mantenendolo aggiornato al livello di dettaglio e qualità richiesto dal Team.

Il Product Owner infine, stabilisce anche il programma per il rilascio del lavoro completato ai clienti e fa il controllo finale sulle implementazioni che abbiano le caratteristiche e la qualità richieste effettivamente per il rilascio.

Lo Scrum Master è il custode del processo, è il responsabile per il corretto svolgimento del processo, deve rimuovere gli ostacoli che incidono sulla produttività e organizzare e facilitare gli incontri fra Product Owner e il Team di sviluppo.

Le responsabilità dello ScrumMasters includono la rimozione delle barriere tra il team di sviluppo e il Product Owner in modo che il Product Owner guidi direttamente lo sviluppo.

In termini pratici, lo ScrumMaster è colui che deve conoscere molto bene Scrum in maniera da poter addestrare e guidare gli altri ruoli, ed educare e assistere gli altri stakeholder aziendali coinvolti nel processo.

Lo ScrumMaster deve mantenere una costante consapevolezza dello stato del progetto rispetto ai progressi previsti, indagare su eventuali ostacoli che possono rallentare il progresso. Lo ScrumMaster non assegna compiti ai membri del team, poiché l’assegnazione delle attività è una responsabilità del team stesso.

L’approccio generale dello ScrumMaster nei confronti del team è quello di incoraggiare le loro capacità decisionali e di risoluzione dei problemi, in modo che possano lavorare con sempre maggiore efficienza e riducendo la necessità di supervisione. L’obiettivo è quello di avere una squadra che non solo ha il potere di prendere decisioni importanti, ma lo fa molto bene e regolarmente.