Una guida per principianti alla gestione dello sviluppo software con Kanban e Trello

Pubblicato: 2022-03-11

Ognuno è un project manager. Che tu stia gestendo lo sviluppo di una nuova applicazione e facendo crescere la tua startup, lavorando a un nuovo progetto aziendale da miliardi di dollari o semplicemente cercando di ravvivare il tuo giardino con un po' di paesaggistica fai-da-te, gestisci sempre un progetto.

Il successo del tuo progetto dipende da molti fattori, ma uno dei motivi più comuni per cui i progetti falliscono è la mancanza di gestione o una cattiva gestione del progetto. Non importa quanto sia piccolo il tuo team o quanto chiaramente i tuoi requisiti siano documentati, se non gestisci correttamente il tuo team, il tuo progetto è destinato a fallire.

Ogni minuto che dedichi alla gestione del tuo progetto è tempo ben speso. Ti avvicinerà al completamento con successo del tuo progetto.

La gestione agile dei progetti è un metodo ampiamente accettato per affrontare i moderni progetti di sviluppo software. Ma cosa significa veramente Agile?

I progetti agili accettano il frequente cambiamento di ambito e requisiti come parte integrante del processo.

Per un'analisi più approfondita dei principi Agile, suggerisco di leggere la nostra Guida definitiva all'Agile Project Management.

In questo post, spiegheremo le basi della gestione agile dei progetti con Kanban.

Anche se sei un project manager esperto che comprende i principi agili dentro e fuori, dovresti rinfrescare la memoria e ricordare a te stesso i concetti fondamentali. I cicli di innovazione nello sviluppo del software sono in costante accelerazione, rendendo la gestione dei progetti più complessa ad ogni iterazione. Tornare ai principi fondamentali e consolidare i principi cardine di Agile è sempre importante. Dopotutto, la ripetizione è la madre di tutta la conoscenza.

Kanban è uno dei metodi più semplici per gestire qualsiasi progetto di sviluppo software Agile. Puoi gestire facilmente un team di sviluppo locale che lavora dallo stesso ufficio o da un team distribuito, distribuito attraverso diversi fusi orari.

Kanban non è un processo. È un modo per gestire qualsiasi processo con modifiche minime alle attività operative stabilite dal team.

Per applicare i principi Kanban al tuo lavoro, devi applicare due semplici regole:

  1. Visualizza il tuo processo.
  2. Limita i lavori in corso.

Visualizza il tuo processo

La visualizzazione dei dati è un modo rapido e semplice per trasmettere informazioni in modo universale e di facile comprensione. Quando si guardano le immagini, il cervello umano può elaborare più informazioni contemporaneamente. Alcune ricerche affermano che questo può essere fino a 60.000 volte più veloce della lettura di un testo.

I neuroni cerebrali per la nostra percezione visiva rappresentano il 30 percento della materia grigia del cervello.

Il modo più diffuso per visualizzare un processo è una Kanban Board. Una scheda Kanban è una scheda divisa verticalmente in più colonne, ciascuna delle quali rappresenta uno stato nel processo.

Diamo un'occhiata a come sarebbe una semplice scheda di sviluppo software. Innanzitutto, dobbiamo definire gli stati per le nostre funzionalità di sviluppo:

  1. Da fare : la funzionalità è in attesa di sviluppo
  2. Sviluppo : la funzione è assegnata a uno sviluppatore e lui/lei ci sta lavorando
  3. Garanzia di qualità : la funzionalità è in fase di revisione
  4. Distribuito : la funzionalità è accettata e inclusa nella versione dell'applicazione

Sulla base di questo, la tua scheda dovrebbe avere il seguente layout:

Una bacheca Trello con quattro colonne: Da fare, Sviluppo, Garanzia di qualità e Distribuito.

Visualizzare le singole attività è facile come creare un semplice biglietto (molto simile a un post-it) che rappresenti il ​​lavoro che deve essere svolto. Puoi nominare l'attività, aggiungere il nome dello sviluppatore assegnato, la data di scadenza e qualsiasi altra informazione pertinente a questa scheda.

Quando aggiungi quella carta a una colonna della Kanban Board, hai visualizzato che, ad esempio, uno sviluppatore specifico sta lavorando a un'attività particolare che è dovuta a una certa data ed è attualmente in fase di sviluppo.

