Creact

Fai crescere il tuo business con CREACT AGENCY.

Chiamaci +39 081 183 73 153
Contattaci

Scrum vs. Kanban: quale scegliere per un approccio Agile?

14 Novembre 2022 - Mondo App

A proposito dell’autore

Luigi Marino

Luigi Marino è un rinomato sviluppatore iOS e CEO di Creact, una digital agency specializzata nello sviluppo di soluzioni digitali personalizzate. Con oltre un decennio di esperienza nel settore IT, Luigi si è affermato come leader tecnologico innovativo e esperto in sicurezza informatica, accessibilità e gestione di progetti complessi.

Esperienza e Competenze:
- Sviluppo App iOS: Luigi ha sviluppato oltre 50 applicazioni per vari mercati, utilizzando tecnologie avanzate come SwiftUI e Swift Concurrency. La sua esperienza è supportata da una certificazione Apple, attestando le sue competenze avanzate nello sviluppo di app iOS.

- Sicurezza Informatica: Luigi è un esperto riconosciuto in sicurezza informatica e protezione dei dati nelle app. Ha pubblicato numerosi articoli su come implementare la crittografia e altre misure di sicurezza per garantire la protezione dei dati sensibili nelle applicazioni mobile.

- Accessibilità e Design Inclusivo: Impegnato nella creazione di esperienze digitali accessibili, Luigi adotta best practice e linee guida per garantire che le sue applicazioni siano utilizzabili da tutti, inclusi gli utenti con disabilità.

Come CEO di Creact, Luigi ha guidato team di sviluppo in progetti di successo, applicando metodologie Agile per assicurare efficienza e risultati di alta qualità. La sua capacità di gestire e coordinare team

Scrive articoli per Creact, dove condivide le sue conoscenze su sviluppo web, app e e le ultime tendenze nel settore IT.

Luigi offre approfondimenti preziosi e consigli pratici per aiutare aziende e professionisti a navigare nel mondo digitale e ottenere risultati tangibili. La sua scrittura è caratterizzata da chiarezza, precisione e un approccio orientato ai risultati.

Quando si sviluppa un progetto di lavoro è necessario prendere centinaia di decisioni, man mano che si avanza. La prima cosa da decidere è la corretta impostazione di project management che meglio si adatta alle proprie esigenze.

Una delle pratiche di maggiore diffusione è la cosiddetta metodologia Agile, la quale tende a promuovere una costante interazione tra testing e sviluppo.

La differenza che la distingue dal più comune metodo a cascata (waterfall) è che la fase di testing non viene eseguita alla fine dello sviluppo, ma nel corso della fase di creazione del prodotto. All’interno però del sistema Agile esistono delle diverse sottocategorie che sfruttano vari framework per la gestione dei progetti.

Tra i meccanismi Agile più utilizzati ci sono Scrum e Kanban. Se il primo si basa su un meccanismo più rigido e strutturato, il secondo è più facile da implementare e flessibile. Ma in cosa consistono esattamente, quali vantaggi offrono e in che cosa differiscono?

Cos’è il metodo Kanban

L’espressione Kanban deriva dal giapponese e vuole dire “cartellino” oppure “segno visivo”. Si tratta di un quadro visivo impiegato per introdurre la metodologia Agile ed indica che cosa, quando e quanto produrre.

Tale filosofia di lavoro prevede piccole modifiche al sistema in uso e non richiede una procedura vera e propria.

Il Kanban ha avuto origine dalla Toyota Production System e Lean Manufacturing. Infatti, negli anni Quaranta l’azienda automobilistica giapponese ha migliorato il processo produttivo ispirandosi alla maniera in cui i supermercati rifornivano gli scaffali.

L’ingegnere Taiichi Ohno si era reso conto che i supermercati mettevano in magazzino soltanto i prodotti sufficienti a soddisfare la domanda.

