Modello Kanban nell'ingegneria del software

Cos'è il Kanban?

Kanban è un framework molto popolare per lo sviluppo nella metodologia di sviluppo software agile. Fornisce un modo trasparente di visualizzare i compiti e la capacità di lavoro di un team. Utilizza principalmente schede fisiche e digitali per consentire ai membri del team di visualizzare lo stato attuale del progetto su cui stanno lavorando.

Kanban ha avuto origine in Toyota negli anni '1940. Il significato di Kanban in giapponese è "cartelloni pubblicitari". La bacheca Kanban ha colonne e schede di storie. Le colonne non sono nulla, ma gli stati del flusso di lavoro e le schede non sono altro che una dimostrazione dell'attività effettiva che un membro del team sta eseguendo.

Quando usare Kanban?

Ecco i motivi per utilizzare il metodo di sviluppo Kanban:

  • Kanban può essere utilizzato in qualsiasi ambito e può essere utilizzato in modo molto efficace nello sviluppo di software. La gestione del progetto Kanban aiuta a migliorare l'efficienza del team.
  • È un sistema basato su pull. I compiti vengono ritirati non appena un individuo è libero.
  • Kanban dovrebbe essere utilizzato quando desideri pubblicare il tuo lavoro in qualsiasi momento. Richiede la ramificazione di Git, ma è fattibile.
  • Kanban dovrebbe essere utilizzato quando si desidera modificare le priorità al volo. Per questo, tutto ciò che devi fare è mettere questa storia in cima alla coda delle cose da fare.
  • Dovrebbe essere utilizzato quando vuoi visualizzare il tuo lavoro e vuoi vedere visivamente lo stato di avanzamento delle tue attività.

Carte Kanban

Il sistema Kanban consiglia la visualizzazione del lavoro. Suggerisce l'uso della lavagna fisica e digitale.

Carte Kanban
Carte Kanban

Le carte Kanban sono pezzi essenziali sulla lavagna Kanban poiché rappresentano il lavoro su cui sta lavorando il team. Queste carte avranno

  1. Priorità
  2. Proprietario
  3. Tipo
  4. Scadenza

Una colonna nella bacheca Kanban rappresenta la fase di lavoro ed è possibile posizionare un limite WIP (Lavori in corso) sulla colonna. Il limite WIP indica il numero massimo di carte che possono rimanere su quella colonna.

Poiché la gestione del progetto Kanban utilizza un sistema basato su pull, se e quando uno sviluppatore è libero, può estrarre una carta dalla colonna delle cose da fare alla colonna degli sviluppatori.

Kanban Consiglio

Kanban Consiglio è uno strumento agile di gestione dei progetti che aiuta a implementare Kanban per gestire progetti per scopi personali e aziendali. Si tratta di una scheda fisica o digitale (JIRA) progettata per aiutare i team a visualizzare il proprio lavoro in diverse fasi e processi. Aiuta anche a rappresentare le fasi del lavoro con le colonne utilizzando le carte.

Ha colonne che rappresentano lo stato del lavoro come

  1. Fare,
  2. Dev
  3. Testing
  4. Donate.

Ognuna di queste colonne può avere carte <=limite WIP. Le carte rappresentano il lavoro vero e proprio.

È possibile utilizzare numeri positivi per limitare il lavoro in corso e questo numero limite può essere posizionato nella parte superiore delle colonne nelle bacheche Kanban sia fisiche che digitali. Qualsiasi individuo del team può gestire lo stato della propria carta e l'intero team può visualizzare il flusso di lavoro. Successivamente in questo tutorial Kanban, impareremo il flusso di lavoro Kanban.

Flusso di lavoro Kanban

Flusso di lavoro Kanban è una serie di passaggi che aiuta i team a definire politiche e principi espliciti in Kanban. Rappresenta le regole e le procedure mentre il lavoro procede attraverso le varie fasi dei cicli di sviluppo e consegna. Il flusso di lavoro Kanban consiste in processi passo-passo tra l'inizio e la consegna di una particolare attività.

