DEFINING<br />DONE<br />
Not sure about if you have finished working on a feature so it can be delivered?<br />Let’s talk about it…<br />Ever been ...
WHAT «DONE» MEANS?<br />
The chicken (or pig) has stopped struggling. Usually, it has stopped bleeding as well<br />There is a pleasant smell comin...
Done for painting a room<br />The room has a uniform, good looking color (maybe different than before)<br />There are no s...
Done for Bart & Lisa<br />A reasonable amount of time has passed since departure<br />The engine of the car has been stopp...
If Bart and Lisa had thought about that beforehand, maybe they wouldn’t have bothered Homer.<br /> <br />Is it the same if...
WHY IS IT GOOD TO AGREE ON WHAT “DONE” MEANS?<br />
Why?<br />The team has a clearer, common idea about if anything is ready to be delivered<br />
Why?<br />It is easier to be focused on what to do, and on building value<br />
Why?<br />It provides a point of reference for estimations and planning<br />
Why?<br />Stakeholders know what to expect when they receive a new version<br />
Why?<br />It reduces the risk of accumulating partially finished things<br />
WHAT HAPPENS IF “DONE” IS UNCLEAR?<br />
Whathappensifit’sunclear?<br />It is difficult to estimate our velocity/lead time/date of delivery<br />
Whathappensifit’sunclear?<br />Stakeholders can get confused about what are they receiving<br />
Whathappensifit’sunclear?<br />Undone work/technical debt can accumulate dramatically without even noticing; uncertainty g...
WHAT IS “DONE” FOR SOFTWARE?<br />
Done should define when any piece of what we are building is "potentially shippable"<br />If customer decides to release i...
The Definition of Done is a simple, auditable checklist that belongs to the team<br />It can be influenced by the environm...
The code compiles <br />Tests exists and are passing<br />Application is deployed in an environment suitable for the custo...
WHO DEFINES DONE?<br />
The team should be the ones having the last word<br />Product Owner should understand it and agree on its content<br />Sta...
WHEN IS “DONE” DEFINED?<br />
It has to be agreed upon before starting to deal with any work<br />The list is revised when needed, and updated if necess...
HOW CAN I MAKE UP THE LIST?<br />
Guideline<br />
Don’t ship demos or prototypes<br />Assure that the application does anything that it’s supposed to do (functional validat...
What if I’m asked to ship even knowing that “done” has not been met?<br />
Make it explicit<br />Keep track of any undone work<br />Fix it as soon as possible. At the very latest, before shipping<b...
REVISING THE EXAMPLES…<br />
The chicken (or pig) has stopped struggling. Usually, it has stopped bleeding as well<br />There is a pleasant smell comin...
The kitchen is clean and tidy again<br />You’vepreparedthreecourses<br />It tastes good, and guestscongratulateyouforthedi...
Done for painting a room<br />The room has a uniform, good looking color (maybe different than before)<br />There are no s...
But also…<br />Thereisnot a buckethalffilledwithpaint in theway<br />Thefurniture has returnedtoits place<br />Youdon’thav...
Designed <br />Coded and refactored<br />Unit tested<br />Build automated<br />Functional tested<br />Integration tested<b...
ALM Team Lead at PlainConcepts<br />Professional ScrumDeveloperTrainer, PSM I, CSM<br />jlsoria@plainconcepts.com<br />htt...
Upcoming SlideShare
Loading in …5
×

Defining Done

5,455 views

Published on

Slides for my Defining Done Lightning Talk at XP2011

Published in: Technology
1 Comment
4 Likes
Statistics
Notes
No Downloads
Views
Total views
5,455
On SlideShare
0
From Embeds
0
Number of Embeds
2,488
Actions
Shares
0
Downloads
0
Comments
1
Likes
4
Embeds 0
No embeds

No notes for slide

Defining Done

  1. 1. DEFINING<br />DONE<br />
  2. 2.
  3. 3. Not sure about if you have finished working on a feature so it can be delivered?<br />Let’s talk about it…<br />Ever been in a similar situation during a project?<br />
  4. 4. WHAT «DONE» MEANS?<br />
  5. 5. The chicken (or pig) has stopped struggling. Usually, it has stopped bleeding as well<br />There is a pleasant smell coming out the kitchen<br />You’ve taken the meal out of the oven and it’s ready to be served<br />Done for cooking<br />
  6. 6. Done for painting a room<br />The room has a uniform, good looking color (maybe different than before)<br />There are no spots<br />Your clothes don’t change its color after leaning on a wall<br />
  7. 7. Done for Bart & Lisa<br />A reasonable amount of time has passed since departure<br />The engine of the car has been stopped<br />We’re parked next to the funfair<br />
  8. 8. If Bart and Lisa had thought about that beforehand, maybe they wouldn’t have bothered Homer.<br /> <br />Is it the same if we are building software?<br />Can we think about some criteria that determine if we have finished building any increment for our system?<br />What can we learn from this?<br />
  9. 9. WHY IS IT GOOD TO AGREE ON WHAT “DONE” MEANS?<br />
  10. 10. Why?<br />The team has a clearer, common idea about if anything is ready to be delivered<br />
  11. 11. Why?<br />It is easier to be focused on what to do, and on building value<br />
  12. 12. Why?<br />It provides a point of reference for estimations and planning<br />
  13. 13. Why?<br />Stakeholders know what to expect when they receive a new version<br />
  14. 14. Why?<br />It reduces the risk of accumulating partially finished things<br />
  15. 15. WHAT HAPPENS IF “DONE” IS UNCLEAR?<br />
  16. 16. Whathappensifit’sunclear?<br />It is difficult to estimate our velocity/lead time/date of delivery<br />
  17. 17. Whathappensifit’sunclear?<br />Stakeholders can get confused about what are they receiving<br />
  18. 18. Whathappensifit’sunclear?<br />Undone work/technical debt can accumulate dramatically without even noticing; uncertainty grows<br />
  19. 19. WHAT IS “DONE” FOR SOFTWARE?<br />
  20. 20. Done should define when any piece of what we are building is "potentially shippable"<br />If customer decides to release it, it should be possible to do it without investing much (or any) work<br />Done = Shippable<br />
  21. 21. The Definition of Done is a simple, auditable checklist that belongs to the team<br />It can be influenced by the environment: the organization, specific characteristics of the product, circumstances of the release…<br />It is different across teams and organizations<br />It reflects the team’s capabilities at any moment<br />It is used as a filter when deciding what is ready to be delivered<br />It is a key component in any project<br />Being more specific…<br />
  22. 22. The code compiles <br />Tests exists and are passing<br />Application is deployed in an environment suitable for the customer to check it<br />Acceptance criteria is met (it is working as expected)<br />(Very) simple example<br />
  23. 23. WHO DEFINES DONE?<br />
  24. 24. The team should be the ones having the last word<br />Product Owner should understand it and agree on its content<br />Stakeholders understand it and agree on its content (on their own terms)<br />Theteamdoes!<br />
  25. 25. WHEN IS “DONE” DEFINED?<br />
  26. 26. It has to be agreed upon before starting to deal with any work<br />The list is revised when needed, and updated if necessary<br />Maybe you will stick with the same list for the entire project<br />Maybe you will make some changes at certain points to incorporate new skills or capabilities<br />Maybe you will remove things that no longer make sense<br />Maybe you’ll change it only for a particular release or iteration<br />Anytime… butalwaysbeforebeginning<br />
  27. 27. HOW CAN I MAKE UP THE LIST?<br />
  28. 28. Guideline<br />
  29. 29. Don’t ship demos or prototypes<br />Assure that the application does anything that it’s supposed to do (functional validation is very important)<br />The customer should be able to begin using whatever has been built immediately<br />Don’t sacrifice internal quality or accumulate technical debt<br />You’renot in analmightyteam!<br />Start simple and evolve it<br />Brainstorm, having in mind…<br />
  30. 30. What if I’m asked to ship even knowing that “done” has not been met?<br />
  31. 31. Make it explicit<br />Keep track of any undone work<br />Fix it as soon as possible. At the very latest, before shipping<br />Try toavoidit!Butifthereis no way…<br />
  32. 32. REVISING THE EXAMPLES…<br />
  33. 33. The chicken (or pig) has stopped struggling. Usually, it has stopped bleeding as well<br />There is a pleasant smell coming out the kitchen<br />You’ve taken the meal out of the oven and it’s ready to be served<br />Done for cooking<br />
  34. 34. The kitchen is clean and tidy again<br />You’vepreparedthreecourses<br />It tastes good, and guestscongratulateyouforthedinner<br />Done for cooking<br />
  35. 35. Done for painting a room<br />The room has a uniform, good looking color (maybe different than before)<br />There are no spots<br />Your clothes don’t change its color after leaning on a wall<br />
  36. 36. But also…<br />Thereisnot a buckethalffilledwithpaint in theway<br />Thefurniture has returnedtoits place<br />Youdon’thavepaint spots alloveryou<br />
  37. 37. Designed <br />Coded and refactored<br />Unit tested<br />Build automated<br />Functional tested<br />Integration tested<br />User acceptance tested<br />Regression tested<br />Performance tested<br />Security tested<br />Peer reviewed<br />Merged to main branch in version control<br />Backlog updated<br />X% code coverage achieved<br />Packaged, or installer generated<br />Deployment automated<br />User manual updated<br />…<br />What about software?<br />
  38. 38. ALM Team Lead at PlainConcepts<br />Professional ScrumDeveloperTrainer, PSM I, CSM<br />jlsoria@plainconcepts.com<br />http://geeks.ms/blogs/jlsoria<br />@jlsoriat<br />JOSE LUIS SORIA<br />Thanks!!!<br />

×