Ho sentito lo sciame menzionato nel contesto della Programmazione Agile o Extreme. Sembra essere un complemento all'accoppiamento.
Che cos'è esattamente? Quando dovrebbe essere applicato? Come lo fai bene?
Ho sentito lo sciame menzionato nel contesto della Programmazione Agile o Extreme. Sembra essere un complemento all'accoppiamento.
Che cos'è esattamente? Quando dovrebbe essere applicato? Come lo fai bene?
L'idea è che tutti i membri del tuo team lavorino contemporaneamente alla stessa storia. Invece di concentrarsi su attività diverse, tutti si concentrano su un'attività alla volta finché non viene completata. Poi passano alla prossima cosa, dove lavorano tutti insieme.
Questo aiuta le squadre che lottano per completare le storie prima della fine dello sprint. Spesso i team finiscono l'80% di tutte le storie, ma nessuna è completa. Questo è meno utile del finire completamente l'80% delle storie, poiché le storie non completate non hanno (effettivamente) alcun valore per un utente finale. È più facile ottenere storie completate quando tutti i membri del team si concentrano su una storia alla volta. Questa è la motivazione dietro lo sciame.
Ci sono alcune difficoltà qui. Ad esempio, il QA non può sempre testare le cose prima che siano costruite (o persino progettate). In questo caso, dovresti stabilire insieme un progetto sin dall'inizio, e quindi il QA può scrivere (inizialmente fallendo) i test contro il progetto e non l'effettiva implementazione.
Lo sciame si riferisce semplicemente al fatto che più persone lavorano insieme per completare un'attività o una storia. Nella mia esperienza questo non è qualcosa che fai spesso.
In genere, ogni membro del mio team lavora su un compito diverso e / o una storia diversa. Se qualcuno sta cadendo indietro, o se c'è il desiderio di finire presto un compito o una storia, altre persone smetteranno di lavorare su altri compiti e "sciamano" per completare l'attività, il che significa che lavoreranno tutti insieme su una singola attività o storia fino a quando è completato.
Recentemente abbiamo avuto un piccolo numero di storie che è stato un lavoro abbastanza noioso, poco interessante. Ho dato alla squadra un piccolo incentivo (pizza) e la scadenza (fine giornata) per finire il lavoro, così hanno sciamato sulla storia e messo fuori gioco almeno un paio di giorni di lavoro in un pomeriggio. Hanno terminato il lavoro e sono usciti presto, quindi ogni membro del team è tornato a qualsiasi cosa stessero lavorando. Hanno avuto un pranzo gratis, ho fatto il lavoro presto che avrebbe potuto essere trascinato a causa della natura noiosa, e la squadra ha superato la loro sprint. Win-win-win.
"Swarming" non è altro che un termine di fantasia per "hey, lascia che ti aiutiamo con quello".
Lo sciame è in realtà un concetto centrale di agilità. Non è qualcosa che viene fatto "quando ci sono problemi". Lo sciame, nella sua forma più semplice, significa che i team lavorano in modo collaborativo su elementi (storie) e li completano. Il concetto base è "smettere di iniziare e iniziare a finire". In altre parole, invece di ogni sviluppatore che lavora in modo indipendente su una storia, il team si concentra su un insieme più limitato di storie / attività e ottiene ogni elemento prima. Pensala come la differenza tra un sistema a thread singolo e multi-thread. Se una User Story ha 10 attività che devono essere eseguite e ognuna è di 8 ore, supponendo che non ci siano state complicazioni, uno sviluppatore potrebbe lavorare ogni attività in sequenza e completare la storia in 80 ore, o circa due settimane (dato uno sprint di 10 giorni di 8 ore di sviluppo al giorno). Cosa accadrebbe se due sviluppatori suddividessero i compiti e lavorassero contemporaneamente? Le stesse 80 ore di lavoro possono essere completate in questo modo in una settimana. Aggiungi un terzo e puoi vedere ora che potrebbe essere fatto in 3 o 4 giorni.
Lo sciame può essere fatto in diversi modi:
Le squadre che danno una storia a ogni sviluppatore tendono ad avere troppo "work in progress" o WIP, e spesso molte storie iniziano ma non sono state fatte. Questo è ANTI-PATTERN e NON è una buona pratica.
Le squadre che pullulano tendono ad avere meno WIP e completano più storie - e di fatto, intendo Sviluppato, Testato, Approvato, pronto per la distribuzione. Quindi, questa è una pratica è quel nucleo di agilità.
Il seguente articolo su InfoQ descrive un approccio allo sciame:
Leggi l'articolo per la spiegazione dettagliata.
Leggi altre domande sui tag agile terminology