Primo piano di una scheda Trello, con etichette che evidenziano l'etichetta del colore dell'attività, il titolo dell'attività, la data di scadenza dell'attività, l'indicatore di presenza della descrizione dell'attività, il contatore dei commenti, il contatore degli allegati, gli elementi dell'elenco di controllo eseguiti su una frazione totale e l'indicatore delle persone assegnate.

Limitare i lavori in corso (WIP)

Il multitasking umano è un'illusione. Invece di prestare attenzione a una o due cose contemporaneamente, il nostro cervello passa da una all'altra molto rapidamente.

Questo è più visibile nello sviluppo del software che altrove. Gli sviluppatori possono lavorare solo su un pezzo di codice alla volta e il passaggio a un'altra funzionalità causerà ritardi e influenzerà la loro concentrazione e prestazioni.

Ciò non significa che devi limitare il numero di incarichi a uno solo alla volta. Lo sviluppo è un lavoro complesso e creativo, alcune attività richiedono più tempo e altre richiedono meno tempo per essere completate e c'è sempre un ritardo mentre uno sviluppatore aspetta qualcosa o qualcuno. L'importante è limitare i compiti assegnati a un numero ragionevole che non produca caos (questo di solito è da tre a cinque incarichi alla volta).

Supponendo che il tuo team di sviluppo sia composto da due sviluppatori e un ingegnere QA, la tua scheda potrebbe avere i seguenti limiti WIP:

  • Da fare - Illimitato
  • Sviluppo - Limite di sei carte (due sviluppatori ciascuno limitato a un massimo di tre attività)
  • Garanzia di qualità - Limite di tre carte (1 ingegnere QA limitato a un massimo di tre carte)
  • Distribuito - Illimitato
Non aspettarti che gli sviluppatori siano saggi e limitino il loro WIP da soli. Se lanci tutto dall'elenco delle cose da fare agli sviluppatori, sarà come dare troppi giocattoli a un bambino. Invece di giocare con un giocattolo, li lanceranno in giro, creando caos nella tua casa ordinata, e tuttavia non saranno felici e puoi aspettarti scoppi d'ira.

È tuo compito, in qualità di project manager, assicurarti che l'elenco delle cose da fare abbia la priorità corretta e che le attività vengano assegnate agli sviluppatori non prima del necessario.

Un tabellone Trello simile al primo, ma con la sua seconda colonna chiamata WIP e una linea rossa chiamata "WIP LIMIT" disegnata sotto la sua terza carta.

Una Kanban Board correttamente gestita ti darà un quadro chiaro dello stato del tuo progetto a colpo d'occhio. Puoi vedere che i tuoi sviluppatori hanno abbastanza lavoro, che hai preparato nuove attività che possono assumere una volta completati i loro compiti e che il tuo tecnico del controllo qualità è in attesa di nuove attività da rivedere.

Usa Trello per gestire la tua scheda Kanban

Trello è un'applicazione di gestione dei progetti Kanban basata sul web. Consente una collaborazione semplice e in tempo reale tra i membri del team e persino più team e progetti.

Per creare una bacheca in Trello, fai clic sulla voce di menu "Crea nuova bacheca..." e imposta un titolo per la bacheca.

Uno screenshot della creazione di una bacheca in Trello. C'è un unico campo per il titolo della bacheca.

Inizierai con una tavola vuota. Usa la casella "Aggiungi elenco..." per creare colonne per le tue carte Kanban.

Uno screenshot dell'aggiunta di una colonna attività in Trello. Il titolo della nuova colonna è modificabile e sotto di esso sono presenti i pulsanti Salva e X.

Facendo clic su "Aggiungi una carta..." in fondo a qualsiasi elenco, puoi creare facilmente un'attività. Ogni carta che crei dovrebbe rappresentare un'attività che verrà eseguita da un membro del team.

Le carte in Trello possono essere personalizzate in molti modi:

  • Assegna i membri del team responsabili dell'esecuzione di un'attività
  • Codificali a colori in base ai raggruppamenti specifici che desideri aggiungere
  • Imposta le date di scadenza
  • Aggiungi allegati
  • Aggiungi campi personalizzati come un elenco di controllo in cui puoi tenere traccia dell'avanzamento di elementi più piccoli che compongono un'attività
  • I membri del team possono commentare una scheda e tutti verranno informati di qualsiasi modifica apportata.

Uno screenshot della visualizzazione dei dettagli di una scheda Trello, che mostra il titolo, le sezioni per elenchi di controllo, commenti e cronologia delle attività e possibili azioni a livello di scheda in una barra laterale.

La visualizzazione è tutto in Kanban, quindi ecco come appare una carta sul tabellone:

Uno screenshot della carta precedente vista a livello di tabellone Trello, con gli stessi elementi descritti in precedenza, ma corrispondenti ai dettagli della carta più recente.

Solo guardando la scheda, senza aprire la vista di dettaglio puoi vedere che:

  1. L'attività per configurare il repository di codice GitHub è in attesa di essere eseguita nell'elenco delle attività.
  2. Il compito è dovuto entro il 27 gennaio.
  3. L'attività ha una descrizione.
  4. C'è un commento sull'attività.
  5. Esiste una lista di controllo di due elementi e nessuno di questi elementi è attualmente completato.
  6. L'attività è assegnata all'utente DS, che la riprenderà successivamente.
  7. L'attività appartiene a un gruppo di schede di colore verde, il che significa che è richiesta prima dell'avvio del progetto.

Stima il tempo e la complessità del lavoro di sviluppo

Pianificare e gestire un progetto è impossibile senza comprendere lo sforzo e il tempo necessari per completare un determinato compito. Tuttavia, una delle cose più difficili da fare nello sviluppo del software è determinare quanto tempo ci vorrà per fornire un nuovo prodotto o funzionalità software.

Scrum, uno dei principi Agile più popolari, si basa molto sulle stime, siano esse basate sul tempo o sui "punti di complessità".

Il team dovrebbe dedicare molto tempo all'analisi dell'attività.

Questo perché Scrum si basa su intervalli di tempo, quando è previsto il completamento di un determinato gruppo di attività. Per pianificare la consegna è necessario avere una piena comprensione di tutto il lavoro pianificato per quella casella di tempo.

Kanban non si basa su consegne in time box e puoi pianificare la consegna giornaliera se lo desideri. Si basa sull'ottimizzazione del flusso, il che significa che l'obiettivo del team è completare e svuotare la colonna WIP il prima possibile.

Il team non perde tempo a stimare il lavoro con molto anticipo. Uno sviluppatore raccoglierà l'elemento successivo da To-Do; completarlo il prima possibile; e prendi un altro compito.

Ciò non significa che un team non debba stimare il volume del proprio carico di lavoro.

Puoi utilizzare le tue chiamate settimanali o giornaliere per aggiornare e verificare le date di scadenza.

Tuttavia, per un piccolo team, è più importante garantire che gli sviluppatori stiano lavorando sull'attività con la massima priorità in un dato momento e che non ci siano colli di bottiglia, costringendo uno sviluppatore a sospendere il proprio lavoro.

Alla fine, il tuo progetto crescerà e dovrai iniziare a stimare la quantità di lavoro di sviluppo in modo più dettagliato. Quando raggiungi questa situazione, trascorri del tempo a leggere la nostra guida per la stima dei costi del software nella gestione agile dei progetti.

Pratiche di gestione indispensabili

Finora, hai imparato l'importanza di visualizzare il tuo processo e limitare il WIP e come utilizzare Trello per gestire il tuo progetto.

Un progetto software però non può essere gestito solo con schede e colonne. Pertanto, è importante implementare anche le best practices Agile:

  • Organizzare una riunione di squadra regolare.
    Fallo almeno settimanalmente per rivedere ciò che è stato fatto e perfezionare e dare priorità al backlog (elenco delle cose da fare) se necessario. In questo modo, l'intero team riceverà aggiornamenti contemporaneamente e le idee potranno essere condivise. In queste riunioni, è importante avere uno stakeholder del progetto (cliente, CTO aziendale o chiunque del team di prodotto che possa prendere una decisione e rispondere alle domande) per fornire eventualmente un feedback non tecnico.

  • Assicurare una comunicazione costante con i singoli membri del team.
    Questo renderà il lavoro quotidiano di tutti molto più semplice. Mantieni queste riunioni o sincronizzazioni molto brevi e semplici, basta un rapido aggiornamento nel tuo programma di chat preferito. È utile avere check-in giornalieri, che potrebbero essere una riunione giornaliera di circa 15 minuti che hai con il tuo team. In questo incontro, ogni membro del team parla per alcuni secondi affermando:

  • Su cosa hanno lavorato ieri.
  • Su cosa hanno in programma di lavorare oggi.
  • Quali sfide o colli di bottiglia stanno affrontando.


