Definition of Ready (DoR)

definition of readyLa “definizione di Pronto” (Definition of Ready – DoR) è frutto di un accordo tra il team di sviluppo ed il Product Owner che chiarisce i criteri per il quali un requisito (user story o funzionalità) è definito in modo corretto per poter essere inserito nel Sprint Backlog e poter pianificare uno Sprint.

Accettare una user story che non è stata sufficientemente sviscerata può creare molti ostacoli per il team.

Nella migliore delle ipotesi, una storia poco dettagliata può portare alla rielaborazione del lavoro, oppure può far prendere al lavoro una direzione completamente sbagliata.

È quindi evidente che una user story deve soddisfare una serie di criteri minimi prima di essere ritenuta “Pronta” per l’inclusione nel lavoro del prossimo sprint.

Questa serie di criteri minimi costituisce appunta la Definition of Ready (DoR).

Questa definizione condivisa deve essere codificata in un documento che possa consentire al team di rifiutare quelle user stories che non soddisfano i criteri di accettazione chiaramente definiti.

D’altra parte, molti team di sviluppo utilizzano anche la “definizione di Fatto” (Definition of Done) per fissare i criteri per i quali una funzionalità possa ritenersi sviluppata in modo completo.

Pertanto le due specifiche regolano ciò che può entrare in uno Sprint e ciò che ne può uscire nel rispetto degli standard concordati.

Esempio di Definition of Ready

Nello sviluppo software, un esempio di DoR per una user story o funzionalità può corrispondere ad una sorta di checklist:

User Story articolata
Dipendenze con altre user stories definite
User Story dimensionata
User Story accettata dal team
Criteri di prestazione identificati
Individuata la persona che farà il test
Definite le modalità per fare la Demo della funzionalità

Vantaggi della Definition of Ready

  • Definire quando una componente del backlog è pronta per essere sviluppata
  • Aiuta a responsabilizzare il team sul lavoro da svolgere
  • Il team non si impegna sulle stime prima che una funzionalità non abbia raggiunto lo stato di “Pronta”
  • Tutti gli sviluppi che vengono avviati riguardano solo funzionalità dettagliate
  • Nessun lavoro nascosto.