Lo stesso rifornimento dell’inventario avveniva quando c’erano spazi vuoti sopra gli scaffali, cioè in presenza di un indizio visivo. Inoltre, essendo l’inventario legato al consumo, il supermercato aveva un’ottimale gestione delle scorte.

La Toyota ha poi trasferito tali principi agli stabilimenti della società. Oggi le stesse idee possono essere tranquillamente applicate ai team che si occupano di IT e sviluppo software. Al posto dell’inventario c’è il work-in-progress di sviluppo e la nuova fase di lavoro si può aggiungere soltanto nel momento in cui c’è uno spazio vuoto sulla bacheca Kanban.

La bacheca

La bacheca Kanban è un elemento determinante per implementare questo metodo Agile. In origine si trattava di una vera lavagna con puntine, magneti e note adesive per mostrare i componenti delle fasi di lavoro.

Negli ultimi anni, invece, ci si affida sempre di più a software di gestione per avere una bacheca in versione digitale. Quale che sia la forma prescelta, una bacheca Kanban prevede diverse colonne e righe.

Quelle più semplici includono 3 colonne con le seguenti intestazioni: da fare, in corso e fatto. Se il progetto riguarda lo sviluppo software possono esserci anche colonne dedicate a coding, backlog e testing.

Le note adesive costituiscono il lavoro e ognuna è inserita nella riga che indica lo stato di quel lavoro specifico. I cartellini devono quindi comunicare i progressi da un punto di vista visivo e c’è chi li preferisce di svariati colori per rappresentare dati differenti.

Come funziona il metodo Kanban

Un progetto Kanban dovrebbe essere organizzato prendendo come riferimento questi step fondamentali:

  • Rappresentare visualmente il flusso di lavoro: una riproduzione visiva del lavoro in corso permette di avere un quadro generale del tutto e di visualizzare concretamente come procedono le fasi di sviluppo. Ciò consente non solo di scovare code e problemi, ma anche di individuare con prontezza le difficoltà per risolverle;
  • Porre limiti al work-in-progress: i limiti al lavoro in corso definiscono la quantità massima e minima di lavoro per ciascuna colonna della bacheca. Mettendo un limite si potrà così incrementare la velocità e la flessibilità, senza dover per forza dare priorità a specifiche attività;
  • Controllare il flusso di lavoro: il flusso di lavoro sulla bacheca Kanban deve essere gestito e migliorato al momento. Infatti, lo scopo principale è quello di evitare colli di imbuto che potrebbero bloccare tutto il processo lavorativo;
  • Rendere comprensibili i criteri di processo: l’unico modo per inserire cambiamenti all’interno del sistema Kanban è rendere espliciti i processi. Tutti i membri del team devono sapere come procedono le cose, magari modificando la bacheca, così che ognuno capisca come deve scorrere il flusso di lavoro;
  • Puntare ad un miglioramento costante: il meccanismo Kanban promuove piccoli e costanti cambiamenti che si protraggono nel tempo. Se tale metodo è in funzione, il gruppo riuscirà ad identificare e comprendere i problemi, suggerendo le correzioni. Tutto scorrerà in maniera più efficace, incrementando la qualità del lavoro.

Cos’è il metodo Scrum

Altra tipologia di metodo Agile è Scrum, uno dei framework più apprezzati e popolari tra sviluppatori e lavoratori in generale. È un modello di sviluppo iterativo, molto utile per la gestione e definizione di progetti complessi.

Scrum ha la peculiarità di basarsi su iterazioni tra i componenti del team lavorativo che hanno una durata prestabilita di 1-2 settimane e sono chiamate sprint. Queste iterazioni timeboxed possono estendersi fino a 4 settimane e permettono al gruppo di distribuire il software a cadenza regolare.

Ogni giorno si tiene un daily scrum, ovvero una breve riunione di 15 minuti nel corso della quale si verificano i progressi dello sprint. Concluso lo sprint, i componenti del team e gli stakeholders si riuniscono per stabilire i passi successivi.

