NEWS

Metodologia Scrum

Metodologia Agile per una maggiore qualità.

In Unicode prendono sempre maggior diffusione i progetti sviluppati con metodologia Agile.

I metodi agili si contrappongono al modello a cascata (waterfall model) e altri modelli di sviluppo tradizionali, proponendo un approccio meno strutturato e focalizzato sull'obiettivo di consegnare al cliente, in tempi brevi e frequentemente, software funzionante e di qualità.
Produrre software in tempo più rapido, di maggior qualità e che faccia esattamente quello che serve al cliente significa consegnare un prodotto meno costoso e con maggior valore.
Scrum è un framework all'interno del quale le persone possono affrontare problemi adattivi complessi, fornendo al contempo prodotti dal valore più alto possibile in modo produttivo e creativo.
Nella sua essenza, Scrum si basa su un’idea semplice:
ogni volta che si avvia un progetto, perché non controllarlo regolarmente, verificare se si sta andando nella direzione giusta e se è veramente ciò che le persone vogliono?
E perché non controllare se ci sono modi per migliorare il come fare ciò che si sta facendo, per farlo meglio e farlo più velocemente?
Cosa si può fare per rimuovere gli ostacoli da questo percorso di sviluppo?

Nel Software esiste la regola per cui l’80% del valore risiede nel 20% delle caratteristiche. Per fare ciò è necessario disporre le attività in ORDINE di PRIORITA’ secondo il VALORE che abbiamo identificato per fare in modo che venga prodotto prima quel 20% delle caratteristiche che contengono il vero valore aggiunto di una soluzione.
Spesso il cliente si renderà conto che non gli serve il restante 80% (tutto o in parte) o cambierà la propria percezione riconsiderando quello che gli sembrava importante e invece non lo è più.

Agile\SCRUM funziona fissando degli obiettivi sequenziali che devono essere completati in un determinato lasso di tempo, fisso e ben definito, che normalmente dura da qualche giorno fino a poche settimane.
Alla fine di ogni ciclo si deve verificare un incremento del prodotto definito, funzionante e utilizzabile dalle persone interessate e in grado di offrire poi un feedback.

Questa metodologia consente ai team di ricevere informazioni di ritorno sul loro lavoro praticamente in tempo reale.

Mia Immagine


Perché un approccio Scrum allo sviluppo è conveniente:

  1. SEMPLICITA' e Q.B.: fare la cosa più semplice è l’approccio economicamente più conveniente, si evita l’over-engineering della soluzione e lo si fa nei tempi stabiliti.
  2. CONSEGNARE VALORE ed eliminare gli sprechi: meglio concentrarsi su software funzionante più che su una documentazione esaustiva. È totalmente inutile produrre documenti su documenti che nessuno mai utilizzerà. È bene concentrarsi sul produrre valore per il cliente in ogni attività piuttosto che fare cose costose ed inutili.
    Fra le attività utili rientra produrre la giusta documentazione che soddisfi l’esigenza del cliente.
  3. QUALITA' TOTALE. Con la metodologia Agile i Teams lavorano su Sprint della durata massima di 2-3 settimane. In questo modo gli eventuali bug vengono scoperti e corretti subito. Correggere eventuali errori dopo mesi è molto più costo. Più codice si scrive, maggiore è la probabilità di dover cambiare quanto già fatto in caso di errore, oltre a dover ricreare il focus sul problema a distanza di tempo.
  4. RISPETTO DEI TEMPI. La scomposizione in tanti “sprint” il cui risultato deve essere una “consegna” porta ad un maggior rispetto della dead line finale prevista. Fissare un orizzonte temporale unico a lunga scadenza porta alla sottovalutazione del tempo mancante con conseguente slittamento dei termini e con il rischio di non usare la dovuta attenzione per rispettare la scadenza.
  5. COINVOLGIMENTO DEL CLIENTE. All’interno dei teams è presente una figura essenziale chiamata “Product Owner”. Questa persona è responsabile degli interessi del cliente all’interno del team. L’utilizzo di sprint brevi evita di lavorare mesi su funzioni che non sono le reali priorità. Con questa metodologia prima si consegna ciò che porta valore al cliente.
    In corso d’opera, sarà anche più semplice rendersi delle eventuali mutate esigenze o degli errori di comunicazione delle aspettative rendendo sempre il progetto aderente alle reali necessità.
  6. MIGLIORAMENTO CONTINUO. La costruzione di team multidisciplinari porta nel tempo ad una contaminazione reciproca delle conoscenze, aumentando nel tempo il “sapere” delle persone. Inoltre, il continuo processo di controllo sul lavoro svolto, porta a migliorare il coordinamento tra i membri del team stesso, sviluppando e cercando nuove routine di lavoro più funzionali al raggiungimento degli obiettivi degli sprint e di conseguenza del prodotto finale.
L’adozione dei “principi agili”, nel momento in cui diventa parte della cultura aziendale e non una mera etichetta, produce un tangibile beneficio non solo in termini di costo/qualità ma anche in termini di innovazione di prodotto e di processo.
E nel diffondersi all’interno dell’azienda tale approccio potrà diventare una metodologia utile anche in funzioni che non sono direttamente correlate con lo sviluppo software.