Agile – Definition of DONE
Some say this should be when a user story has passed UAT and signed off by the product/business owner. Others say after the functionality is tested and passed by the assigned tester. Personally I agree with the latter. Let me explain...
Development and testing tasks for each user story are completed by the development team. The team commits to the workload at the beginning of each sprint and are responsible for delivering the user stories to the product/business owner for UAT. Once delivered, the team have no control as to when UAT starts and finishes.
Where the development team's primary job is the develop & test, more often the person responsible for UAT has to fit this around a full time job as and when they find time. With this in mind, it might be difficult and unreasonable to expect sign-off before the sprint finishes. Also, this person is not responsible for delivery, nor part of the sprint commitment process. Therefore, I believe it's unfair to include UAT before you can say a story is DONE.
Here's my take on when something is done (including development & defects):
- A task is done when it is developed and unit tested by the developer. He’ll typically have automated unit tests in place.
- A defect is done when it is resolved by the developer, and the tester retested it, found no remaining issue, and closed the defect.
- A user story is done when it is functionally tested by the assigned tester, no significant defects left and passed to the product/business owner for UAT.