La maggior parte di questa risposta è teorica. Ho incluso quello che potrebbe essere il punto cruciale del problema alla fine. Ma probabilmente dovresti leggere tutta la risposta.
In base alla Guida di Scrum :
The purpose of each Sprint is to deliver Increments of potentially releasable functionality that adhere to the Scrum Team’s current definition of “Done.”
Quindi la prima domanda: l'incremento è sempre sbloccabile?
In caso negativo, perché no?
Se lo è, qual è questo concetto di "ripulire"?
Indipendentemente dal fatto che le parti interessate e il proprietario del prodotto siano d'accordo sul fatto che i cambiamenti nell'incremento siano ciò che volevano, sono presenti.
È possibile che il Product Owner non si desideri rilasciare fino a quando non viene fornita una futura Incrementation, ma finché è releas able , il Product Owner deve accettare l'incremento.
In caso contrario, il proprietario del prodotto e il team di sviluppo dovrebbero capire se qualcosa da questo Incremento è recuperabile, e lo Scrum Team (Product Owner + Scrum Master + Development Team) dovrebbe lavorare per capire come il Team di sviluppo non è riuscito a fornire un Incremento rilasciabile.
Non avere un nuovo Incremento è lontano dall'ideale, ma ogni sforzo sprecato è limitato a uno Sprint al massimo, e sono state identificate nuove intuizioni e opportunità di miglioramento.
Quindi il problema è in realtà se il team di sviluppo ha un lavoro annullato nell'incremento (ad esempio funzionalità appena interrotte o funzionalità non testate / non documentate che vengono unite ma che non soddisfano la definizione di " Fatto "), o se hanno il lavoro incompiuto , ovvero che hanno fornito alcune delle funzionalità richieste e il prodotto funziona in modo accettabile, ma non all'altezza delle parti interessate sperato.
Se annullato , l'Increment non è rilasciabile - considera come spiegato sopra.
Se non finito , valuta quali modifiche future sono richieste / desiderate e chiedi al Product Owner di aggiungerle nella posizione appropriata nel Product Backlog, quindi consenti al team di sviluppo di stimare i nuovi articoli.
Proprio perché ci sono state delle precedenti aspettative di consegna, il team di sviluppo deve iniziare e terminare lo Sprint con un Incremento rilasciabile. Prendendo questo incremento, è probabile che lo sviluppo sia in grado di eseguire una certa quantità di lavoro. Sii empirico. Utilizza le conoscenze acquisite in precedenza per capire cosa si può fare e il team di sviluppo dovrebbe essere in grado di prevedere cosa può offrire nel prossimo Sprint (nota: la Guida Scrum si riferisce ora alla previsione dei Team di sviluppo, piuttosto che commettere - è solo essere realistici).
Uno Sprint che offre meno delle previsioni non è un motivo per aspettarsi che il prossimo Sprint fornirà di più. Se qualcosa ha limitato la capacità del team di consegnare una certa quantità all'ultimo Sprint, a meno che il problema non sia stato identificato e risolto, non c'è motivo di aspettarsi che il team fornisca di più la prossima volta.
Qualunque cosa sia accaduta, usa Sprint Review in modo da consentire a Scrum Team e Stakeholder di minimizzare il rischio che ciò accada di nuovo. Usa Sprint Retrospective per stabilire nuovi modi di lavorare e potenzialmente una modifica alla definizione di "Fatto" per ridurre al minimo il rischio che si ripeta.
Dalla tua domanda, penso che il vero problema (che probabilmente identificherai anche usando Scrum rigorosamente) è che il tuo team di sviluppo non è responsabile per il controllo qualità. Non tutti i membri del team di sviluppo devono avere le stesse competenze (non è necessario essere uno "sviluppatore" in quanto tale). Il team deve essere in grado di fare tutto ciò che è necessario per produrre un Incremento "Fatto", rilasciabile. Il passaggio logico potrebbe essere l'aggiornamento della definizione di "Fatto" per includere il controllo qualità, inclusi gli ingegneri del controllo qualità all'interno del team di sviluppo e potenzialmente la modifica di strumenti / sistemi per supportare questo modo di lavorare.