Manager: “Is feature X finished?”
Developer: “Yes”
This ‘Yes’ should ALWAYS mean the following:
- The development of the feature covers all acceptance criteria.
- It has been deployed and tested on a DEV/UAT environment.
- The QA and edge-case scenarios are documented.
- Any customer data entry is documented.
It may also mean the following, depending on the project:
- It has automated tests.
- It has appropriate code coverage.
- It’s usage and configuration is documented.
It does NOT mean:
- I tried it locally and it worked in the scenario I tried.
The definition of ‘Done’
The definition of ‘done’ will vary from project to project.
It is a checklist that must be entirely satisfied for any feature to be considered ‘done’.
It is important that everybody on a project team buys into this process and understands the importance of the internal acceptance criteria of each feature. Without this, the same process is merely being delayed until the end of the project.