Definition of done: Difference between revisions
(Created page with "At Delft Solutions we aim to have a shared understanding what it takes to release an incremental update to one of our projects. Having a shared understanding of what it means...") |
No edit summary |
||
Line 3: | Line 3: | ||
== Functional Requirements == | == Functional Requirements == | ||
These are the | These are the ''business'' requirements that emerge through conversation about a particular issue or feature, as well as the requirements listed in the issue (acceptance criteria). | ||
== Quality == | == Quality == | ||
Line 9: | Line 9: | ||
In order to keep the code maintainable and relatively bug-free, as well as broaden the amount of people that know about a certain feature's implementation, we expect PRs to be peer-reviewed and senior-reviewed (someone senior to the project, or, if not available, senior in the company). | In order to keep the code maintainable and relatively bug-free, as well as broaden the amount of people that know about a certain feature's implementation, we expect PRs to be peer-reviewed and senior-reviewed (someone senior to the project, or, if not available, senior in the company). | ||
Any automated analysis that runs on a project should also be without errors. When there are warnings, it should be explained | Any automated analysis that runs on a project should also be without errors. When there are warnings, it should be explained ''why'' the warning isn't resolved. Yes, some of this tooling sometimes gets it wrong, but overall they make the code more consistent in style, and it often prevents a lot of common issues. | ||
The code must be tested. This can be a manual test or an automated test. If changes are made after the test has been performed, the test | The code must be tested. This can be a manual test or an automated test. If changes are made after the test has been performed, the test '''must''' be performed again. | ||
== Non-Functional Requirements == | == Non-Functional Requirements == | ||
* No known defects | |||
* No build failures | |||
* No errors in coding standards (automated analysis) | |||
* Existing tests passed | |||
* Peer code review passed | |||
* Deployed (if applicable) |
Revision as of 05:55, 5 March 2021
At Delft Solutions we aim to have a shared understanding what it takes to release an incremental update to one of our projects. Having a shared understanding of what it means to call something **done** also means we don't have to ask "But is it _really_ done?" or "Hey you said it was done but I don't see it, where is it?".
Functional Requirements
These are the business requirements that emerge through conversation about a particular issue or feature, as well as the requirements listed in the issue (acceptance criteria).
Quality
In order to keep the code maintainable and relatively bug-free, as well as broaden the amount of people that know about a certain feature's implementation, we expect PRs to be peer-reviewed and senior-reviewed (someone senior to the project, or, if not available, senior in the company).
Any automated analysis that runs on a project should also be without errors. When there are warnings, it should be explained why the warning isn't resolved. Yes, some of this tooling sometimes gets it wrong, but overall they make the code more consistent in style, and it often prevents a lot of common issues.
The code must be tested. This can be a manual test or an automated test. If changes are made after the test has been performed, the test must be performed again.
Non-Functional Requirements
- No known defects
- No build failures
- No errors in coding standards (automated analysis)
- Existing tests passed
- Peer code review passed
- Deployed (if applicable)