Il principio di base che Kanban segue è: “smetti di iniziare, inizia a finire”. Con l'aiuto dei limiti WIP, puoi lavorare di più. Esistono flussi di lavoro e stati Kanban personalizzabili disponibili in qualsiasi strumento moderno come JIRA.

Di seguito sono riportati gli stati di base che molti team software seguono per la gestione del flusso di lavoro.

stati Comprensione dei compiti
Fare Le attività arrivano qui per la prima volta in questo stato.
Pronto per l'analisi Analizza l'attività e aggiungi completamente i requisiti.
Pronto per lo sviluppo Analisi completata e lo sviluppo può iniziare.
Nello sviluppo I compiti sono in fase di sviluppo.
Pronto per il test Lo sviluppo è stato completato e ora possono iniziare i test.
Nel test I compiti sono in fase di test.
Pronto per il rilascio Test completato; il rilascio può avvenire.
Rilasciato/Fatto Rilasciato.

I quattro principi del Kanban

Di seguito sono riportati i quattro principi fondamentali di Kanban:

  1. Inizia con quello che hai adesso: Il sistema Kanban suggerisce di lavorare in modo incrementale e di iniziare con ciò che hai attualmente. Poiché una delle sue pratiche è migliorare continuamente, è necessario migliorare il sistema gradualmente.
  1. Accettare di perseguire un cambiamento incrementale ed evolutivo: Kanban consiglia una modifica incrementale nel processo e non è necessario apportare grandi modifiche al processo in una volta sola.
  1. Rispettare il processo, i ruoli e le responsabilità attuali: Ancora una volta, inizia con ciò che hai adesso e modifica il processo, il ruolo e le responsabilità in modo incrementale.
  1. Incoraggiare atti di leadership a tutti i livelli: Ogni individuo può agire come leader e fornire idee per migliorare l’efficienza del sistema Kanban complessivo. Non dovresti pensare che questa sia un'attività di livello manageriale e anche il membro più giovane del team può agire come leader.

Le sei pratiche fondamentali Kanban

Di seguito sono riportate le sei principali pratiche fondamentali di Kanban:

  1. Visualizza il flusso di lavoro: Questo principio suggerisce di avere una lavagna Kanban (fisica o digitale) per visualizzare il flusso di lavoro. Ogni individuo di una squadra deve vedere la sua carta e le carte degli altri membri della squadra. Puoi spostare le tue carte in diverse colonne come nell'immagine sopra. Porta molta trasparenza all'interno del team e rende anche più semplice la risoluzione degli ostacoli
  1. Limitare i lavori in corso: Kanban è un sistema basato su pull e migliora l'efficienza di un team per limitare il lavoro in corso e avere attività che possono essere completate entro un determinato periodo di tempo dal team. Questo limite WIP si applica dall'inizio alla fine del flusso di lavoro. È possibile applicare il limite in cima alla colonna utilizzando un numero intero positivo.
  1. Concentrati sul flusso: Questo principio si concentra sul flusso e su eventuali interruzioni. Se ci sono interruzioni o blocchi, devono essere risolti in modo permanente.
  1. Politiche esplicite: È possibile stabilire politiche in un team per ridurre la rilavorazione e concentrarsi sulle aree che richiedono attenzione o dove è più efficace.
  1. Ciclo di feedback: I cicli di feedback sono molto essenziali in Kanban. Non è solo all'interno della squadra ma tra più squadre, allenatori, ecc. Ciò aiuta a migliorare la salute generale del sistema Kanban.
  1. Miglioramento continuo: Questo è il principio fondamentale del sistema Kanban. Afferma che è sempre possibile migliorare il processo e ciò si tradurrà in una migliore efficienza.

Sistema basato su pull

Kanban è un metodo basato su pull in cui le attività vengono ritirate anziché spinte. Non appena hai completato la tua carta attuale, puoi estrarre una nuova carta dalla colonna precedente del tabellone Kanban.

