Close

Kanban

Come si applica la metodologia Kanban allo sviluppo software

Esplora argomenti
Board Jira

Inizia gratuitamente con il modello Kanban di Jira

Massimizza l'efficienza visualizzando e portando avanti il lavoro più importante.

Usa modello

Che cos'è Kanban?

Kanban è un framework molto diffuso utilizzato per implementare lo sviluppo di software Agile e DevOps. Richiede una comunicazione in tempo reale della capacità e la trasparenza completa del lavoro. Gli elementi di lavoro sono rappresentati visivamente su una board Kanban per consentire ai membri del team di vedere lo stato di ogni lavoro in qualsiasi momento.

Articoli su Kanban

[CONTINUA]

Ottimizzazione dello sviluppo software con il flusso Kanban

Il flusso Kanban, una pietra miliare delle metodologie Agile e DevOps, promuove l'efficienza orchestrando una progressione ininterrotta dei task attraverso flussi di lavoro visualizzati. Il flusso Kanban rispecchia la gestione semplificata dell'inventario dei supermercati, garantendo che i task vengano svolti attraverso i processi di sviluppo esattamente quando necessario.

Visualizzati su board Kanban, i task rappresentati come schede consentono un monitoraggio trasparente dell'avanzamento e una rapida identificazione dei colli di bottiglia. Limitando il lavoro in corso (WIP), i team ottimizzano l'allocazione delle risorse e mantengono un flusso di lavoro costante. L'attenzione di Kanban al miglioramento continuo è facilitata da metriche come grafici di controllo e diagrammi di flusso cumulativi, che consentono ai team di perfezionare i flussi di lavoro in modo iterativo.

Nello sviluppo software, il flusso Kanban favorisce la gestione dinamica dei task, accelera i cicli di consegna e aumenta la soddisfazione dei clienti attraverso un lavoro mirato e ininterrotto. In sostanza, il flusso Kanban è l'incarnazione dell'efficienza, una miscela armoniosa di trasparenza, adattabilità e miglioramento continuo, liberando tutto il potenziale delle metodologie Agile.

Strutturare il flusso Kanban

Per implementare Kanban in modo efficace, è fondamentale stabilire un flusso Kanban strutturato all'interno del tuo team di sviluppo software. Questo garantisce una progressione fluida dei task e una gestione ottimizzata dei flussi di lavoro. Ecco come puoi strutturare il tuo flusso Kanban:

Visualizza il flusso di lavoro: inizia visualizzando il flusso di lavoro del tuo team su una board Kanban. La board, fisica o virtuale, deve descrivere ogni fase del processo di sviluppo, dall'inizio al completamento dei task.

Standardizza il flusso di lavoro: definisci e standardizza le fasi del flusso di lavoro in base ai processi e ai requisiti del tuo team. Le fasi comuni sono "Da completare", "In corso" e "Completato" ma puoi personalizzarle secondo necessità in modo da riflettere il tuo flusso di lavoro unico.

Identifica i bloccanti e le dipendenze: assicurati che la tua board Kanban consenta l'identificazione immediata dei bloccanti e delle dipendenze. Questa trasparenza consente una risoluzione rapida e impedisce le interruzioni del flusso di lavoro.

Imposta i limiti del lavoro in corso (WIP): implementa i limiti WIP per ogni fase del flusso di lavoro, in modo da evitare sovraccarichi e mantenere un flusso di lavoro costante. I limiti WIP aiutano a ottimizzare l'allocazione delle risorse e a ridurre il multitasking, favorendo una maggiore produttività.

Incoraggia la collaborazione: promuovi una cultura della collaborazione all'interno del tuo team, in cui i membri risolvano collettivamente i colli di bottiglia e collaborino per garantire una progressione fluida dei flussi di lavoro. Questo approccio collaborativo promuove l'efficienza e accelera il completamento dei task.

Utilizza schede kanban: rappresenta ogni task sulla board come una scheda kanban contenente dettagli essenziali come descrizione del task, assegnatario e tempo stimato per il completamento. Le schede kanban facilitano il monitoraggio visivo dell'avanzamento dei task e promuovono la trasparenza all'interno del team.

