Cos'è la Definition of Done (DoD) nell'Agile?
La Definition of Done, abbreviata DoD, è un tipo specifico di working agreement. Rappresenta la comprensione condivisa di un team su cosa significhi "fatto" per loro. Il concetto di Definition of Done è diventato popolare grazie al framework Scrum.
La Scrum Guide afferma:
“La Definition of Done crea trasparenza fornendo a tutti una comprensione condivisa del lavoro completato come parte dell'Increment. Se un elemento del Product Backlog non soddisfa la Definition of Done, non può essere rilasciato né presentato durante la Sprint Review. Al contrario, torna nel Product Backlog per una futura considerazione.”
Molti team considerano la loro Definition of Done come una sorta di checklist per assicurarsi di aver coperto tutti i requisiti necessari prima di dichiarare un elemento come fatto. Questo significa anche che la DoD rappresenta in definitiva un controllo qualità del team per il team.
Più di una formazione
Intraprendi il tuo percorso personale di crescita sostenibile con alcuni dei migliori formatori al mondo e raggiungi il successo nel tuo nuovo ruolo.
Cos'è la Definition of Done in SAFe o in altri framework di scaling?
Lo Scaled Agile Framework, abbreviato SAFe, non ha una descrizione specifica della Definition of Done, se non il fatto che ne riconosce e promuove l'esistenza. SAFe è composto in definitiva da un numero maggiore di team Scrum/Agile e quindi promuove anche i principi fondamentali di Scrum.
Per ogni approccio scalato allo sviluppo prodotto, ovvero più team che lavorano insieme sullo stesso prodotto, si raccomanda che questi team operino in modo sincronizzato e condividano gli elementi essenziali della Definition of Done. Qualsiasi team può aggiungere più elementi alla propria Definition of Done, ma nessun team dovrebbe consegnare elementi che gli altri team non considerano come fatti.
Perché la Definition of Done è importante e quali scopi ha?
Nel momento in cui si inizia a lavorare in un team, è importante creare una comprensione condivisa su molteplici aspetti. Ogni team dovrebbe essere allineato sulla visione/missione del team. Ogni team dovrebbe avere dei working agreement co-creati. E come parte dei working agreement, ogni team dovrebbe essere allineato su cosa significhi "fatto" per loro.
Questa comprensione condivisa del "fatto" permette a persone diverse che lavorano su elementi diversi di fornire comunque una qualità e un'esperienza utente coerenti. Semplifica anche il processo di onboarding dei nuovi membri del team. Inoltre, rende molto più facile la collaborazione tra team in un ambiente scalato. E infine, garantisce che il lavoro di ogni team e dei suoi membri sia conforme ai requisiti dell'organizzazione.
Quando viene creata la Definition of Done?
Si raccomanda ai team di creare le proprie Definition of Done il prima possibile e al più tardi prima del primo Sprint Planning. Senza una comprensione condivisa di cosa significhi "fatto", è praticamente impossibile allinearsi su quanto lavoro un team possa portare in uno Sprint.
Se un team non è disposto a creare una Definition of Done prima del primo Sprint Planning, si accorgerà durante lo Sprint o al più tardi nella Sprint Review che la qualità che sta consegnando non è coerente e molto probabilmente non soddisfa le aspettative degli stakeholder.
Chi crea la Definition of Done in Scrum?
Molteplici parti sono coinvolte nella creazione della Definition of Done. In definitiva è responsabilità dello Scrum Team creare questa comprensione condivisa. Dovrebbero considerare l'input di vari stakeholder per soddisfare le loro aspettative.
Cosa viene tipicamente incluso nella Definition of Done?
Una tipica Definition of Done include risposte alle seguenti domande:
- Come ci assicuriamo di soddisfare i requisiti di business?
- Come ci assicuriamo di avere una qualità coerente?
Come esempio, una Definition of Done potrebbe essere questa:
- Tutti i criteri di accettazione sono soddisfatti
- Tutti i test necessari sono stati completati con successo
- Più persone hanno verificato il lavoro
- Tutta la documentazione necessaria è stata creata
- Il Product Owner ha revisionato il lavoro ed è soddisfatto
A seconda del dominio di lavoro, i team possono avere Definition of Done più lunghe (più dettagliate) e a volte più corte (di alto livello). Nella maggior parte dei casi, una Definition of Done evolve nel corso di un progetto e diventa più granulare.
Qual è la differenza tra la Definition of Done e la Definition of Ready?
La Definition of Done si riferisce a un elemento completamente sviluppato, cioè finito. Al contrario, la Definition of Ready descrive il requisito che un elemento sia sufficientemente buono affinché un team possa iniziare a lavorarci.
Inoltre, la Definition of Done è menzionata nel framework Scrum, mentre la Definition of Ready no. Si tratta di un artefatto che i team possono aggiungere. Come sempre, ci sono pro e contro nel farlo.
Cos'è la Definition of Ready in Scrum?
La Definition of Ready rappresenta la comprensione condivisa dei passaggi che un team deve compiere per assicurarsi che un requisito sia ben definito e che il team possa inserirlo nel prossimo Sprint.
Molti team utilizzano l'acronimo INVEST come Definition of Ready:
- I = Independent (Indipendente)... l'elemento è indipendente o abbiamo considerato le dipendenze nel nostro processo di prioritizzazione
- N = Negotiable (Negoziabile)... abbiamo discusso dell'elemento
- V = Valuable (Di valore)... abbiamo un'idea del valore che stiamo creando per i nostri utenti
- E = Estimable (Stimabile)... possiamo stimare l'effort necessario per consegnare questo elemento
- S = Sized appropriately (Dimensionato adeguatamente)... rientra nel nostro Sprint o vediamo opzioni per renderlo più piccolo
- T = Testable (Testabile)... sappiamo cosa ci si aspetta da noi, cioè abbiamo catturato/documentato i criteri di accettazione
Questo è uno dei tanti modi per creare una Definition of Ready. L'aspetto più importante è che nessun elemento venga iniziato senza che il team ne abbia discusso.
Perché la Definition of Ready è importante?
Similmente alla Definition of Done, la Definition of Ready aiuta un team a lavorare meglio insieme. È importante che un Product Owner sappia cosa si aspetta il team quando crea un requisito. È importante che il team sappia in quale parte del processo può supportare il Product Owner per fornire requisiti migliori.
Quando si cambia la Definition of Done?
Sia la Definition of Done che la Definition of Ready dovrebbero essere ispezionate e adattate regolarmente. Questo significa che le raffiniamo ogni Sprint? No! Ma nel tempo i team si renderanno conto che dovrebbero aggiornare la loro Definition of Done.
Per darti un esempio concreto da uno dei nostri progetti: qualche anno fa abbiamo iniziato a costruire un portale lavoro. Inizialmente era solo per desktop. Ci siamo resi conto che il 70% del nostro traffico arrivava da dispositivi mobile. Così abbiamo dedicato un intero Sprint ad aggiornare tutte le pagine esistenti e renderle responsive per mobile. Questo requisito è poi entrato nella nostra Definition of Done, in modo che da quel momento in poi ogni volta che costruivamo un nuovo sito lo costruivamo immediatamente responsive per mobile.
Cosa dice la Scrum Guide 2020 sulla Definition of Done?
Infine, ti raccomandiamo di leggere la Scrum Guide e in particolare la nuova Scrum Guide 2020 pubblicata il 18 novembre. Nella Scrum Guide vengono descritti gli aspetti più importanti della Definition of Done.
La Definition of Done è una descrizione formale dello stato dell'Increment quando soddisfa le misure di qualità richieste per il prodotto. Nel momento in cui un elemento del Product Backlog soddisfa la Definition of Done, nasce un Increment.
La Definition of Done crea trasparenza fornendo a tutti una comprensione condivisa del lavoro completato come parte dell'Increment. Se un elemento del Product Backlog non soddisfa la Definition of Done, non può essere rilasciato né presentato durante la Sprint Review. Al contrario, torna nel Product Backlog per una futura considerazione.
Se la Definition of Done per un Increment fa parte degli standard dell'organizzazione, tutti gli Scrum Team devono seguirla come minimo. Se non è uno standard organizzativo, lo Scrum Team deve creare una Definition of Done appropriata per il prodotto.
I Developer sono tenuti a conformarsi alla Definition of Done. Se ci sono più Scrum Team che lavorano insieme su un prodotto, devono definire e rispettare reciprocamente la stessa Definition of Done.
Più di una formazione
Intraprendi il tuo percorso personale di crescita sostenibile con alcuni dei migliori formatori al mondo e raggiungi il successo nel tuo nuovo ruolo.
Corso Online Scrum Master & Agile Coach
Migliora le tue competenze come Scrum Master o Agile Coach con il nostro corso online.
Immergiti nel mondo dell'Agile e di Scrum e impara a gestire meglio i team agili con modelli pratici ed esempi dal settore.
Ottieni il corso online