Con il limite WIP, Kanban aiuta a migliorare il Lead Time e il Cycle Time. Dovrebbe esserci il minor intervallo possibile tra queste due tempistiche. Ad esempio, abbiamo 5 sviluppatori e solo 1 tester; cosa accadrebbe in questo caso? Ci sarebbero sempre molte schede che richiedono test e rimarrebbero inattive e in attesa.

Per superare i problemi sopra menzionati e migliorare l’efficienza, Kanban segue l’approccio basato sul pull con limiti WIP, dove ci sarebbe un numero limitato di carte da estrarre.

Pertanto, un tester ritirerà un'attività dalla fase "pronto per il test" quando avrà terminato l'attività corrente. Con il limite WIP nelle colonne Kanban (fasi di sviluppo), non avrai molte carte incustodite nel flusso di lavoro Kanban.

Il sistema pull-based aiuta anche a trovare la velocità corretta per la squadra. Con la giusta velocità, la squadra otterrà risultati migliori.

Lead time e tempo di ciclo

Nel metodo Kanban, il lead time e il tempo di ciclo sono ampiamente utilizzati, c'è una differenza tra i due ed è importante capirlo per evitare confusione.

Tempi Di Consegna Tempo di ciclo
Il lead time viene misurato come il tempo che intercorre tra l'arrivo dell'attività nel flusso di lavoro e la sua partenza dal flusso di lavoro, ovvero quando è stata rilasciata. Il tempo di ciclo viene misurato come il tempo che intercorre tra l'arrivo dell'attività nello stato “in corso” e l'arrivo dell'attività nello stato “pronto per il rilascio”.

Qui è anche importante capire di non includere il tempo necessario tra la disponibilità per il rilascio e il rilascio effettivo.

Cycle Time = Work in Progress/Throughput

Nello scenario ideale, il divario tra lead time e tempo di ciclo dovrebbe essere minimo e Kanban utilizza un diagramma di flusso cumulativo (CFD) per misurare i dati storici del lead e del tempo di ciclo.

Diagramma di flusso cumulativo (CFD)

CFD è un grafico disponibile in tutti i principali strumenti di gestione del flusso di lavoro come JIRA. Questo grafico misura la quantità totale di schede/attività di lavoro entrate nel flusso di lavoro e accumulate schede/attività completate nel tempo.

Ti aiuta ad avere una stima del lead time medio e del tempo di ciclo per un tempo prespecificato.

Il diagramma CFD ti fornirà indicatori o aree problematiche da risolvere. Ti fornirà un'immagine chiara e basata su questo diagramma. Puoi correggere il lead time e il tempo di ciclo del tuo team.

Diagramma di flusso cumulativo Kanban
Diagramma di flusso cumulativo Kanban
  1. Tempi Di Consegna: è la durata tra l'arrivo di una nuova carta nel flusso di lavoro e la sua partenza definitiva dal flusso di lavoro.
  2. Tempo di ciclo: È il periodo che intercorre tra l'arrivo della carta nello stato funzionante e il momento in cui la carta è pronta per il rilascio.
  3. WIP: Work in progress (WIP) limita la quantità massima di elementi di lavoro nelle diverse fasi del flusso di lavoro.
  4. Throughput: È la prestazione effettiva e indica il numero effettivo di carte consegnate in un determinato periodo di tempo.
  5. Produttività = WIP/Tempo di ciclo

Limitazione del WIP (lavori in corso)

Nella metodologia di sviluppo Kanban, WIP limita il numero di attività/schede su cui può lavorare un membro del team o l'intero team contemporaneamente.

I limiti WIP assicurano che il team stabilizzi il proprio lavoro e aumenti la natura predittiva, che è essenziale nel sistema basato su pull. Di solito, la decisione sul limite WIP viene presa dal team stesso.

Motivo per impostare i limiti WIP

Ecco i motivi per impostare i limiti WIP:

  • Sposta l'attenzione sul portare a termine le cose poiché un individuo si concentra su un singolo compito alla volta.
  • Aiuta i team a comprendere le proprie capacità.
  • Migliora la produttività e il tempo di ciclo.
  • Aiuta a evitare l'accumulo di attività (in modalità di attesa).
  • Aiuta nello spostamento del flusso di lavoro e le attività continuano a muoversi.
  • Aiuta anche a risolvere gli ostacoli poiché un individuo non passa da un'attività all'altra.

