Quindi, uno scrum sprint è un periodo di tempo fisso durante il quale deve essere implementato un set specifico di funzionalità. E un team di scrum è composto da tutte le persone impegnate a fornire tali funzionalità, la maggior parte delle quali in genere sviluppatori e tester.
Avendo stabilito queste regole, ci si potrebbe chiedere come tenere tutte queste persone occupate durante l'intero sprint. All'inizio dello sprint non c'è ancora nulla da testare, e alla fine dello sprint in genere non c'è nulla o molto poco da sviluppare / risolvere.
Ho visto 2 approcci per gestirlo, ma nessuno dei due sembra risolvere correttamente il problema.
1) Lascia che i membri del team decidano cosa fare ogni volta che sono fuori dai compiti.
Contro:
- Se ciò che fanno non è pianificato in modo completo (ad es. Refactoring importante, passaggio a un nuovo framework di test), il loro lavoro potrebbe rivelarsi inutile o essere bloccato a metà strada
- D'altra parte, la pianificazione di tale lavoro può richiedere molto tempo e il cliente può essere deluso nel vedere il team perdere tempo su qualcosa che non porta valore immediato
- Tali compiti di solito non possono essere stimati in modo approfondito, quindi è abbastanza facile per i lavoratori senza principi passare il tempo a guardare i gatti di YouTube senza che si rifletta sulla mischia o altrove
2) Fai spazio nello sprint solo per lo sviluppo e inizia i test dopo lo sprint (quando gli sviluppatori iniziano a lavorare sulle funzionalità dal prossimo sprint)
Contro:
- Durante lo sviluppo di funzionalità per lo sprint corrente, gli sviluppatori si distraggono correggendo i bug del precedente e non possono eseguire la quantità di lavoro che è stata stimata da eseguire durante lo sprint corrente
- Sono necessarie due schede Scrum: una per le funzionalità di Sprint correnti e una per i bug di Sprint precedenti
Quindi la mia domanda è: come distribuire correttamente il lavoro durante lo sprint tra sviluppatori e tester in modo che nessuno venga sovraccaricato di lavoro o finisca senza attività in qualsiasi momento? Esistono modi per migliorare gli approcci sopra descritti? O ci sono approcci migliori?