La metodologia Scrum si fonda su una serie di fasi operative che compongono ciascuno sprint: la pianificazione, il daily scrum, la sprint review e la retrospettiva dello sprint. Durante ogni sprint la squadra userà artefatti visivi (diagrammi e schede di attività) per evidenziare i progressi e avere feedback.

In aggiunta, chi vuole usufruire del sistema Scrum deve nominare delle figure lavorative specifiche. Il product owner è colui che sa esattamente quali sono le esigenze di business e dà priorità al lavoro da fare. Interagisce con stakeholder e membri del team per motivarli a raggiungere l’obiettivo.

La seconda figura è lo Scrum master che rende più facile il lavoro del gruppo. Si occupa di risolvere problemi, organizzare riunioni e si assicura che ogni membro segua il metodo Scrum. Non ha quindi autorità sulle persone, ma sul processo.

Per finire c’è il Team Scrum, la squadra di lavoro che può essere composta da 3 a 9 persone al massimo. Ci si aiuta a vicenda con un forte senso di cooperazione. Diversamente da altri team di sviluppo, non esistono mansioni particolari, ma tutti devono essere in grado di completare lo sprint insieme.

Per ulteriori informazioni e approfondire l’argomento, vi inviamo a leggere il nostro articolo “Metodologia Scrum: cos’è e perché conviene implementarla”.

Le principali differenze tra Scrum e Kanban

Sia Scrum che Kanban agiscono nell’ambito della metodologia Agile e in entrambi i casi vengono analizzate attività complesse per poi suddividerle in segmenti di lavoro più piccoli.

I due hanno l’obiettivo comune di ottenere l’ottimizzazione dei processi, rendendo il flusso di lavoro sempre pienamente visibile. Inoltre, sono metodi empirici poiché devono sperimentare il processo per comprendere come funziona.

Infine, sia Scrum che Kanban danno la possibilità ai membri di lavorare su più progetti in contemporanea ed entrambi puntano alla fornitura di software in anticipo.

Dunque, Scrum e Kanban hanno dei punti di contatto, ma entrando nel dettaglio ci sono alcune differenze molto importanti:

  • Scrum prevede delle iterazioni a tempo(sprint) che convergono verso un miglioramento dei processi e della loro pianificazione. Invece Kanban permette di scegliere quando svolgere tali attività, cioè qual è la cadenza più utile;
  • Scrum ha bisogno di ruoli specifici, mentre Kanban non necessita di nessuna figura particolare;
  • Scrum è meno flessibile e aperto al cambiamento. Con Kanban le modifiche sono accolte con più facilità. Non a caso le user story (specifiche di un software da condividere) impegnate in uno sprint Scrum non possono essere ampliate in seguito. In Kanban se ne aggiungono a piacimento oppure si modificano quelle esistenti;
  • La bacheca Scrum viene azzerata alla fine di ogni sprint. Una bacheca Kanban è utilizzata in maniera continuativa;
  • Il team Scrum è interfunzionale ed è proprietario della bacheca. Invece in Kanban i team non devono essere interfunzionali e qualunque persona può possedere la bacheca.

Quali benefici offrono Scrum e Kanban?

Muoversi secondo metodologia Scrum oppure Kanban comporta certamente degli indubbi vantaggi per tutti quei gruppi di lavoro che operano nel settore sviluppo, ma possono trarne beneficio anche i team che lavorano in settori differenti.

Vediamo allora quali sono i principali effetti positivi generati dall’utilizzo dei due approcci Agile.

Vantaggi di Scrum

  • Trasparenza e condivisione: grazie alle riunioni giornaliere, tutto il gruppo sa cosa sta facendo ognuno, evitando fraintendimenti e confusione. I problemi vengono identificati in anticipo, consentendo ai membri di risolverli in tempi rapidi;
  • Maggiore responsabilità: il team di lavoro deve focalizzarsi unicamente su quello che deve essere fatto per terminare lo sprint. Si lavora tutti insieme, aiutandosi e dando a ciascuno l’opportunità di essere comunque indipendente;
  • Riduzione del margine di errore: chi agisce con il metodo a cascata prevede di rilasciare il prodotto alla fine del processo di sviluppo, con un notevole aumento delle probabilità di fallimento o errore. Con lo Scrum ciò non avviene in quanto si procede step-by-step, apportando correttivi secondo esigenza;
  • Contenimento dei costi: codificare ed eseguire test con costanza su piccole porzioni dà la possibilità di ricevere feedback continui, così da correggere gli sbagli per tempo, prima che diventino troppo costosi per porvi rimedio.

