Fundraising tech/Definition of Done

A definition of done is a way for our whole team to agree on our habits for pushing out quality code. All of these things need to be done before a phabricator task can be marked as complete by the Product Owner or stakeholder.

During a sprint, a task moves between several columns in a sprint board. A task is totally done when it is in the "Done" column and in a "resolved" state. The following must be true to fully resolve the task:

There can be exceptions (for example urgent bug fixes, tight deadlines). Also some tasks are purely technical and can be resolved by another engineer.
 * 1) Tests written - Code reviewer to confirm (task placed in review column)
 * 2) Code review - Gerrit handles this pretty well for us (when review is complete, task moves to "pending deployment)
 * 3) Documentation - a link to a mediawiki, wikitech (if applicable only to our install/deploy), collab (if super confidential) page that will describe expected behavior in the phabricator task
 * 4) Works in production according to requirements. Reporter of bug (unless otherwise stated) to confirm this and close the task.