Punti di forza e difficoltà nell’utilizzo di Scrum

Punti di forza e difficoltà nell’utilizzo di Scrum

Scrum

Scrum viene identificato come un esempio e framework di modello agile, attualmente il più usato tra le grandi società informatiche. Come spiegato in un altro articolo su SCRUM, la metodologia Scrum è un esempio di modello agile che può essere usato per gestire e controllare lo sviluppo di prodotti software complessi. Scrum definisce un set di attività che consentono ai team di offrire più valore al cliente, in meno tempo. Queste attività consentono al cliente di esaminare, guidare ed influire sul lavoro dei team durante l’intera fase di sviluppo. Come vedremo in seguito, questo approccio non tenta di definire tutti i requisiti e le caratteristiche del prodotto all’inizio del progetto ma, dopo ogni iterazione (chiamata sprint), incrementa e perfeziona ciò che è stato creato in precedenza.
Essendo agile, Scrum si basa strettamente sui valori citati nel Manifesto Agile: è importante notare come, per ottenere i risultati sperati, i team di sviluppo debbano riconoscere ed apprezzare questi valori e principi, che costituiscono il fondamento di tutti i processi agili.Punti di forza e difficoltà nell'utilizzo di Scrum
Il cofondatore di Scrum Ken Schwaber, introdusse nella metodologia un processo fondamentale, il processo di controllo, basato su tre rami fondamentali:

  1. Trasparenza: ogni aspetto del processo che influenza il risultato deve essere visibile e conosciuto da ciascun membro coinvolto nel progetto. Gli aspetti significativi, soprattutto, devono essere visibili ai responsabili del lavoro. La trasparenza richiede che tutti quegli aspetti siano definiti da uno standard comune, in modo tale che i membri condividano una comune comprensione di ciò che deve essere fatto. Ad esempio: un linguaggio comune di riferimento al processo deve essere condiviso da tutti i partecipanti al progetto.
  2. Ispezione: tutti gli aspetti del processo devono essere controllati con elevata frequenza affinché gli scostamenti indesiderati possano essere rilevati con facilità e tempestività. Inoltre, i clienti devono ispezionare frequentemente le funzionalità implementate e il progresso verso l’obiettivo fissato in modo da rilevare le variazioni non richieste. I controlli non devono però essere così frequenti da superare la soglia di tolleranza e rappresentare un’interruzione al lavoro: sono più utili quando eseguiti raramente ma in modo preciso ed approfondito.
  3. Adattamento: se chi ispeziona verifica che uno o più aspetti del processo sono al di fuori dei limiti accettabili e che il prodotto finale non potrà sicuramente essere approvato, bisogna regolare il processo e riportarlo dentro al range stabilito. Questo adattamento deve essere portato a termine il più rapidamente possibile, per ridurre al minimo l’uscita dal range.

Solitamente, il processo di controllo è gestito dagli sviluppatori con molta esperienza e maggiormente informati.

Punti di forza e Difficoltà

È risaputo che una comunicazione inefficiente o addirittura inesistente è la causa principale della maggior parte del fallimenti riguardanti lo sviluppo di prodotti software.
Nonostante il modello Scrum riconosca l’importanza della comunicazione, essa continua ad essere una difficoltà: il Daily Scrum Meeting introduce un metodo comunicativo efficiente tra i membri di un singolo team; tuttavia, ogni team all’interno del progetto è generalmente separato dagli altri e non c’è mai abbastanza comunicazione tra tutti i team. Questa mancanza, in primo luogo, potrebbe causare problemi come la duplicazione del lavoro: due team non comunicano e svolgono quindi le stesse attività.
Questo problema potrebbe essere risolto o, al limite, mitigato, mediante un meeting tra gli Scrum Master di ogni team, in modo che ognuno di essi si possa assicurare che il suo team non stia duplicando il lavoro di un altro.

Se la comunicazione tra i team rappresenta un problema, quella con il cliente ne rappresenta uno ancora più grande: le maggiori difficoltà comunicative vengono riscontrate con il cliente, perché tende molto spesso a non fornire un feedback adeguato.
Purtroppo, il coinvolgimento del cliente nel processo di sviluppo del software è una parte cruciale, che garantisce la maggior parte delle volte la riuscita del progetto.
Nonostante il cliente ne sia a conoscenza, i team non ottengono mai il feedback desiderato: i clienti sono sempre impegnati e trovano sempre altre cose da fare piuttosto che parlare con gli sviluppatori quando essi hanno bisogno. Accettano spesso la maggior parte del prodotto creato dai team, a cui chiedono soltanto delle piccole modifiche.

Il più delle volte sembra che i clienti non sappiano cosa realmente vogliono sia implementato nel prodotto e questo rappresenta un ostacolo sia per i team di sviluppo, che non sanno bene cosa realizzare, che per i clienti stessi, che non ottengono il coinvolgimento necessario all’interno del progetto.

Il punto di forza principale nell’utilizzo della metodologia Scrum è la sua semplicità.
In Scrum, i ruoli sono ben definiti e non ci sono incomprensioni né intromissioni; i requisiti possono essere completamente testati e sviluppati in brevi cicli iterativi e i membri di ciascun team sostengono una responsabilità maggiore ma equamente divisa, che copre la parte del progetto che sviluppano.
Nonostante i problemi citati in precedenza, i metodi usati da Scrum rafforzano la già vasta comunicazione, che aiuta i team ad organizzarsi con maggiore efficienza. Ovviamente una frequente comunicazione non significa che la documentazione non sia richiesta e necessaria: senza gli adeguati controlli, il progetto potrebbe degenerare in un disastro dovuto anche ad una documentazione scritta in maniera inadeguata.

Scrum è uno dei modelli più adatti al miglioramento delle prestazioni durante ciascuna fase del ciclo di sviluppo del software, perché si focalizza sull’eliminazione del superfluo, dei processi non necessari e delle pratiche gestionali non importanti.

Molto spesso, per cercare di comprendere al meglio i punti di forza di Scrum, lo si compara con i modelli precedenti.
I benefici riportati dai team derivano anche dai loro anni di esperienza, e riguardano:

  • Produttività: il 68% dei team ritiene che Scrum abbia un alto grado di produttività. Il 27% lo ritiene un modello con una produttività mediocre. Il 5% lo ritiene il peggiore modello in questi termini.
  • Team: il 52% dei team ha una buona cooperazione. Il 39% riporta una media collaborazione. Il 9% dei team ha una scarsa comunicazione.
  • Adattabilità: il 63% dei progetti è facilmente adattabile ai cambiamenti dei requisiti e a quelli di mercato. Il 33% riporta una media capacità di adattamento. Il restante 4% non risulta essere molto adattabile.
  • L’85% dei team vorrebbe continuare ad usare Scrum (se la decisione di farlo spettasse a loro).

Nonostante il problema della comunicazione e alla luce dei punti di forza appena descritti, Scrum viene utilizzato e seguito da molte società (anche di alto livello) come linea guida per sviluppare i loro software:

  • Oracle
  • Adobe
  • BBC
  • IBM
  • Google
  • Yahoo
  • Philips
  • Siemens
  • Nokia
  • Microsoft
  • e tanti altri.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: lav[email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *