Image by rawpixel on Pixabay

La filosofia Agile: breve panoramica

Nata nell’ambito dello sviluppo software, la filosofia Agile nell’ultimo decennio è passata dall’essere “emergente” a diventare mainstream; grazie alla sua duttilità, si è diffusa anche trasversalmente nella pratica del Project e del Service Management.

Racchiude in sé un insieme di metodi e pratiche che prendono il via dall’Agile Manifesto (“Manifesto per lo sviluppo agile del software”), redatto nel 2001, e che condividono tra loro una visione racchiusa in 12 Principi > https://agilemanifesto.org/

Quella Agile è una filosofia, un approccio, che si applica attraverso specifiche metodologie e si attua con specifici strumenti e tecniche.

L’Agile nasce in contrapposizione al tradizionale processo waterfall, “a cascata”, che tende a porre la sua enfasi sulla definizione dei requisiti e sul processo, introducendo quindi un approccio lightweight, dove la parte essenziale è basata sul team coinvolto, concentrato sul raggiungimento dei risultati in modo rapido, seguendo un approccio iterativo e collaborativo, in cui il cliente viene messo al centro del processo di sviluppo.

Riportiamo fedelmente quanto illustrato nell’Agile Manifesto:

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

In un processo di sviluppo agile il risultato viene consegnato attraverso brevi cicli di lavoro: questo permette di adattare il lavoro in maniera tempestiva, sulla base di frequenti feedback dei committenti del progetto e degli utilizzatori del prodotto finale. E permette una maggiore soddisfazione del cliente grazie alla fornitura continua di pacchetti di lavoro già utilizzabili.

Questo si ottiene attraverso iterazioni con gli stakeholder e feedback continuo, per poter rilasciare e successivamente raffinare il risultato; planning, testing e integrazione continua, per perfezionare qualsiasi aspetto relativo sia al progetto, sia al software.

Quello che emerge da una visione generale dell’approccio Agile è l’importanza della persona, sia essa un membro del team di sviluppo, sia il committente; entrambi sono strettamente coinvolti nelle fasi del lavoro e focalizzati sul miglior risultato finale, ottenuto attraverso una continua e adattiva collaborazione.

“Una conversazione faccia a faccia è il modo più efficiente e più efficace per comunicare con il team ed all’interno del team.” [sesto principio del Manifesto]

Quindi con il termine “agile” possiamo indicare quelle metodologie di sviluppo leggere e flessibili, che consentono di rivedere di continuo le specifiche adeguandole durante l’avanzamento dello sviluppo del software, mediante un framework iterativo e incrementale, e un forte scambio di informazioni e di pareri tra gli sviluppatori e con il committente.

Tra i framework utilizzati nelle metodologie Agile, il più diffuso è lo SCRUM, un particolare insieme di practice basato sul controllo empirico dei processi attraverso trasparenza, ispezione e adattamento.

Curioso ricordare da dove prenda il nome il framework: SCRUM è un termine sportivo, nello specifico proviene dal rugby, e definisce la mischia, una formazione molto affollata di giocatori che cercano di impossessarsi della palla a testa bassa. I team infatti sono piccoli gruppi performanti e interfunzionali che condividono l’obiettivo finale, in cui gli individui possono gestire complicati problemi adattivi mentre realizzano prodotti di alto valore.

Guarda le caratteristiche principali del framework SCRUM in questo video di 4.31 minuti:

Infografica SCRUM di Knoledge Train

Utilizzare le filosofie Agile non riguarda tanto l’imparare tecniche o strumenti nuovi ma, soprattutto, adottare un nuovo approccio mentale. Si tratta di abbracciare un cambiamento culturale, un diverso approccio alle cose.

Approfondimenti: