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?
Elenco dei contenuti
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 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.
Un progetto Kanban dovrebbe essere organizzato prendendo come riferimento questi step fondamentali:
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”.
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:
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.
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.
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.