Wikimedia Language engineering/Definition of Done

From MediaWiki.org
Jump to navigation Jump to search

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.

Tasked-out story[edit]

  • 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)

Task[edit]

Design task in a design story[edit]

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[edit]

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[edit]

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.

Coding task[edit]

  • 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[edit]

  • 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)[edit]

  • 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.

Communications task[edit]

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[edit]

  • 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