Adeguarsi in modo "Agile": il metodo SCRUM

In un mondo che corre e che spesso non è in grado di fissare le proprie esigenze prima di iniziare le fasi di realizzazione, è necessario spesso adeguare i propri cicli produttivi. In altre parole alcuni progetti non possono fissare i requisiti e determinare le caratteristiche tecnologiche di una soluzione prima di avviare le attività produttive, ma devono essere previsti numerosi incontri per definire i particolari e condividere i risultati parziali.

Per questo motivo Informatica Trentina ha attivato un nuovo approccio metodologico che ha affiancato gli altri attualmente in uso. In particolare è stato sperimentato il metodo SCRUM (metodo tra i più consolidati e diffusi del mondo "Agile").

E’ quindi stato costituito un team (formato da personale interno ed esterno), individuato uno Scrum Master, (colui che sovraintende all’applicazione del metodo Scrum) ed un Product Owner (colui che interagisce con il team in rappresentanza dell’utente).

Il metodo è stato sperimentato con un progetto per il cliente Trento School of Management ed i risultati sono stati apprezzati da tutti gli attori coinvolti. In particolare i requisiti sono stati approfonditi e modificati, adattandoli alle reali esigenze durante tutto il periodo di lavoro, assegnando priorità di realizzazione e consegnando ad ogni ciclo di realizzazione un prodotto utilizzabile. Il cambio metodologico ha visto collaborare 7 persone per 7 cicli (chiamati “sprint”) e realizzare oltre cento “storie” (rappresentazioni delle richieste degli utenti).

Il nuovo approccio metodologico ha inoltre introdotto tecniche (Test Driven Development ad esempio) e stili di programmazione (Pair Programming) che hanno assicurato un software di ottima qualità confermato dai feedback positivi del Committente.

Non tutti i progetti devono o possono essere sviluppati con questo approccio, ma sicuramente la capacità di scegliere ed adottare lo stile più opportuno connota in modo vincente il team e il project manager.

 

Due parole su SCRUM

Agile è un approccio di lavoro che dalla fine degli anni ’90 si prefigge di privilegiare alcuni aspetti del ciclo produttivo:

“Gli individui e le interazioni più che i processi e gli strumenti”

“Il software funzionante più che la documentazione esaustiva”

“La collaborazione col cliente più che la negoziazione dei contratti”

“Rispondere al cambiamento più che seguire un piano

Per realizzare un progetto di sviluppo del software si agisce quindi per rilasci successivi e incrementali, chiamati “sprint” (ogni 2-4 settimane). Ad ogni sprint si condivide con il Cliente quanto realizzato, si decidono le funzionalità da implementare nello sprint successivo, si chiariscono dettagli e priorità. In genere ad ogni sprint corrisponde un rilascio in produzione del prodotto che può essere utilizzato dagli utenti e generare nuove richieste o modifiche. Scrum individua tre ruoli:

  • Product Owner: è colui che rappresenta tutti i clienti, esprimendo i requisiti, accettando il prodotto, suggerendo modifiche. Tutti i partecipanti al progetto possono fare riferimento a questa figura per chiedere informazioni sul progetto o chiarimenti sul lavoro da svolgere.
  • Scrum Master: è colui che deve fare in modo che il team operi in modo coeso ed efficiente. Deve preoccuparsi di eliminare ostacoli e interferenze che possano rallentare il lavoro e deve garantire che la metodologia Scrum venga seguita. È un componente del team stesso.
  • Scrum Team: è un gruppo (da 5 a 9) di programmatori che portano a termine i task. Devono essere autonomi nella gestione delle loro attività e quindi devono avere competenze di varia natura.