Strutturando il tuo flusso Kanban in questo modo, puoi semplificare i processi di sviluppo software, migliorare la collaborazione in team e massimizzare l'efficienza nella gestione dei task.

Le origini della metodologia Kanban

Kanban gode popolarità tra i team software Agile e DevOps di oggi, ma questa metodologia risale a più di 50 anni fa. Alla fine degli anni '40 Toyota iniziò a ottimizzare i suoi processi ingegneristici sulla base dello stesso modello che i supermercati usavano per rifornire i loro scaffali.

I supermercati reintegrano le scorte solo per l'inventario necessario per soddisfare la domanda dei consumatori, una pratica che ottimizza il flusso tra il supermercato e l'utente. Poiché i livelli di inventario corrispondono ai modelli di consumo, il supermercato acquisisce una significativa efficienza nella gestione dell'inventario, diminuendo l'inventario in eccesso che deve detenere in un dato momento. Nel frattempo, il supermercato può comunque garantire che i prodotti essenziali siano sempre disponibili.

Quando Toyota ha applicato lo stesso sistema ai suoi stabilimenti, l'obiettivo era allineare meglio gli enormi livelli di inventario con il consumo effettivo di materiali. Per comunicare i livelli di capacità in tempo reale nel reparto di produzione (e ai fornitori), i lavoratori si passavano una scheda (detta "Kanban") tra team.

Quando qualcuno usava l'ultimo dei materiali impiegati nella linea di produzione, consegnava al magazzino una scheda kanban che riportava il materiale necessario, la quantità esatta e così via. Il magazzino aveva un contenitore di materiale in attesa, che poi inviava al reparto di produzione e, a sua volta, inviava un Kanban al fornitore. Sebbene si sia evoluto rispetto anni '40, questo stesso processo di produzione " just in time " (JIT) rimane al centro della metodologia Kanban.

Kanban per i team software

Oggi i team di sviluppo software Agile possono sfruttare questi stessi principi JIT abbinando la quantità di lavoro in corso (WIP) alla capacità del team. Questo offre ai team opzioni di pianificazione più flessibili, risultati più rapidi, maggiore chiarezza sul miglioramento continuo e trasparenza durante tutto il ciclo di sviluppo.

Board Kanban | Agile Coach Atlassian

Sebbene i principi fondamentali del framework Kanban siano senza tempo e applicabili a quasi tutti i settori, i team di sviluppo software hanno riscontrato risultati particolarmente interessanti con la pratica Agile. A differenza dell'implementazione di Kanban nel reparto di produzione, che comportava modifiche ai processi fisici e l'aggiunta di materiali, gli unici elementi fisici necessari a un team software sono una board e delle schede per i task, e anche queste possono essere virtuali.

Board Kanban

Il lavoro di tutti i team Kanban è incentrato su una board Kanban, uno strumento che consente di visualizzare e ottimizzare il flusso di lavoro nei team. Mentre le board fisiche sono molto utilizzate da alcuni team, le board virtuali sono cruciali in qualsiasi strumento di sviluppo software Agile perché offrono tracciabilità, collaborazione e accessibilità da più posizioni.

L'utilizzo di una board Kanban, fisica o digitale, garantisce che il lavoro del team sia visualizzato, che il flusso di lavoro sia standardizzato e che tutti i bloccanti e le dipendenze vengano immediatamente identificati e risolti. Una board Kanban di base consiste in un flusso di lavoro in tre passaggi: Da completare, In corso e Completato. Tuttavia, a seconda delle dimensioni, della struttura e degli obiettivi, i team possono mappare il flusso di lavoro in modo da soddisfare i loro processi unici.

La metodologia Kanban si basa sulla completa trasparenza del lavoro e sulla comunicazione in tempo reale, pertanto, la board Kanban è l'unica origine di riferimento per il lavoro del team.

Board Kanban Agile | Agile Coach Atlassian

Schede Kanban

In giapponese, la parola Kanban significa letteralmente "segnale visivo". I team Kanban rappresentano ogni elemento di lavoro come una scheda separata sulla board. Lo scopo principale di rappresentare il lavoro come scheda sulla board Kanban è quello di consentire ai membri del team di tenere traccia dell'avanzamento attraverso un flusso di lavoro altamente visivo.