Prendi appunti durante la chiamata e presta attenzione a trovare possibili problemi (bloccanti, messa a fuoco sbagliata sull'attività, sfide tecniche impreviste) e lavora su di essi con il team.

Avvia il tuo progetto di sviluppo software

Sebbene ogni progetto di sviluppo software sia diverso, ci sono alcune attività che troverai in quasi tutti. Ecco alcune delle attività da pianificare quando si avvia un progetto di sviluppo software:

  • Imposta il controllo delle versioni del codice e un repository.
    Tenere traccia delle modifiche e monitorare il codice è estremamente importante, soprattutto quando si collabora a progetti in cui più persone aggiorneranno lo stesso codice.

    Uno dei servizi più popolari per il controllo delle versioni del codice è GitHub. GitHub è un repository Git o di controllo della versione basato sul Web che offre tutte le funzionalità di controllo della versione distribuita e gestione del codice sorgente (SCM) di Git.

    Fornisce il controllo dell'accesso e diverse funzionalità di collaborazione, come il monitoraggio dei bug, le richieste di funzionalità, la gestione delle attività e i wiki per ogni progetto.

  • Definire una politica di backup del database.
    L'utilizzo di servizi come GitHub assicurerà che il backup del codice venga eseguito regolarmente.

    I database, di solito, non fanno parte del tuo sistema di controllo delle versioni e dovresti anche impostare backup frequenti del database.

    Il processo di sviluppo è soggetto a errori ed è facile commettere errori e aggiornare i dati sbagliati durante lo sviluppo. Avere un backup ti farà risparmiare il problema se si verifica tale problema.

  • Configura strumenti di collaborazione e condivisione di file.
    La documentazione del progetto, le specifiche funzionali, i file di progettazione e qualsiasi altra documentazione e file utilizzati durante lo sviluppo del progetto sono costantemente aggiornati e dovrebbero essere distribuiti al tuo team.

    È possibile utilizzare diversi servizi per condividere questi file. Google consente una soluzione semplice ed economica a questo problema. Utilizza Google Drive, Google Documenti, Fogli Google e altre app Google per condividere e collaborare ai file.

  • Configura server di sviluppo e test separati.
    Il processo di sviluppo deve continuare in ogni momento.

    Gli sviluppatori non dovrebbero attendere i risultati del test dell'applicazione e dovrebbero continuare a lavorare sui loro incarichi mentre il controllo qualità esamina le funzionalità completate.

    Allo stesso tempo, il cliente dovrebbe essere in grado di controllare lo stato attuale dell'applicazione in qualsiasi momento, senza attendere il team di sviluppo. Avere un server di test dedicato che viene aggiornato regolarmente rimuoverà tutti i colli di bottiglia in questo processo e assicurerà che il tuo team funzioni senza interruzioni.

  • Definisci un orario fisso per le chiamate settimanali del team e un orario fisso per le chiamate o le chat giornaliere del team.
    Convinci tutti i membri del tuo team a pianificare un orario nel loro calendario per chiamate e riunioni. Ciò offre al tuo team un programma costante senza interruzioni di lavoro.

Porta via

La gestione dei progetti è un'attività complessa e, troppo spesso, altamente stressante. Aggiungendo una struttura ad esso e rendendo lo stato del progetto visibile e accurato in ogni momento si allevia gran parte di questo stress. L'utilizzo del metodo Kanban e dei principi Agile, in combinazione con gli strumenti adeguati, ti farà risparmiare un sacco di tempo.

Detto questo, non esiste uno strumento o una metodologia che compensi il tempo che tu, come project manager, devi dedicare alla gestione del progetto.

E solo perché un progetto è piccolo, non significa che richieda necessariamente meno tempo. Questa mentalità è un'ottima ricetta per un grande mal di testa su tutta la linea.

Ecco un semplice elenco di controllo per aiutarti a verificare se il tuo progetto viene gestito correttamente o meno:

  1. Il tuo processo è visualizzato correttamente?
  2. Il WIP per ogni membro del team è limitato e ridotto a icona?
  3. Il tuo team ha una riunione programmata in modo coerente, settimanale o giornaliero?
  4. La tua scheda Kanban è aggiornata regolarmente?
  5. Hai un repository di codice in atto?
  6. Hai pianificato backup del database?
  7. Hai impostato strumenti di comunicazione e collaborazione in team?
  8. Il tuo ambiente di sviluppo è separato da test, accettazione e produzione?

Tieni presente che questo elenco è tutt'altro che definito e completo; è solo l'inizio.

Lascia i tuoi commenti e condividi i tuoi suggerimenti e le tue pratiche con i project manager che stanno appena iniziando il loro viaggio senza fine per potenziare i team di sviluppo software.