Scrum e Kanban: spiegate due potenti metodologie Agile
Pubblicato: 2021-05-27Quindi stai per gestire un progetto complesso? C'è un sacco di lavoro da fare, ma niente panico! In qualità di project manager, sarai responsabile della pianificazione, del monitoraggio, della gestione del budget, dell'esecuzione, della verifica della qualità e del rilascio del progetto finale in tempo. Per fortuna, ci sono molte metodologie di gestione dei progetti che possono rendere il tuo lavoro (e anche quello del tuo team) più semplice e molto più efficiente!
In questo articolo vorrei concentrarmi sulle due metodologie Agile più popolari – Scrum e Kanban – che hanno preso d'assalto il mondo dello sviluppo software negli ultimi anni. Di questi tempi difficilmente troverai una software house che non adotti questi due framework per la gestione dei progetti. Di cosa si tratta? Continua a leggere e impara tutto ciò che devi sapere su Scrum e Kanban!
Che cos'è esattamente la metodologia Agile nella gestione dei progetti?
Oggi le aziende non lavorano più su un singolo progetto senza testarlo in tutte le fasi del processo di sviluppo. Semplicemente non paga! Perché no?
Immagina: tutto il tuo team lavora per diversi mesi, diciamo, sullo sviluppo di un'app mobile, che test e valuti solo alla fine una volta che l'intero lavoro dei tuoi sviluppatori, designer e copywriter di backend e frontend è già terminato. E se solo allora ti rendessi conto che il tuo prodotto non risponde più alle esigenze del mercato e alle esigenze degli utenti? Dovresti quindi introdurre le successive iterazioni dell'intero progetto, che consuma molto tempo, denaro ed energia.
La metodologia Agile è quindi un'ottima soluzione che migliora significativamente il flusso di lavoro e la facile implementazione delle modifiche in ogni fase. Il principio chiave alla base di Agile è scomporre un progetto "grande" e complesso in diversi elementi (o funzionalità) più piccoli e rilasciarli uno dopo l'altro. In questo caso, sia lo sviluppo che il test sono due attività simultanee, che semplificano la convalida continua del progetto e l'introduzione di tutti i miglioramenti necessari.
La cosa interessante è che mentre per molti anni Agile ha prevalso nelle società di sviluppo IT e software, questa metodologia si è rivelata così efficace che oggi è utilizzata in molti altri campi come marketing, vendite, risorse umane o operazioni. Secondo lo State of Agile Report redatto da Verison One, nel 2020 il 95% delle aziende tecnologiche e delle software house praticava vari metodi Agile.
Framework Scrum: perché è così fantastico?
Molte persone tendono a confondere due concetti che, sebbene sembrino abbastanza simili, non sono sinonimi: Agile e Scrum. In poche parole, Agile è un termine ombrello che indica tutti i metodi e gli approcci specificati nel Manifesto Agile , mentre Scrum è di fatto uno di quei metodi. E 'così semplice!