Le schede kanban contengono informazioni critiche sui task del progetto, offrendo ai team tutte le informazioni su chi è responsabile di ogni task, una breve descrizione del lavoro e il tempo stimato per l'esecuzione dei task. Spesso le schede delle board Kanban virtuali presentano screenshot e altri dettagli tecnici utili per l'assegnatario.

Consentire ai membri del team di visualizzare lo stato di ogni task in qualsiasi momento, così come i dettagli pertinenti, garantisce maggiore attenzione, tracciabilità completa e identificazione rapida di bloccanti e dipendenze.

Vantaggi del framework Kanban

Kanban è una delle metodologie di sviluppo software più popolari adottate oggi dai team Agile. Offre vantaggi aggiuntivi per la pianificazione dei task e la produttività dei team di tutte le dimensioni.

Flessibilità di pianificazione

Un team Kanban si concentra solo sul lavoro che è attivamente in corso. Una volta che ha completato un task, seleziona l'attività successiva dal backlog. L'owner di prodotto è libero di riassegnare le priorità al lavoro nel backlog senza interrompere il team, perché qualsiasi modifica al di fuori degli elementi di lavoro correnti non ha alcun impatto sul team.

Finché l'owner di prodotto mantiene in cima al backlog gli elementi di lavoro più importanti, il team di sviluppo può avere la certezza di restituire il massimo valore all'azienda.

Suggerimento:

Gli owner di prodotto esperti coinvolgono sempre il team di sviluppo quando prendono in considerazione le modifiche al backlog. Ad esempio, se le storie utente da 1 a 6 sono nel backlog, la stima della storia utente 6 potrebbe essere basata sul completamento delle storie utente 1-5. È sempre una buona prassi confermare le modifiche con il team tecnico per avere la certezza che non ci siano sorprese.

Cicli temporali più brevi

La durata ciclo è una metrica chiave per i team Kanban. Indica la quantità di tempo necessaria a un'unità di lavoro per completare l'intero flusso di lavoro del team, dal momento di inizio dell'attività fino al momento del rilascio. Ottimizzando la durata ciclo, il team può prevedere con sicurezza la consegna del lavoro futuro.

La sovrapposizione delle competenze determina durate ciclo più brevi. Quando solo una persona possiede una serie di competenze, tale persona diventa un collo di bottiglia nel flusso di lavoro. Quindi, i team utilizzano best practice di base come la revisione del codice e il mentoring per diffondere la conoscenza. Grazie alle competenze condivise, i membri del team possono svolgere un lavoro eterogeneo, ottimizzando ulteriormente la durata ciclo.

Inoltre, questo approccio consente all'intero team di affrontare collettivamente eventuali colli di bottiglia sul lavoro, facilitando una rapida risoluzione e garantendo un flusso di lavoro regolare. Ad esempio, le responsabilità dei test non si limitano ai tecnici del controllo di qualità, ma includono anche gli sviluppatori, promuovendo uno sforzo collaborativo per mantenere l'efficienza. In un sistema Kanban, è l'intero team ad assicurarsi che il lavoro si svolga senza intoppi durante il processo.

Riduzione dei colli di bottiglia

Il multitasking è la tomba dell'efficienza. L'aumento del carico di lavoro porta contemporaneamente a un cambio di contesto più frequente, impedendo ai task di avanzare verso il completamento. Ecco perché un principio chiave del processo Kanban è quello di limitare la quantità di lavoro in corso (WIP). I limiti dei lavori in corso evidenziano colli di bottiglia nel processo del team dovuti alla mancanza di attenzione, personale o competenze.

Ad esempio, un team software tipico potrebbe avere quattro stati del flusso di lavoro: Da completare, In corso, Revisione del codice e Completato. Potrebbe scegliere di impostare un limite WIP di 2 per lo stato Revisione del codice. Questo limite, in apparenza basso, è giustificato da una buona ragione:

spesso gli sviluppatori preferiscono scrivere nuovo codice piuttosto che passare il tempo a rivedere il lavoro di un'altra persona. Un limite basso incoraggia il team a prestare particolare attenzione ai ticket nello stato di revisione e a rivedere il lavoro degli altri prima di pubblicare le revisioni del codice, riducendo in ultima analisi la durata ciclo complessiva.

Metriche visive

Uno dei valori fondamentali è una forte attenzione al miglioramento continuo dell'efficienza e dell'efficacia del team a ogni iterazione del lavoro. I diagrammi forniscono ai team un meccanismo visivo per garantire che continuino a migliorare.

Quando il team può vedere i dati, è più facile individuare i colli di bottiglia nel processo (e rimuoverli). Due report utilizzati frequentemente dai team Kanban sono i grafici di controllo e i diagrammi di flusso cumulativo. Un grafico di controllo mostra la durata ciclo per ogni ticket nonché una media mobile per il team.

Suggerimento:

L'obiettivo del team è ridurre il tempo impiegato dal ticket per completare tutte le fasi del processo. Una riduzione della durata ciclo media nel grafico di controllo è un indicatore di successo.

Diagramma di controllo Agile | Agile Coach Atlassian

Un diagramma di flusso cumulativo mostra il numero di ticket per ogni stato. Il team può individuare facilmente i bloccanti quando il numero di ticket aumenta in un determinato stato. I ticket negli stati intermedi come "In corso" o "In revisione" non sono ancora stati rilasciati ai clienti e un bloccante in questi stati può aumentare la probabilità di enormi conflitti di integrazione quando il lavoro viene unito a monte.

Diagramma del flusso cumulativo

Continuous delivery

La continuous delivery (CD) è la pratica di effettuare rilasci di lavoro frequenti ai clienti. La continuous integration (CI) è la pratica di creare e testare automaticamente il codice in modo incrementale nel corso della giornata. Insieme, formano una pipeline CI/CD che è essenziale affinché i team DevOps possano distribuire il software più velocemente, garantendo allo stesso tempo una qualità elevata.

Kanban e CD si completano a vicenda perché entrambe le tecniche si concentrano sulla consegna di valore just-in-time (e un passo alla volta). Quanto più velocemente un team è in grado di fornire innovazione al mercato, tanto più competitivo sarà il suo prodotto. I team Kanban si concentrano proprio su questo: ottimizzare il flusso di lavoro verso i clienti.

Scrum e Kanban a confronto

Kanban e Scrum hanno in comune alcuni concetti, ma utilizzano approcci molto diversi. Non vanno confusi.

 

Scrum

Kanban

Metodologia di rilascio

Scrum

Sprint regolari di durata fissa (ad es. 2 settimane)

Kanban

Flusso continuo

Ruoli

Scrum

Owner di prodotto, Scrum Master, team di sviluppo

Kanban

Continuous delivery o a discrezione del team

Metriche chiave

Scrum

Velocity

Kanban

Durata ciclo

Filosofia delle modifiche

Scrum

I team dovrebbero cercare di non apportare modifiche alle previsioni dello sprint durante lo sprint per evitare di compromettere le informazioni sulla stima.

Kanban

Le modifiche possono essere effettuate in qualsiasi momento

Alcuni team uniscono gli ideali di Kanban e Scrum in "Scrumban". Utilizzano sprint di durata fissa e i ruoli di Scrum e si concentrano sui limiti del lavoro in corso e sulla durata ciclo di Kanban.

Ai team che hanno appena iniziato a utilizzare Agile, consigliamo vivamente di scegliere una delle due metodologie e di utilizzarla per un po' di tempo. Se il tuo team è pronto per utilizzare la metodologia Kanban, usa oggi stesso il nostro modello di board Kanban gratuito.

Board Jira

Inizia gratuitamente con il modello Kanban di Jira

Massimizza l'efficienza visualizzando e portando avanti il lavoro più importante.

Dan Radigan
Dan Radigan

L'approccio Agile ha avuto un impatto enorme su di me sia a livello professionale che a livello personale perché ho imparato che le migliori esperienze sono agili, sia nel codice che nella vita. I miei interessi includono la tecnologia, la fotografia e il motociclismo. 

Prossimo contenuto
Bacheche