Skip to content

Definition of Done

Purpose

The Definition of Done ensures that all work delivered by the team meets a consistent quality standard and is production-ready. A user story, task, or bug fix is only considered Done when it meets all the criteria below.

General Criteria

  • [ ] Code is peer reviewed (via pull request) and approved
  • [ ] Code is merged into main branch (via pull request) without conflicts
  • [ ] Code follows agreed coding standards and style guidelines
  • [ ] All acceptance criteria from the user story or task are met
  • [ ] No known critical or high-severity defects remain open
  • [ ] Jira user story linked to an Epic
  • [ ] Branch naming follows agreed conventions
  • [ ] Commit messages follow agreed conventions
  • [ ] Meets agreed non-functional requirements (NFRs) for performance, scalability, and reliability
  • [ ] Accessibility considerations addressed from design through to implementation

Testing & Quality

  • [ ] Unit tests are written and passing
  • [ ] Integration and/or end-to-end tests updated where necessary
  • [ ] All automated tests in the CI/CD pipeline pass
  • [ ] Manual exploratory testing completed for edge cases and usability
  • [ ] All linked defects resolved or triaged with agreed mitigations
  • [ ] Evidence provided in test reports or dashboards
  • [ ] Accessibility testing completed (WCAG 2.2 AA compliance)
  • [ ] Cross-browser/device testing completed where relevant

Documentation

  • [ ] Code is commented where necessary for clarity
  • [ ] API contracts, schemas, and models are updated
  • [ ] User-facing documentation updated if relevant
  • [ ] Knowledge shared with the team (eg. Confluence, show & tell)
  • [ ] Testing evidence attached to Jira ticket (screenshots, logs, dashboards, test reports)

Security

  • [ ] No new security vulnerabilities introduced
  • [ ] Dependencies are up to date (checked against vulnerability databases)

Deployment

  • [ ] Code successfully deploys to the test environment
  • [ ] Monitoring/alerting updated if needed