Cos'è Scrum e quando può essere utilizzato?
Scrum è un framework di project management, applicato principalmente alla costruzione di prodotti complessi in cui il processo di sviluppo richiede almeno diversi mesi. Si basa soprattutto sulla trasparenza, sulla comunicazione continua tra tutti i membri del team e sulla responsabilità collettiva. Questa strategia facilita la consegna della versione finale del progetto che soddisfi le esigenze del pubblico target e risponda alle attuali richieste del mercato.
Anche se Scrum è diventato un framework leader soprattutto negli ultimi anni, in realtà non è una novità. Torniamo al 1986 quando l'Harvard Business Review pubblicò l'articolo The New Product Development Game . Lì, gli autori hanno descritto un approccio gestionale impiegato da aziende come Honda o Canon che ha portato al loro successo. Poi, nel 1993, questi concetti hanno ispirato Jeff Sutherland e il team di Easel Corporation a stabilire un processo basato sul team chiamato Scrum.
Ruoli e responsabilità in uno Scrum Team
In uno Scrum team, tutti i ruoli sono chiaramente definiti fin dall'inizio e di solito non cambiano durante l'intero progetto. Di norma, questo framework ha 3 ruoli fondamentali: Product Owner, Scrum Master e Development Team.
Maestro di mischia
Uno Scrum Master è una specie di team leader (ma non del tutto) che si assicura che tutto sia fatto nel modo giusto e che il processo di sviluppo si svolga senza intoppi. Le principali responsabilità di uno Scrum Master sono:
- istruire i membri del team in modo che tutti lavorino in modo più efficiente per fornire nuove funzionalità del prodotto digitale
- pianificazione di tutte le attività per i prossimi sprint (di seguito, ti parlerò di più sugli sprint in Scrum) e mantenimento del product backlog
- educare gli stakeholder e tutti i membri del team sull'importanza dei principi Scrum per la gestione dei progetti
- valutare se tutti i compiti vengono eseguiti secondo il piano
- cercando di eliminare tutti gli ostacoli che ostacolano la realizzazione dei compiti in un dato sprint.
È estremamente importante che uno Scrum Master lavori sempre a stretto contatto con un Product Owner . Insieme pianificano gli sprint successivi, valutano la qualità delle attività completate, stabiliscono una direzione per il team e determinano se il progetto richiede l'introduzione di modifiche. In poche parole, lo Scrum Master fa del suo meglio per aiutare il Team di sviluppo ad avere successo e fornire tutte le funzionalità in tempo.
Proprietario del prodotto
Un Product Owner è responsabile della fornitura della versione finale del prodotto in grado di generare profitti aziendali effettivi. Pertanto, in tutto il team Scrum, è il Product Owner che stabilisce le priorità e ha il ruolo più decisivo . L'importante qui è che il product backlog sia gestito dal Product Owner, che determina quali caratteristiche del prodotto devono essere sviluppate in via prioritaria, poiché hanno il maggior valore aziendale.
Queste sono le principali responsabilità di un Product Owner:
- gestione del product backlog
- contattare gli stakeholder
- definire l'obiettivo principale di ogni sprint
- pianificare il rilascio di nuove funzionalità
- valutare il lavoro del Team di Sviluppo e annullare lo sprint quando necessario
Team di sviluppo
Senza un Team di sviluppo, Scrum non sarebbe possibile in quanto svolgono il lavoro vero e proprio e completano tutte le attività pianificate per sprint particolari.
In genere, il team di sviluppo è composto da persone con esperienza in un campo particolare , come iOS, machine learning, back-end o sviluppo front-end. Tutti uniscono le forze per fornire funzionalità di alta qualità di un prodotto digitale. Dovresti tenere presente, tuttavia, che sebbene il termine "team di sviluppo" di solito si riferisca agli ingegneri, questo non è sempre accurato. Marketer, designer, analisti, tester, copywriter o specialisti delle vendite possono anche apportare un certo valore ed essere parte di un team Scrum.
Una delle cose da considerare quando si costruisce un Team di Sviluppo è il numero dei suoi membri. Anche qui Scrum specifica alcune regole di base! Si dice che un tale team debba essere composto da 3 a 9 persone e che dovrebbero avere le competenze necessarie per fornire tutte le funzionalità. Ovviamente tutto dipende dalla complessità del progetto e dalle esigenze del cliente; a volte 4 o 5 sviluppatori sono completamente sufficienti per costruire un prodotto digitale.
Ma qual è esattamente il ruolo del Team di Sviluppo in Scrum? Fondamentalmente dovrebbe:
- costruire tutte le funzionalità del prodotto secondo le istruzioni del Product Owner
- determinare quanti oggetti costruire in un dato sprint
- gestire il carico di lavoro in modo efficiente in modo che tutte le attività vengano completate entro la fine dello sprint
- prendere tutte le decisioni pertinenti congiuntamente
- avere un atteggiamento "noi": il team prende tutte le decisioni, risolve i problemi insieme e ogni persona si sente responsabile per gli altri colleghi

Il processo di sviluppo di Scrum in poche parole
Sai già cos'è Scrum e chi forma un team Scrum, quindi ora è il momento di capire come appare il processo di sviluppo in questa metodologia e come farlo nel modo giusto.
Nel processo Scrum, ogni passaggio conta e porta valore reale al tuo team. Ecco le fasi principali da non saltare:
- Product Backlog : un elenco di tutti gli elementi che devono essere costruiti nei seguenti sprint. È gestito da un Product Owner insieme a uno Scrum Master che sa esattamente quando ogni caratteristica o articolo dovrebbe essere rilasciato.
- Sprint Planning Meeting : lo scopo principale di questo meeting è definire cosa farà ogni membro del Development Team nel prossimo sprint. È sempre organizzato prima dell'inizio dello sprint in modo che tutti possano valutare se possono completare tutte le attività prima della scadenza. Assicurati che ogni membro del team afferri pienamente l'obiettivo principale dello sprint.
- Sprint Backlog : questi sono i compiti selezionati presi dal Product Backlog che il team ha scelto di eseguire in un determinato Sprint.
- Sprint : Qui è dove avviene tutta la magia. Lo sprint è un breve periodo, che richiede solitamente 1-4 settimane durante il quale il team di sviluppo lavora per completare tutti i compiti assegnati durante la riunione di pianificazione primaverile.
- Daily Scrums (chiamato anche Standup): incontri extra brevi che si tengono tutti i giorni alla stessa ora, durante i quali ognuno riporta in 1-2 frasi l'andamento del proprio lavoro: si parla di ciò che è stato completato e di ciò che deve ancora essere fatto.
- Sprint Review : Quando lo sprint è finito, tutti hanno la possibilità di presentare ciò che hanno completato ad altri compagni di squadra e persino alle parti interessate, che molto spesso partecipano alle Sprint Reviews.
- Retrospettiva Sprint : Ora è il momento dell'ultimo incontro che conclude l'intero ciclo Sprint. Se un membro del team ha suggerimenti o idee su cosa potrebbe essere migliorato per lo sprint successivo, può farlo durante la riunione della retrospettiva dello sprint.

