Definition of done

From Delft Solutions
Revision as of 05:54, 5 March 2021 by SleeplessByte (talk | contribs) (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...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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)