Skip to main content

Come gli ingegneri del software possono usare il metodo kanban - la musa

Expedition 42 - Interview with Samantha Cristoforetti [Subs ENG-ITA] (Aprile 2025)

Expedition 42 - Interview with Samantha Cristoforetti [Subs ENG-ITA] (Aprile 2025)
Anonim

Hai familiarità con Scrum, giusto? Immagino di sì, considerando che The Scrum Alliance ha oltre 400.000 membri e, tra questi, la maggior parte lo utilizza con successo nelle proprie organizzazioni.

Ma non è l'unico modo per creare software in modo agile, sul serio! Hai sentito parlare di Kanban?

Per un po 'di informazioni di base, è stato originariamente applicato alla produzione snella come un modo per visualizzare l'input e l'output del lavoro mentre scorreva attraverso una fabbrica. Questa visualizzazione è stata presentata su una lavagna nota come Kanban. Più recentemente e più pertinenti per te, è stato adottato come metodo per gestire lo sviluppo del software.

Descritto per la prima volta dal neurologo David J. Anderson, è un modo di organizzare lo sviluppo e la pianificazione del software che consente di scoprire i problemi di processo e fornire costantemente miglioramenti preziosi nel prodotto, che so essere l'ideale. In poche parole, in qualsiasi momento, puoi vedere dove si trova il lavoro (rappresentato dalle carte) in fase di sviluppo.

Come funziona

La scheda Kanban di base utilizza sei colonne che mostrano dove si trova ogni lavoro nel ciclo di sviluppo del prodotto. Di seguito è riportato un esempio approssimativo di come appare.

Visualizza questo esempio di scheda Kanban su Trello.

Colonna 1: Backlog

La colonna Backlog dovrebbe contenere un elenco prioritario di idee, bug o esigenze aziendali. La scheda non deve avere ancora un sacco di dettagli, ma dovrebbe avere abbastanza informazioni che i membri del tuo team capiscono perché è importante.

Colonna 2: Pianificazione

In questa colonna, un product manager compilerà una specifica per la funzione incontrando stakeholder, ingegneri e designer. Quando è pronto, lo sposterà nella colonna "Pronto per l'ingegneria".

Colonna 3: Pronto per la progettazione

In questa fase, tutte le carte dovrebbero avere specifiche dettagliate. Mentre potresti avere ancora domande sui dettagli tecnici, i requisiti aziendali dovrebbero essere chiari.

Colonna 4: In corso

Puoi spostare una carta su "In corso" in qualsiasi momento. Questo sistema "pull" autonomo crea una cultura di responsabilità personale e curiosità.

Colonna 5: Test

Quando hai completato il lavoro sulla carta, spostala su "Test" dove un altro ingegnere (o qualcuno del team QA) la prenderà.

Colonna 6: distribuita

Un'altra caratteristica determinante è che il lavoro dovrebbe essere consegnato continuamente in un ambiente di produzione o di gestione temporanea. Questa colonna consente a tutti i membri del team di vedere quale lavoro è stato rilasciato di recente.

I vantaggi e gli svantaggi

Quando decidi tra Kanban e una metodologia più comune come Scrum o Waterfall, tieni a mente questi vantaggi e sfide:

Vantaggio: migliora la collaborazione

In alcuni team di sviluppo con cui ho lavorato, gli ingegneri erano specialisti. Ogni squadra avrebbe un paio di ingegneri frontend e ingegneri backend. Ciò significava che il lavoro veniva spesso bloccato perché un ingegnere era impegnato con qualcos'altro.

Kanban, d'altra parte, limita i lavori in corso e scoraggia i blocchi. Ogni membro del team può lavorare su un solo oggetto alla volta e chiunque non sia occupato può estrarre il lavoro dalla parte superiore della colonna "Pronto per l'ingegneria". Questo incoraggia i generalisti dell'ingegneria e la collaborazione tra i membri del team.

Aumenta il vantaggio: non lasciare che le cose passino prima che siano pronte

Kanban funziona solo quando aspetti di spostare le carte nella colonna successiva fino al completamento completo. (Bonus: questo minimizza notevolmente i difetti.)

Sfida: scoraggia il tempo di riflettere

Per impostazione predefinita, non ci sono sprint con time-box con obiettivi chiari, obiettivi di data e cicli di rilascio. Invece, pensa a ogni carta come a un'opera indipendente che può essere completata e rilasciata in qualsiasi momento.

Con questo flusso di lavoro continuo, non c'è l'opzione "aspetta fino allo sprint successivo". È necessario controllare continuamente la scheda, estrarre l'elemento successivo e spostare gli elementi completati a valle. A meno che non si costruisca il tempo per retrospettive e stand-up, potrebbe essere difficile per i membri del team tenere il passo con il loro modo di fare.

Evitatelo: prendete in prestito ciò che funziona dalla mischia

Ho usato standup giornalieri e retrospettive con Kanban e ho scoperto che aggiungono valore. Se ci sono riunioni o schemi regolari che funzionano per la tua squadra, non cambiarli per aderire dogmaticamente a Kanban. Tempo di budget per parlare delle priorità e di come sono cambiate in modo che tutti sappiano cosa sta succedendo nel ciclo di sviluppo del prodotto.

Vantaggio: aumenta la trasparenza

Ogni sviluppatore deve prendere l'iniziativa per spostare una carta nella colonna "In corso". Significa, in qualsiasi momento, il manager del team può dare un'occhiata a chi è impegnato, chi non è impegnato e da quanto tempo è in corso un lavoro.

Quando la produzione rallenta o si interrompe, Kanban ti consente di vedere esattamente perché. Sia perché il team aziendale non ha dato la priorità agli articoli nel backlog, il team del prodotto non ha terminato le specifiche, il team di sviluppo si sta muovendo più lentamente del previsto o il team QA non è stato in grado di testare qualcosa; i colli di bottiglia sono evidenti.

Aumenta il vantaggio: consenti ai progressi di essere pubblici

Uno dei vantaggi è che Kanban è molto visivo. Anche i membri del team non tecnici possono guardare una scheda Kanban e dire dove sono in corso lavori. Usa questo a tuo vantaggio e consenti ai risultati della squadra di brillare mettendo la tua tavola in un luogo pubblico.

Sfida: non consente la pianificazione a lungo termine

Preoccuparsi delle scadenze e delle stime non è l'uso più produttivo del tuo tempo, quindi potresti apprezzare che Kanban riguarda di più l'output quotidiano. Detto questo, da solo non fornisce un sistema per la costruzione di un piano a lungo termine. Questo può farti lavorare su progetti sporadicamente piuttosto che concentrarti su una cosa per molto tempo. È difficile passare una giornata al Progetto A, quindi una giornata al Progetto B, quindi tornare al Progetto A.

Aggiralo: usalo quando le tue priorità cambieranno probabilmente

Ogni colonna nel tuo tabellone è indipendente dalle altre, quindi i membri del team possono spostare le cose in qualsiasi momento. Questo può infastidire gli sviluppatori in un'impostazione Scrum (in cui le stime per lo sprint sono anticipate), ma Kanban prospera in questo tipo di ambiente in rapido cambiamento.

Tutti vogliono essere più produttivi, ma può essere difficile provare qualcosa di nuovo se non sei nemmeno sicuro da dove cominciare. Ho trovato Kanban utile e spero che lo troverai utile anche per il tuo flusso di lavoro personale (o anche per tutto il tuo team!).

Mandami un Tweet se decidi di provarlo!