Vantaggi di Kanban

  • Maggiore flessibilità: Kanban è una filosofia di lavoro molto fluida e in continua evoluzione, dato che non ci sono sprint a durata predefinita e le priorità sono valutate man mano che giungono nuovi dati e informazioni;
  • Abbattimento degli sprechi: Kanban cerca di ridurre qualsiasi genere di spreco. I team non devono perdere tempo nello svolgere attività non necessarie e fasi di lavoro inutili o errate;
  • Comprensione più agevole: l’impostazione visiva di Kanban lo rende estremamente intuitivo e semplice da comprendere. Il gruppo non deve imparare da zero un sistema del tutto nuovo e Kanban può essere aggiunto senza difficoltà ad altri metodi preesistenti;
  • Velocizzazione del flusso di consegna: i team Kanban lavorano duramente per ottimizzare il flusso di lavoro verso i clienti. Tale modello prevede infatti la consegna just-in-time e a cadenza regolare.

 Quando utilizzare Scrum e Kanban

In genere l’uso della metodologia Scrum è consigliato quando le ipotesi sulle quali si fonda un progetto cambiano rapidamente. Insomma, è l’ideale se c’è un’idea in fase di approvazione, dove nulla è ancora deciso al 100% e potrebbe esserci un cambio di rotta in qualsiasi momento.

Questo è il motivo per il quale lo Scrum è indicato anche per i progetti delle stratup. Come già detto, il sistema consente ai team di poter impostare modifiche a blocchi, mantenendo sempre sotto controllo gli obiettivi degli sprint.

Dunque, l’utilizzo di Scrum è caldamente raccomandato per chi desidera essere pronto a qualunque tipo di rivoluzione in fase di sviluppo.

Al contrario, il metodo Kanban sembra più idoneo nei casi in cui il lavoro di un gruppo ha bisogno di essere ottimizzato. Questo perché lo scopo primario di Kanban è ridurre gli attriti e intoppi che possono crearsi nel team.

Quindi Kanban si sposa meglio con le realtà business già avviate o che comunque hanno già superato la fase di validazione dei progetti. Per di più, ci sono tempistiche meno strette in quanto non esistono sprint entro i quali terminare le varie fasi.

Ciò significa che con Kanban un team di lavoro può agire secondo le necessità del momento, senza limitazioni.

Scrum e Kanban: qual è il migliore?

Mettendo a confronto Scrum e Kanban è difficile stabilire chi sia il vincitore. Non esiste una soluzione superiore all’altra poiché tutto dipende dal progetto, dagli obiettivi finali e dal team.

Essendo metodologie Agile, si possono estrapolare principi di base da ognuna e applicarli all’occorrenza. È bene ricordare però che lo Scrum richiede un cambiamento più radicale rispetto a quel che avviene con Kanban. Questo perché la squadra dovrà imparare regole predefinite, iterazioni e ruoli specifici.

D’altro canto, Kanvan può essere implementato più facilmente, persino in processi Scrum già esistenti. Come regola generale di cui tenere conto, si può dire che Scrum è preferibile soprattutto per le aziende e i team bloccati che esigono un cambiamento profondo.

Se invece avete un progetto già avviato e vi servono solo alcune modifiche minori, Kanban è la scelta più giusta. In parole più semplici, è importante considerare il livello di cambiamento che si desidera apportare nel team prima di scegliere l’uno o l’altro.

Avviso sui cookie di WordPress da parte di Real Cookie Banner