Per il processo Scrum, è essenziale assicurarsi che ogni ciclo Scrum abbia la stessa struttura : inizia con uno Sprint Planning Meeting, poi tutti si mettono al lavoro e completano i compiti impostati per lo sprint, e alla fine ogni membro del team mostra ciò che hanno realizzato.

C'è un'altra cosa che voglio che tu ricordi: Scrum ha una filosofia di cambiamento molto rigida. Cosa significa in pratica? I membri dello Scrum team non dovrebbero cambiare i compiti o gli obiettivi principali durante lo sprint. Se non riescono a fornire i risultati pianificati, dovrebbe essere una lezione per il futuro stimare meglio il tempo necessario per completare gli articoli.
Qualche parola sul Kanban
Ora che hai imparato cos'è Scrum e come costruire un prodotto digitale con esso, è tempo di concentrarti un po' di più sulla seconda metodologia Agile. Sono sicuro che lo conosci già, anche se ancora non te ne rendi conto!
Cos'è il Kanban e quando può essere applicato?
Il termine Kanban deriva dal giapponese e può essere tradotto semplicemente come “segnale visivo”. Questo è fondamentalmente ciò di cui tratta questa metodologia. In Kanban, ogni elemento ha la sua rappresentazione visiva : una scheda che i membri del team mettono sulle lavagne e ne modificano lo stato (come "da fare", "da fare" o "fatto").
Questo approccio può essere facilmente applicato da qualsiasi settore, ma il più delle volte è scelto dai team di sviluppo software coinvolti in progetti complessi e che richiedono tempo. E per una buona ragione: Kanban facilita la comunicazione in tempo reale e rende il lavoro di tutti i compagni di squadra completamente trasparente.
È interessante notare che Kanban è in effetti una metodologia molto più antica di Scrum. I suoi inizi risalgono agli anni '40, quando la Toyota introdusse un sistema di schede separate posizionate su lavagne bianche nelle sue fabbriche che i lavoratori potevano cambiare in qualsiasi momento. Di conseguenza, questa strategia ha reso il loro lavoro molto più agevole e ha accelerato la comunicazione tra i team.
Chi è chi in una squadra Kanban?
Quando ho discusso di Scrum, ho descritto i ruoli esatti, le responsabilità e le competenze di ciascun membro del team (Scrum Master, Product Owner e sviluppatori). Qui le cose sono molto diverse. Kanban non definisce chi ha più potere o responsabilità, poiché praticamente tutti i membri del team sono uguali e uniscono le forze e le competenze insieme.
Inoltre, Kanban non specifica quante persone possono lavorare insieme su un progetto, quindi qualsiasi struttura di team è accettabile. Tuttavia, se desideri migliorare il flusso di lavoro, potresti prendere in considerazione la creazione di un team di sviluppo incrociato. Grazie a questa soluzione, i membri del team con diverse aree di competenza possono condividere le proprie conoscenze e fornire feedback in ogni fase dello sviluppo del prodotto. In questo modo, non sarà affatto necessario consultare altre squadre!
Che cos'è una bacheca Kanban e come crearla?
La scheda Kanban è il cuore e l'anima di questa metodologia. È uno strumento di gestione dei progetti creato per visualizzare lo stato di avanzamento di ogni attività in tempo reale. Se ti stai chiedendo se i tuoi compagni di squadra hanno già iniziato a lavorare su una funzionalità importante, o forse l'hanno già completata, controlla la bacheca e ora lo sai!
Questo esempio mostra esattamente cos'è Kanban e come visualizza il lavoro:

Quindi il concetto generale alla base delle schede Kanban è piuttosto semplice: hai diverse colonne etichettate e su ciascuna di esse posizioni delle schede visive. Questi possono essere adesivi o biglietti. Su ciascuna di queste carte, annoti il nome del progetto in cui sei attualmente coinvolto o l'oggetto di lavoro specifico che stai costruendo. Quindi tutto ciò che devi fare è allocare una carta particolare a una colonna specifica in modo che il resto del tuo team sia aggiornato e sappia esattamente su cosa stai lavorando ora.
L'esempio che puoi vedere sopra mostra le tipiche categorie di colonne, che sono:
- 'da fare'
- 'in corso'
- 'test'
- 'fatto'
Tieni presente, tuttavia, che puoi descrivere il tuo flusso di lavoro in modo più ampio e aggiungere colonne aggiuntive : la loro scelta dipenderà dal progetto che stai gestendo.
Se vuoi che il tuo team abbia successo, c'è un'altra cosa di cui devi essere consapevole: dovresti definire limiti per gli elementi su cui il tuo team può lavorare contemporaneamente. Questo è il motivo per cui Kanban consiglia inoltre di impostare i limiti di lavoro in corso (WIT) . Come metterlo in pratica? È necessario specificare quante carte possono rimanere in una colonna (ad es. 'In corso') contemporaneamente. Se la tua squadra raggiunge questo limite, semplicemente non può aggiungere più carte. Stabilire questi limiti è sempre un'ottima soluzione per affrontare il sovraccarico di lavoro.
Scrum vs. Kanban: quale framework vince questa battaglia?
Bene, la risposta a questa domanda in realtà non è così semplice. Queste due strategie Agile condividono alcuni principi simili ma le pratiche che impiegano sono due cose completamente diverse. Mentre Kanban è più fluido e favorisce il cambiamento continuo e il feedback regolare, Scrum è molto più rigoroso e organizzato.
Pronto per il tuo prossimo progetto software?
Lavoriamo insiemeEcco le principali differenze tra questi due framework di project management:
Mischia | Kanban | |
---|---|---|
Ruoli | Scrum Master, Product Owner, Team di sviluppo | Ruoli indefiniti |
Squadre | Squadra singola | Diverse squadre lavorano su una scheda Kanban |
Flusso di lavoro | Sprint brevi (1-4 settimane) | Continuo |
Consegna | Nuovo oggetto/caratteristica alla fine di ogni sprint | Continuo |
Cambia filosofia | Non è possibile apportare modifiche durante l'intero sprint | Modificato può essere introdotto in qualsiasi momento |
Chiave metrica | Velocità | WIT, tempo di ciclo |
Strumento popolare | Jira | Trello |
Quindi, quale di questi framework Agile sceglierai per gestire i tuoi progetti? O vorresti che gli esperti lo facessero per te? Non esitare a contattarci: introducendo varie metodologie Agile, abbiamo consegnato oltre 150 prodotti di successo pronti all'uso!
Quando usare Kanban al posto di Scrum?
Kanban è una metodologia significativamente più efficace per i team che operano su un flusso di lavoro continuo . Quindi supponiamo che tu gestisca un team che riceve regolarmente nuove richieste in arrivo con priorità diverse. In questo caso, Kanban sarà un'opzione molto migliore, poiché questo approccio non è limitato nel tempo: non limita il flusso di lavoro del tuo team agli sprint e non definisce scadenze rigorose.
In poche parole, usa Kanban se vuoi ottenere maggiore flessibilità e consegna continua .
D'altra parte, se il tuo lavoro è incentrato sulla fornitura di nuove funzionalità entro tempi specifici e hai obiettivi a lungo termine chiaramente definiti, allora Scrum sarà molto più efficace.
Trello Scrum o Kanban?
Trello è uno degli strumenti più popolari che utilizza il metodo Kanban per la gestione delle attività. Per impostazione predefinita, ti consente di spostare le attività da una colonna all'altra a seconda del loro stato corrente. In questo modo, tutte le persone coinvolte nel progetto possono essere sempre in linea con il flusso di lavoro.
Tuttavia, Trello può essere applicato con successo anche a piccoli team Scrum. A tale scopo, Scrum master può creare più colonne con diversi stati come Backlog , Sprint Planning , Current Sprint , In progress e Done e inserire i task in una di esse.
Kanban ha sprint e standup giornalieri?
Kanban è un approccio Agile incentrato sul flusso in cui ulteriori attività vengono continuamente aggiunte al flusso di lavoro e non specifica la scadenza per consegnare un'attività. Per questo motivo non utilizza sprint e i team Kanban non organizzano Sprint Planning o Sprint Retrospective meeting .
Inoltre, Kanban non costringe il team a eseguire standup giornalieri. Tuttavia, consente comunque di organizzarli se il team ritiene che riunioni così brevi portino un certo valore e migliorino il flusso di lavoro.