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.

Servizi correlati

Altre voci

C

Classe (informatica)

Una classe, nella programmazione orientata agli oggetti, è un costrutto di un linguaggio di programmazione usato come modello per creare oggetti. Tale modello comprende attributi e metodi che saranno condivisi da tutti gli oggetti creati (istanze) a partire dalla classe. Un oggetto è, di fatto,…

Leggi la voce →
Visual Studio CodeV

Visual Studio Code

Visual Studio Code (o più semplicemente VS Code) è un editor di codice sorgente sviluppato da Microsoft per Windows, Linux e macOS. Include il supporto per debugging, un controllo per Git integrato, syntax highlighting, IntelliSense, snippet e refactoring del codice. Sono personalizzabili il…

Leggi la voce →
Stephen GrahamS

Stephen Graham

Stephen Graham (Kirkby, 3 agosto 1973) è un attore britannico.

Leggi la voce →
P

PostgreSQL

PostgreSQL (pronuncia all'inglese [poʊstɡrɛs ˌkjuːˈɛl] Pronuncia) è un completo DBMS ad oggetti pubblicato con licenza libera (stile Licenza BSD). Spesso abbreviato come "Postgres", sebbene questo sia un nome vecchio dello stesso progetto, è una reale alternativa sia rispetto ad altri prodotti…

Leggi la voce →
C

Cloud computing

Il cloud computing, in italiano nuvola informatica o servizi nella nuvola, indica un paradigma di erogazione di servizi offerti su richiesta da un fornitore a un utente finale attraverso la rete internet (come l'archiviazione, l'elaborazione o la trasmissione dati), a partire da un insieme di…

Leggi la voce →
A

Accoppiamento (informatica)

Per accoppiamento o dipendenza, in informatica e ingegneria del software, si intende il grado con cui ciascuna componente di un software dipende dalle altre componenti.

Leggi la voce →