Questo è spesso un po 'un cambiamento di mentalità per molte persone. La risposta più semplice è che il team è responsabile dello sviluppo e del test di qualcosa nello stesso sprint, se è troppo lavoro, allora devono impegnarsi a meno funzionalità.
Immagina il lavoro come una griglia, ogni riga rappresenta una funzionalità che il team vuole implementare, ogni colonna rappresenta le varie fasi tradizionali. Dev, Test, Risolto, Fatto ecc ...
In un'applicazione tipicamente a cascata, il team eseguirà lo sviluppo per tutte le funzionalità, quindi passerà a Test, Risolto ... poiché sono sicuro che questo approccio spesso porta a grandi quantità di rilavorazioni e scarsa comunicazione.
Un team di mischia dovrebbe contenere tutti i set di abilità per portare un pezzo di un lavoro dal piano a Fatto (Fatto, dovrebbe - a meno che tu non possa sostenere una ragione VERAMENTE valida dovrebbe essere fatta e in Produzione con clienti dal vivo).
Quindi, anziché completare un'intera colonna, una squadra punta a completare un piccolo numero di righe alla volta. Finendo alcuni di questi ogni sprint e spingendoli in live prima di iniziare il prossimo set. Ci sono molte, molte ragioni per le quali questa è una buona idea che lascerò fuori dallo scopo di questa risposta.
Quindi, ora sappiamo che vogliamo portare il tuo piccolo numero di funzionalità da Ready to Done alla domanda: come aiutare il tuo team a sviluppare e testare nello stesso sprint (voglio anche includere l'implementazione in questo).
In primo luogo, rendi visibile il lavoro. Se le persone possono vedere tutto il lavoro necessario per ottenere queste funzionalità in Produzione, avrai maggiori possibilità di completarlo.
Successivamente, è responsabilità dell'intero team completare le attività. Il test non è responsabilità di una persona, è l'intero lavoro del team - alcune persone potrebbero avere più esperienza di test ma possono aiutare altri membri del team, non sono le uniche persone che possono testare.
Cambiare mentalità / cultura è difficile, ma ecco i miei suggerimenti principali:
- Prendi un piccolo numero di piccole attività e consegnale per vivere ogni sprint
- Se gli sviluppatori non riescono a trovare nulla da fare, non consentono loro di svolgere più attività, devono aiutare il processo di test / distribuzione
- Coinvolgi presto i tester, utilizza le sessioni di perfezionamento / pianificazione per identificare i test da eseguire. Avere pianificato test come questo rende molto più facile per i non-tester essere coinvolti nei test. Incoraggia gli sviluppatori ad automatizzare i test!
TLDR
Incoraggia la squadra a consegnare alla produzione ogni sprint, questo si compenserà naturalmente per far sì che le persone prendano meno lavoro, ma lo spingono fino in fondo.
Pensa ai membri del tuo team come ingegneri con competenze diverse. Non c'è motivo per cui gli sviluppatori non possano provare e i tester non possono fornire consigli sullo sviluppo in corso. Pianificare i test da eseguire come parte della definizione di Ready rende molto più semplice per i tester progettare test per gli altri membri del team da eseguire.
Raccomando caldamente che la tua definizione di Done includa qualcosa in live e le storie non siano chiuse fino a quando non sono in produzione. Ciò rende il lavoro accumulabile in test / in attesa di distribuzione estremamente visibile e incoraggia i rilasci frequenti.