Riepilogo: Un flusso di lavoro Agile è composto da una serie di fasi necessarie ai team Agile per sviluppare un'applicazione, dall'ideazione al completamento.
Ogni team software segue un processo per completare il lavoro. La normalizzazione di tale processo, ovvero la sua definizione come flusso di lavoro, lo rende chiaramente strutturato e ripetibile, il che, a sua volta, lo rende scalabile. In Atlassian, adottiamo un approccio iterativo alla gestione del flusso di lavoro perché ci aiuta a raggiungere i nostri obiettivi più velocemente ed esemplifica la nostra cultura di team. Siamo esperti nella gestione Agile del flusso di lavoro (se lo diciamo noi stessi) e vogliamo aiutare anche te a diventare esperto in materia.
Primi passi per la realizzazione di flussi di lavoro Agile
Quando implementi un flusso di lavoro per il team, inizia sempre a piccoli passi. Combatti la tentazione di trascorrere settimane (o anche più tempo) a progettare il flusso di lavoro. Flussi di lavoro troppo complessi sono difficili da comprendere e adottare, per non parlare del loro adattamento. Per i team software, consigliamo questi stati del flusso di lavoro di base:
Lavoro non ancora iniziato
Lavoro esaminato attivamente dal team
Lavoro completato e in attesa di revisione
Lavoro completamente finito e in linea con la definizione di "completato" del team
In uno strumento di rilevamento dei ticket, questi stati scorrono da uno all'altro tramite transizioni che strutturano il flusso di lavoro.
Alcuni team software includono stati aggiuntivi nel flusso di lavoro che li aiutano a monitorare lo stato del lavoro in modo più preciso.
Lavoro implementato, ma ancora in attesa di revisione da parte del tester (vedi il nostro articolo sui test Agile per maggiori dettagli).
Codice che è stato rivisto ed è pronto per il merge nel branch principale o nel branch di rilascio.
Ogni stato del flusso di lavoro non deve essere gestito necessariamente da una persona diversa. Man mano che un team Agile matura, gli sviluppatori gestiscono sempre più lavoro, dalla progettazione fino alla consegna. Dopo tutto, un team autonomo in grado di gestire lavori eterogenei è uno dei tratti distintivi dell'agilità.
Discuti ogni punto dolente nella retrospettiva del team e tieni presente che ogni team avrà valori leggermente diversi in base al progetto, allo stack tecnologico e al metodo in cui preferisce lavorare. Ecco perché è importante scegliere uno strumento di rilevamento dei ticket che abbia una configurazione flessibile del flusso di lavoro. Troppi team compromettono il loro stile di lavoro per adattarsi a un particolare set di strumenti, il che è frustrante per tutti. Ciò può indurre i membri del team a evitare di utilizzare del tutto quello strumento, aggravando la frustrazione in tutto il team e generando solitamente il caos. E quando il morale va giù, la produttività ne risente. È un doppio smacco che tutti vogliamo evitare!
I team che non conoscono l'approccio Agile o che non hanno competenze interfunzionali spesso finiscono con l'aggiungere mini processi a cascata al loro flusso di lavoro. Ad esempio, il team di progettazione dà il via a un elemento di lavoro con un mockup. Il team di sviluppo si occupa dell'implementazione. Quello di test conferma la qualità. Ogni stato è bloccato fino al completamento dello stato precedente. Suona familiare? È l'approccio a cascata. Ma possiamo fare molto meglio con i flussi di lavoro Agile per sbloccare il lavoro dei team e semplificare notevolmente lo sviluppo.
Ottimizzazione per un flusso di processo Agile
Dopo aver acquisito dimestichezza con il flusso di lavoro di base ed essere pronto alla transizione a un flusso di processo Agile, crea stati per ogni tipo di lavoro nel processo del team. Ideazione, progettazione, sviluppo, revisione del codice e test sono diversi dal punto di vista delle funzioni e possono essere stati individuali. Punta a una serie snella di stati che comunichino chiaramente in quale fase si trova il lavoro.
Gli stati del progetto possono anche essere condivisi con il resto dell'organizzazione. Quando crei un flusso di processo Agile, pensa alle metriche per le quali è importante creare report e ai membri esterni al team che potrebbero essere interessati a conoscerle. Ad esempio, un flusso di lavoro ben progettato risponde alle seguenti domande:
- Quale lavoro ha completato il team?
- Il backlog del lavoro è in aumento o è allineato al team?
- Quanti elementi ci sono in ogni stato?
- Ci sono colli di bottiglia che rallentano il team?
- Quanto tempo ci vuole per completare un task medio?
- Quanti elementi di lavoro non hanno superato i nostri standard di qualità la prima volta?
Il passo successivo per ottimizzare il flusso di lavoro è garantirne la costanza. I limiti WIP impongono un numero minimo e massimo di ticket in un particolare stato del flusso di lavoro, facendo in modo che ogni stato contenga abbastanza lavoro per mantenere il team pienamente utilizzato, ma non così tanto da perdere la concentrazione perché i membri del team devono passare da una priorità all'altra. L'applicazione dei limiti WIP mostrerà rapidamente quali processi rallentano il lavoro complessivo nella pipeline. Man mano che il team impara a ottimizzare il lavoro in base ai limiti WIP, la produttività aumenterà (per ulteriori dettagli, vedi l'articolo sui limiti WIP).
Le sfide della scalabilità di un flusso di processo Agile
Le organizzazioni con molti team Agile devono affrontare sfide speciali legate ai flussi di lavoro. I team spesso desiderano ottimizzare il proprio flusso di lavoro in modo che rifletta il loro processo e la loro cultura unici. Per quanto ciò sia perfettamente comprensibile, può creare difficoltà quando team diversi utilizzano processi diversi mentre lavorano allo stesso progetto.
I team Agile che collaborano possono trarre vantaggio dalla condivisione dello stesso flusso di lavoro. L'utilizzo dello stesso flusso di lavoro può semplificare il passaggio del lavoro tra i team Agile, poiché questi utilizzano le stesse convenzioni per la definizione e la consegna del lavoro. La creazione di un processo comune di solito richiede dei compromessi da parte di entrambi i team. Ma questa è una cosa positiva! I team impareranno gli uni dagli altri e alla fine avranno un flusso di lavoro migliore.
Con Jira, lo strumento di rilevamento dei ticket di Atlassian, i team possono condividere i flussi di lavoro ma avere rappresentazioni diverse del processo sulla loro board Agile. Questa possibilità porta a opzioni di visualizzazione flessibili senza sacrificare la risorsa condivisa del flusso di lavoro.
Indipendentemente dall'aspetto del flusso di lavoro, anche il processo di sviluppo dovrebbe essere Agile. Discutine di tanto in tanto nelle retrospettive e adattalo man mano che la cultura e la composizione del team cambiano.