Mischia vs. Kanban

Ecco le differenze importanti tra Mischia vs. Kanban

Mischia Kanban
Mischia insiste sulla pianificazione. Inizia con la pianificazione dello sprint e finisce con la retrospettiva dello sprint. Si tengono molte riunioni che aiutano a garantire che il team sia allineato con i prossimi passaggi, le priorità e gli apprendimenti degli sprint precedenti. Kanban è aperto ad apportare modifiche in movimento. Vuol dire che c'è meno rigidità e le cose possono cambiare frequentemente.
Si consiglia il ritiro di misurazioni del tempo fatto durante gli sprint Kanban consiglia i grafici per avere una panoramica dei progressi della squadra nel tempo.
Mischia non più chiede un impegno da parte dei team. Invece, riguarda gli obiettivi e le previsioni dello sprint. Kanban si basa su time-boxing e previsioni.
Sottolinea la pianificazione, e così via la stima ha un ruolo molto importante in Mischia Kanban ha nessun requisito obbligatorio per stima.
Ogni l'individuo ha il suo ruolo e responsabilità. Non impostare i ruoli in modo flessibile in termini di responsabilità individuali.
Le iterazioni/SprintLa durata è fissa. Questa durata varia da 2 settimane a 1 mese. Kanban è non in base alla durata. Questa cosa si misura in termini di Tempi Ciclo.
Le squadre sono tenuti a impegnarsi una determinata quantità di lavoro. Impegno non necessario è facoltativo per le squadre.
In questo metodo, team interfunzionali sono importanti in quanto possono gestire qualsiasi interruzione che potrebbe causare un collo di bottiglia nello sviluppo del software. Avere squadra specializzata è importante.
È non è possibile aggiungere elementi alle iterazioni in corso. Nuovo gli elementi possono essere facilmente aggiunti se la capacità aggiuntiva è disponibile.
Un backlog di sprint è di proprietà solo di un squadra unica. Squadra multiplaGli utenti possono condividere la bacheca Kanban.
I risultati finali sono determinato dagli sprint, che una serie di lavori deve essere completata e pronta per la revisione. I prodotti e i processi lo sono consegnato ininterrottamente in base alle necessità. Quindi il processo di test e revisione procede simultaneamente.
Metodo di sviluppo del software Scrum si concentra sull'arretrato. Metodo Kanban interamente si concentra sulla dashboard del processo.
Ogni il membro del team ha un ruolo specifico in Scrum Master decidono le tempistiche, il Product Owner stabilisce traguardi e obiettivi e i membri del team conducono il lavoro di sviluppo. Non ci sono ruoli predefiniti per una squadra. Tuttavia, potrebbe esserci ancora un Project Manager; il team è incoraggiato a collaborare e a lavorare insieme.
migliori per progetti con cambiare le priorità. Ideale per squadre con priorità stabili che difficilmente cambierà nel tempo.
Misura la produzione utilizzando la velocità attraverso sprint. Misura la produzione utilizzando tempo di ciclo o il tempo esatto necessario per completare una parte intera di un progetto.
Scrum richiede a passaggio completo dal modello tradizionale al modello Agile Scrum che verrebbe implementato nel progetto. Kanban non consente cambiamenti drastici nel progetto.
È un metodo ideale per progetti con priorità molto diverse. adatto per squadre con priorità stabili.
In Scrum, l'intero team si concentra sulla collaborazione e sul completamento dell'attività per fornire un lavoro di sviluppo di qualità. I team lavorano per raggiungere gli obiettivi e ridurre i tempi per completare l'intero processo. Pertanto, la riduzione del ciclo temporale è il principale indicatore di successo in questo caso.
Mischia enfasi sui suoi orari; non è possibile aggiungere nuovi elementi alle iterazioni in corso. Kanban è per sua natura più iterativo non ha tempistiche specifiche. In questo modo è possibile aggiungere continuamente nuovi articoli ogni volta che è disponibile capacità aggiuntiva.
Il lavoro totale è svolto lotti/Sprints. L'intero progetto è eseguito sul movimento di elemento di lavoro a thread singolo flussi.
Maestro di mischia funge da risolutore di problemi. Kanban incoraggia ogni membro del team è un leader e condividere la responsabilità tra tutti loro.
Scrum prescrive iterazioni time-boxed. Kanban si concentra su programmando una durata diversa per l'iterazione individuale.
Scrum aiuta le aziende a farlo risparmiare tempo e denaro. Metodo Kanban concentrarsi sul miglioramento continuo, produttività ed efficienza.
Raggiungere comunicazione stabile e coerente di prestazione a tutti i livelli. I membri del team hanno maggiori probabilità di farlo raggiungere i propri obiettivi molto più facilmente a causa della natura visiva dei tabelloni Kanban.
Il progetto è codificato e testato durante lo sprint recensioni I membri del team hanno maggiori probabilità di farlo raggiungere i propri obiettivi molto più facilmente a causa della natura visiva dei tabelloni Kanban.
È più facile adattarsi ai continui cambiamenti grazie agli sprint brevi e al feedback regolare. È progettato per un'uscita regolare e costante, grandi cambiamenti nella domanda dei clienti possono far fallire Kanban.
Il costo totale del progetto è minimo, il che può portare a risultato più rapido ed economico. Se un'attività non viene stimata correttamente, il il costo totale del progetto non sarà mai accuratoIn questi casi, l'attività può essere suddivisa in più sprint.
Questa metodologia richiede membri del team esperti soltanto. Quindi, se il team è composto da persone che non sono esperte, il progetto non può essere completato in tempo. Non tempistiche specifiche vengono assegnati a ciascuna fase, quindi i membri del team non hanno mai l'idea di quanto tempo possono dedicare a ciascuna fase.
In questo metodo Agile Scrum, lo è più facile fornire un prodotto di qualità ad un orario programmato. È progettato per a produzione regolare e costante, grandi cambiamenti nella domanda dei clienti possono far cadere Kanban.
La sezione Currents, dedicata a opere audaci e innovative di artisti emergenti e affermati, include la prima statunitense di Mare’s Nest di Ben Rivers, descritto come “un enigmatico road movie ambientato in un mondo post-apocalittico governato da bambini”. Tra gli altri titoli spiccano Dracula di Radu Jude e With Hasan in Gaza di Kamal Aljafari. il piano del progetto non disturberà mai anche se un membro della squadra lascia la squadra. Se qualcuno dei membri del team esce durante lo sviluppo, può farlo danneggiare lo sviluppo del progetto.
A volte riunioni quotidiane frustrare per i membri del team. Scheda Kanban obsoleta può portare a problemi nel processo di sviluppo.
I grandi progetti possono essere facilmente divisi in sprint facilmente gestibili.

Sintesi

  • Definizione Kanban: Kanban è definito come una metodologia di sviluppo agile per sviluppare software, automobili, beni, medicinali, scarpe o qualsiasi altro lavoro di produzione.
  • Kanban utilizza la scheda Kanban per visualizzare il lavoro. Utilizza le colonne come fasi (da fare, sviluppo, test, ecc.) e le carte come elemento di lavoro.
  • La metodologia Kanban supporta la lavagna fisica e digitale per la visualizzazione.
  • Kanban è un sistema basato sul pull e le carte vengono ritirate dalla fase precedente a quella corrente dai membri del team.
  • Il metodo Kanban utilizza il diagramma CFD per comprendere il lead time e il tempo di ciclo del team. Questo grafico aiuta le squadre a colmare il divario tra questi due tempi e a migliorare l’efficienza.
  • Metodologia di sviluppo Kanban, WIP limita il numero di attività/carte su cui può lavorare un membro del team o l'intero team contemporaneamente.
  • I limiti WIP spostano l'attenzione sul portare a termine le cose poiché un individuo si concentra su una singola attività alla volta.