Wikimedia Language engineering/Definition of Done
This is the Scrum-style Definition of Done for the Language Engineering team. It must not change during a Sprint, but may change for future sprints to improve the process based on Retrospective and discussion.
- Has a task for code review
- Has a task for writing automatic integration tests
- Has a task for verification testing (to be done after the coding is completed)
Design task in a design story
The assumption is that it's a major design story in the early stage of developing a major feature, and that it involves writing big documents (over 10 pages) of illustrations and explanations upon which a major project is based.
All the relevant documents are written and uploaded to Commons, mediawiki.org or Google Docs.
Design task in a coding story
All the designs are usable to the developers as images in Gerrit (reviewed and merged) or as documents in Commons or Google Docs.
Test scenario writing task
The test scenarios for the functionality are written in GWT. This is the first step before automatic or manual test-cases are prepared out of them.
- All the relevant code is reviewed and merged. (Fixing the reviewer's comments is the task owner's responsibility.)
- Automatic tests added or updated.
- Issues identified in code review can be fixed as separate patches before the task is marked as done.
Code review task
- All the code for the coding tasks to which the code review task relates is reviewed:
- The code adheres to the coding conventions
- The commit message explains the change clearly.
- For bug fixes there must be clear explanation of the issue, with steps to reproduce so that it can be confirmed in manual testing.
- The reviewer ran the code, and the code did what it has to do according to the commit message. (Doesn't apply to documentation.)
- Automated unit tests and linting checks pass (automatic in Gerrit with Jenkins; must be done manually in GitHub today).
- No identified i18n issues.
- No identified security issues.
- No identified performance issues.
- Any identified issues and technical debt, including copied code and non-testable code must be fixed immediately.
Manual Testing task (if required)
- The GWT test scenarios for which manual tests are required are identified.
- A document with usable test cases including steps-to-follow is prepared. This test case set document can be replicated and has the scope of recording test results and observations.
- Test events are scheduled and conducted within the team.
- Test results are collated, summarized and published.
A task that involves writing (blog post, VP notification, CentralNotice etc.): The text is written as a Google Doc or as a wiki page and reviewed by a relevant person.
Preparing story acceptance
- Before moving to "In testing":
- All the tasks are marked as done according to the DoD for tasks.
- Before moving to "Ready for signoff":
- The story owner is able to do a demo following the Acceptance Criteria