Scrum (informatica)
Scrum è un framework agile per la gestione del ciclo di sviluppo del software, iterativo ed incrementale, concepito per gestire progetti e prodotti software o applicazioni di sviluppo, creato e sviluppato da Ken Schwaber e Jeff Sutherland.
Scrum è un framework agile per la gestione del ciclo di sviluppo del software, iterativo ed incrementale, concepito per gestire progetti e prodotti software o applicazioni di sviluppo, creato e sviluppato da Ken Schwaber e Jeff Sutherland.
Scrum enfatizza tutti gli aspetti di gestione di progetto legati a contesti in cui è difficile pianificare in anticipo. Vengono utilizzati meccanismi propri di un "processo di controllo empirico", in cui cicli di feedback che ne costituiscono le tecniche di management fondamentali risultano in opposizione alla gestione basata sul concetto tradizionale di command-and-control. Il suo approccio alla pianificazione e gestione di progetti è quello di portare l'autorità decisionale al livello di proprietà e certezze operative.
Il termine Scrum, in quanto applicato allo sviluppo di prodotti, è stato per la prima volta utilizzato in "The New New Product Development Game" (Harvard Business Review 86116:137-146, 1986) e successivamente elaborato in "The Knowledge Creating Company" entrambi testi di Ikujiro Nonaka e Hirotaka Takeuchi (Oxford University Press, 1995).
Storia
Nel 1986, Hirotaka Takeuchi e Ikujiro Nonaka descrissero un nuovo approccio allo sviluppo di prodotti commerciali che avrebbe aumentato la velocità e la flessibilità, basato su casi di studio presi dall'industria automobilistica e quella relativa alla realizzazione di fotocopiatrici e stampanti. Essi lo chiamarono approccio olistico o rugby, in quanto l'intero processo viene eseguito da un team interfunzionale su più fasi che si sovrappongono, dove la squadra "cerca di raggiungere l'obiettivo come unità, passando la palla avanti e indietro".
Il termine Scrum è mutuato dal termine del rugby che indica il pacchetto di mischia ed è evidentemente una metafora del team di sviluppo che deve lavorare insieme in modo che tutti gli attori del progetto spingano nella stessa direzione, agendo come un'unica entità coordinata.
Ken Schwaber e Jeff Sutherland hanno presentato per la prima volta Scrum alla conferenza OOPSLA del 1995. Questa presentazione ha essenzialmente documentato ciò che Ken e Jeff avevano appreso negli anni precedenti applicando Scrum. Nel 2001 Schwaber ha collaborato con Mike Beedle per descrivere il metodo in un libro chiamato Agile Software Development with Scrum.. Inoltre, nel 2004, Ken Schwaber ha pubblicato il libro Agile Project Management with Scrum pubblicato da Microsoft Press.
La teoria di Scrum
Scrum si basa sulla teoria dei controlli empirici di analisi strumentale e funzionale di processo o empirismo. L'empirismo afferma che la conoscenza deriva dall'esperienza e che le decisioni si basano su ciò che si conosce. Scrum utilizza un metodo interattivo e un approccio incrementale per ottimizzare la prevedibilità e il controllo del rischio.
Sono tre i pilastri che sostengono ogni implementazione del controllo empirico di processo.
Trasparenza
Gli aspetti significativi del processo devono essere visibili ai responsabili del lavoro. La trasparenza richiede che quegli aspetti siano definiti da uno standard comune in modo tale che gli osservatori condividano una comune comprensione di ciò che viene visto. Ad esempio:
Un linguaggio comune di riferimento al processo deve essere condiviso da tutti i partecipanti;
Una definizione comune della parola "fatto" (in inglese "done") deve essere condivisa da chi esegue il lavoro e da chi deve accettarlo.
Ispezione
Chi utilizza Scrum deve ispezionare frequentemente gli artefatti prodotti e i progressi realizzati verso il conseguimento degli obiettivi prestabiliti, individuando in tal modo precocemente eventuali difformità rispetto a quanto si intende realizzare. La frequenza delle ispezioni non deve essere tale da determinare un'interruzione del lavoro in corso. Le ispezioni devono essere eseguite diligentemente e da ispettori qualificati.
Adattamento
Se chi ispeziona verifica che uno o più aspetti del processo di produzione sono al di fuori dei limiti accettabili e che il prodotto finale non potrà essere accettato, deve intervenire sul processo stesso o sul materiale prodotto dalla lavorazione. L'intervento deve essere portato a termine il più rapidamente possibile per ridurre al minimo l'ulteriore scarto rispetto agli obiettivi prestabiliti.
Scrum prescrive quattro occasioni formali per l'ispezione e l'adattamento:
Sprint Planning Meeting
Daily Scrum
Sprint Review
Sprint Retrospective
Caratteristiche
In maniera molto sintetica Scrum è un framework di processo che prevede di dividere il progetto in blocchi rapidi di lavoro (Sprint) alla fine di ciascuno dei quali creare un incremento del software. Esso indica come definire i dettagli del lavoro da fare nell'immediato futuro e prevede vari meeting (eventi) con caratteristiche precise per creare occasioni di ispezione del lavoro svolto.
Il framework Scrum è un sistema formato basato su valori, responsabilità, eventi, artefatti e regole ad essi associati allo scopo di creare un ambiente trasparente che permetta l'ispezione ed adattamento. Ogni parte del framework serve a uno specifico scopo ed è essenziale per il successo e l'utilizzo di Scrum.
Le regole di Scrum legano insieme eventi, responsabilità, artefatti e commitments, governando le relazioni e interazioni tra essi anche se le strategie specifiche per l'utilizzo del framework Scrum variano e vengono descritte in molti testi specifici.
MCMX
